summary refs log tree commit diff
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2007-10-22 12:52:41 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-10-22 12:52:47 +0200
commit5bf04b2062c5b441d7154216694fea7dc2a6a7f3 (patch)
tree6651d0d6ac77b50ad4ba926cdfa15f7861951eba
parent054696077a6c4f9e306321d45b5762d6ea7940e1 (diff)
downloadlinux-5bf04b2062c5b441d7154216694fea7dc2a6a7f3.tar.gz
[S390] cio: Fix incomplete commit for uevent suppression.
Commit fa1a8c23eb7d3ded8a3c6d0e653339a2bc7fca9e intended to
introduce uevent suppression for subchannels, but half of it was
lost somewhere. Now, we end up with two uevents for every registered
subchannel :( So we should better add the missing part from
http://marc.info/?l=linux-kernel&m=117515953113974&w=2.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--drivers/s390/cio/css.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 5d83dd471461..838f7ac0dc32 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -182,6 +182,15 @@ static int css_register_subchannel(struct subchannel *sch)
 	sch->dev.bus = &css_bus_type;
 	sch->dev.release = &css_subchannel_release;
 	sch->dev.groups = subch_attr_groups;
+	/*
+	 * We don't want to generate uevents for I/O subchannels that don't
+	 * have a working ccw device behind them since they will be
+	 * unregistered before they can be used anyway, so we delay the add
+	 * uevent until after device recognition was successful.
+	 */
+	if (!cio_is_console(sch->schid))
+		/* Console is special, no need to suppress. */
+		sch->dev.uevent_suppress = 1;
 	css_update_ssd_info(sch);
 	/* make it known to the system */
 	ret = css_sch_device_register(sch);