On Mon, Nov 22 2021, Vineeth Vijayan <vneethv@xxxxxxxxxxxxx> wrote: > commit fa1a8c23eb7d ("s390: cio: Delay uevents for subchannels") > introduced suppression of uevents for a subchannel until after it is > clear that the subchannel would not be unregistered again > immediately. This was done to avoid uevents being generated for I/O > subchannels with no valid device, which can happen on LPAR. > > However, this also has some drawbacks: All subchannel drivers need to > manually remove the uevent suppression and generate an ADD uevent as > soon as they are sure that the subchannel will stay around. This misses > out on all uevents that are not the initial ADD uevent that would be > generated while uevents are suppressed; for example, all subchannels > were missing the BIND uevent. > > As uevents being generated even for I/O subchannels without an > operational device turned out to be not as bad as missing uevents and > complicating the code flow, let's remove uevent suppression for > subchannel s/subchannel/subchannels./ > > Signed-off-by: Vineeth Vijayan <vneethv@xxxxxxxxxxxxx> > [cohuck@xxxxxxxxxx: modified changelog] > --- > drivers/s390/cio/chsc_sch.c | 5 ----- > drivers/s390/cio/css.c | 19 ------------------- > drivers/s390/cio/device.c | 18 ------------------ > drivers/s390/cio/eadm_sch.c | 5 ----- > drivers/s390/cio/vfio_ccw_drv.c | 5 ----- > 5 files changed, 52 deletions(-) (...) > @@ -1035,16 +1027,6 @@ static int io_subchannel_probe(struct subchannel *sch) > "attributes for subchannel " > "0.%x.%04x (rc=%d)\n", > sch->schid.ssid, sch->schid.sch_no, rc); > - /* > - * The console subchannel already has an associated ccw_device. > - * Throw the delayed uevent for the subchannel, register > - * the ccw_device and exit. Maybe keep at least part of this comment? /* * The console subchannel already has an associated ccw_device. * Register it and exit. */ > - */ > - if (dev_get_uevent_suppress(&sch->dev)) { > - /* should always be the case for the console */ > - dev_set_uevent_suppress(&sch->dev, 0); > - kobject_uevent(&sch->dev.kobj, KOBJ_ADD); > - } > cdev = sch_get_cdev(sch); > rc = device_add(&cdev->dev); > if (rc) { Otherwise looks good to me. Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>