From: Sebastian Ott Date: Thu, 25 Dec 2008 12:39:14 +0000 (+0100) Subject: [S390] cio: commit all pmcw changes. X-Git-Tag: v2.6.29-rc1~584^2~41 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=f444cc0e52523560a8dfc12f5374e5d5ecf5375b;p=linux-2.6-omap-h63xx.git [S390] cio: commit all pmcw changes. Sometimes we change the pmcw configuration but don't call msch to transmit these changes to the channel subsystem. The patch fixes this by calling cio_commit_config in such cases. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky --- diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index d3127018fb8..6d714cf5506 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -1259,6 +1259,9 @@ static int io_subchannel_probe(struct subchannel *sch) return 0; } io_subchannel_init_fields(sch); + rc = cio_commit_config(sch); + if (rc) + goto out_schedule; rc = sysfs_create_group(&sch->dev.kobj, &io_subchannel_attr_group); if (rc) @@ -1722,6 +1725,9 @@ static int ccw_device_console_enable(struct ccw_device *cdev, sch->private = cio_get_console_priv(); memset(sch->private, 0, sizeof(struct io_subchannel_private)); io_subchannel_init_fields(sch); + rc = cio_commit_config(sch); + if (rc) + return rc; sch->driver = &io_subchannel_driver; /* Initialize the ccw_device structure. */ cdev->dev.parent= &sch->dev; diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index 9e249675c98..8df5eaafc5a 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c @@ -1031,6 +1031,8 @@ void ccw_device_trigger_reprobe(struct ccw_device *cdev) * paths are valid. */ io_subchannel_init_config(sch); + if (cio_commit_config(sch)) + return; /* We should also udate ssd info, but this has to wait. */ /* Check if this is another device which appeared on the same sch. */