aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2008-12-25 07:39:14 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-12-25 07:39:10 -0500
commitf444cc0e52523560a8dfc12f5374e5d5ecf5375b (patch)
treeb2e9e3bf7ac0d15353cc8a26616a354e889370da /drivers/s390
parent13952ec12dfeea793ff83c2a96139ed57eb0b897 (diff)
[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 <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/device.c6
-rw-r--r--drivers/s390/cio/device_fsm.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index d3127018fb81..6d714cf55064 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)
1259 return 0; 1259 return 0;
1260 } 1260 }
1261 io_subchannel_init_fields(sch); 1261 io_subchannel_init_fields(sch);
1262 rc = cio_commit_config(sch);
1263 if (rc)
1264 goto out_schedule;
1262 rc = sysfs_create_group(&sch->dev.kobj, 1265 rc = sysfs_create_group(&sch->dev.kobj,
1263 &io_subchannel_attr_group); 1266 &io_subchannel_attr_group);
1264 if (rc) 1267 if (rc)
@@ -1722,6 +1725,9 @@ static int ccw_device_console_enable(struct ccw_device *cdev,
1722 sch->private = cio_get_console_priv(); 1725 sch->private = cio_get_console_priv();
1723 memset(sch->private, 0, sizeof(struct io_subchannel_private)); 1726 memset(sch->private, 0, sizeof(struct io_subchannel_private));
1724 io_subchannel_init_fields(sch); 1727 io_subchannel_init_fields(sch);
1728 rc = cio_commit_config(sch);
1729 if (rc)
1730 return rc;
1725 sch->driver = &io_subchannel_driver; 1731 sch->driver = &io_subchannel_driver;
1726 /* Initialize the ccw_device structure. */ 1732 /* Initialize the ccw_device structure. */
1727 cdev->dev.parent= &sch->dev; 1733 cdev->dev.parent= &sch->dev;
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index 9e249675c98d..8df5eaafc5ab 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)
1031 * paths are valid. 1031 * paths are valid.
1032 */ 1032 */
1033 io_subchannel_init_config(sch); 1033 io_subchannel_init_config(sch);
1034 if (cio_commit_config(sch))
1035 return;
1034 1036
1035 /* We should also udate ssd info, but this has to wait. */ 1037 /* We should also udate ssd info, but this has to wait. */
1036 /* Check if this is another device which appeared on the same sch. */ 1038 /* Check if this is another device which appeared on the same sch. */