diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2008-12-25 07:39:14 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-12-25 07:39:10 -0500 |
commit | f444cc0e52523560a8dfc12f5374e5d5ecf5375b (patch) | |
tree | b2e9e3bf7ac0d15353cc8a26616a354e889370da /drivers/s390 | |
parent | 13952ec12dfeea793ff83c2a96139ed57eb0b897 (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.c | 6 | ||||
-rw-r--r-- | drivers/s390/cio/device_fsm.c | 2 |
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. */ |