]> Git Repo - linux.git/commitdiff
s390: cio: Delay uevents for subchannels
authorCornelia Huck <[email protected]>
Thu, 26 Apr 2007 07:12:03 +0000 (00:12 -0700)
committerGreg Kroah-Hartman <[email protected]>
Fri, 27 Apr 2007 17:57:32 +0000 (10:57 -0700)
We often have the situation that we register a subchannel and start device
recognition, only to find out that the device is not usable after all, which
triggers an unregister of the subchannel.  This often happens on hundreds of
subchannels on a LPAR, leading to a storm of events which aren't of any use.
Therefore, use uevent_suppress to delay the KOBJ_ADD uevent for a subchannel
until we know that its ccw_device is to be registered.

Signed-off-by: Cornelia Huck <[email protected]>
Cc: Kay Sievers <[email protected]>
Cc: Eric Rannaud <[email protected]>
Cc: Heiko Carstens <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
drivers/s390/cio/device.c

index 03355902c582d0e465a3902dc60ecaaeb4c624ec..a23ff582db9ddf03b303aa6647d2d353f7e96294 100644 (file)
@@ -871,6 +871,12 @@ io_subchannel_register(struct work_struct *work)
                }
                goto out;
        }
+       /*
+        * Now we know this subchannel will stay, we can throw
+        * our delayed uevent.
+        */
+       sch->dev.uevent_suppress = 0;
+       kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
        /* make it known to the system */
        ret = ccw_device_register(cdev);
        if (ret) {
This page took 0.058652 seconds and 4 git commands to generate.