Commit f444cc0e authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky

[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: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 13952ec1
...@@ -1259,6 +1259,9 @@ static int io_subchannel_probe(struct subchannel *sch) ...@@ -1259,6 +1259,9 @@ static int io_subchannel_probe(struct subchannel *sch)
return 0; return 0;
} }
io_subchannel_init_fields(sch); io_subchannel_init_fields(sch);
rc = cio_commit_config(sch);
if (rc)
goto out_schedule;
rc = sysfs_create_group(&sch->dev.kobj, rc = sysfs_create_group(&sch->dev.kobj,
&io_subchannel_attr_group); &io_subchannel_attr_group);
if (rc) if (rc)
...@@ -1722,6 +1725,9 @@ static int ccw_device_console_enable(struct ccw_device *cdev, ...@@ -1722,6 +1725,9 @@ static int ccw_device_console_enable(struct ccw_device *cdev,
sch->private = cio_get_console_priv(); sch->private = cio_get_console_priv();
memset(sch->private, 0, sizeof(struct io_subchannel_private)); memset(sch->private, 0, sizeof(struct io_subchannel_private));
io_subchannel_init_fields(sch); io_subchannel_init_fields(sch);
rc = cio_commit_config(sch);
if (rc)
return rc;
sch->driver = &io_subchannel_driver; sch->driver = &io_subchannel_driver;
/* Initialize the ccw_device structure. */ /* Initialize the ccw_device structure. */
cdev->dev.parent= &sch->dev; cdev->dev.parent= &sch->dev;
......
...@@ -1031,6 +1031,8 @@ void ccw_device_trigger_reprobe(struct ccw_device *cdev) ...@@ -1031,6 +1031,8 @@ void ccw_device_trigger_reprobe(struct ccw_device *cdev)
* paths are valid. * paths are valid.
*/ */
io_subchannel_init_config(sch); io_subchannel_init_config(sch);
if (cio_commit_config(sch))
return;
/* We should also udate ssd info, but this has to wait. */ /* We should also udate ssd info, but this has to wait. */
/* Check if this is another device which appeared on the same sch. */ /* Check if this is another device which appeared on the same sch. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment