Hello, On 08/19/2010 01:35 PM, Kay Sievers wrote: > On Thu, 2010-08-19 at 13:22 +0200, Tejun Heo wrote: >> Kay, there are a few ATA drivers with overlapping hardware support. >> When all the drivers are built-in the kernel or none of them is loaded >> as modules, priority among them as defined by link order is followed; >> however, if one of the drivers is already loaded while other >> overlapping ones are not, there's nothing which guarantees driver >> probing would happen after modprobe for the device ID is complete, > > Not sure it if I get it right. You mean the first driver binds to the > device already, right? But you want the later one to be used? > > Any driver that binds to a device will prevent any other later loaded > driver from binding to, or handling the device. The only way to have the > second driver seeing the device is unbinding the first driver in sysfs, > and binding the second one in sysfs. It's a bit messy to explain. So, if all the drivers are already inside the kernel device - driver matching would follow the priority. If none of the drivers is in the kernel, udev will call modprobe to with device ID and modprobe will follow the link order and load the matching drivers in link order. What I was curious about is what happens if some of them are already in the kernel but not all of them. udev would still be invoked the same and modprobe too but device - driver matching can and is probably likely to happen before modprobe finishes loading all the drivers, right? Or is there a mechanism to hold off device - driver matching before the udev finishes handling the event for the controller? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html