On Mon, Nov 30, 2020 at 09:44:03AM -0800, Linus Torvalds wrote: > On Mon, Nov 30, 2020 at 9:04 AM Doug Anderson <diand...@chromium.org> wrote: > > > > Without static assignment, maybe we could do numbering of MMC devices > > in some type of a pre-probe routine? Is that what you're suggesting? > > Yes. > > So basically, the way the async probing works for say SCSI is that we > have multiple "layers of asynchroniety". We have the usual "init calls > done asynchronously", but then within the init calls themselves you > can start sub-scans asynchronously. > > In order to get reliable ordering between multiple controllers, the > PCI bus is probed in order in pci_init() (or whatever), so each SCSI > controller gets called in a fixed order. > > That then gets to scsi_scan_host() does that async_schedule() thing to > actually scan the SCSI buses on that host.
I'm afraid that you don't get stable device numbering on x86. You get something that _looks_ like stable device numbering, but it really isn't. If you think that /dev/sda for example is always the machine's internal HDD, that is wrong. I have a HP Pavilion laptop with its internal HDD with a Windows installation. Because I didn't want to destroy that in any way, I bought an external USB3 SATA enclosure and SSD, and installed Debian Stable on there. When I installed Debian stable, the HDD was /dev/sda and the SSD was /dev/sdb. When I boot Debian, the SSD is /dev/sda and the internal HDD is /dev/sdb. Maybe /dev/sda through /dev/sdd should be reserved for internal motherboard drives? -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!