aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2007-04-26 03:12:03 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-04-27 13:57:32 -0400
commitfa1a8c23eb7d3ded8a3c6d0e653339a2bc7fca9e (patch)
treea963f25081d843a1ce7215fccd1931767e959833 /drivers/s390
parent45cd8d8e1e56fba41b1e4fae988f40fe938045c2 (diff)
s390: cio: Delay uevents for subchannels
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 <cornelia.huck@de.ibm.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Eric Rannaud <eric.rannaud@gmail.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/device.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 03355902c582..a23ff582db9d 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -871,6 +871,12 @@ io_subchannel_register(struct work_struct *work)
871 } 871 }
872 goto out; 872 goto out;
873 } 873 }
874 /*
875 * Now we know this subchannel will stay, we can throw
876 * our delayed uevent.
877 */
878 sch->dev.uevent_suppress = 0;
879 kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
874 /* make it known to the system */ 880 /* make it known to the system */
875 ret = ccw_device_register(cdev); 881 ret = ccw_device_register(cdev);
876 if (ret) { 882 if (ret) {