On Sat, 19 Dec 2020 07:33:16 +0100 Halil Pasic <pasic@xxxxxxxxxxxxx> wrote: > I finally came around to test this. In my experience driverctl works for > subchannels and vfio_ccw without this patch, and continues to work with > it. I found the code in driverctl that does the unbind and the implicit > bind (via drivers_probe after after driver_override was set). > > So now I have to ask, how exactly was the original problem diagnosed? > > In https://marc.info/?l=linux-s390&m=158591045732735&w=2 there is a > paragraph like: > > """ > So while there's definitely a good reason for wanting to delay uevents, > it is also introducing problems. One is udev rules for subchannels that > are supposed to do something before a driver binds (e.g. setting > driver_override to bind an I/O subchannel to vfio_ccw instead of > io_subchannel) are not effective, as the ADD uevent will only be > generated when the io_subchannel driver is already done with doing all > setup. Another one is that only the ADD uevent is generated after > uevent suppression is lifted; any other uevents that might have been > generated are lost. > """ > > This is not how driverclt works! I.e. it deals with the situation that > the I/O subchannel was already bound to the io_subchannel driver at > the time the udev rule installed by driverctl activates (via the > mechanism I described above). That's... weird. It definitely did not work on the LPAR I initially tried it out on! However, I think removing the suppression still looks like a good idea: we still have the "any uevent other than ADD will have been lost" problem.