diff options
Diffstat (limited to 'drivers/s390/cio/device.c')
-rw-r--r-- | drivers/s390/cio/device.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 23d5752349b..e28f8ae5345 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -799,7 +799,7 @@ static void sch_attach_disconnected_device(struct subchannel *sch, | |||
799 | return; | 799 | return; |
800 | other_sch = to_subchannel(cdev->dev.parent); | 800 | other_sch = to_subchannel(cdev->dev.parent); |
801 | /* Note: device_move() changes cdev->dev.parent */ | 801 | /* Note: device_move() changes cdev->dev.parent */ |
802 | ret = device_move(&cdev->dev, &sch->dev); | 802 | ret = device_move(&cdev->dev, &sch->dev, DPM_ORDER_PARENT_BEFORE_DEV); |
803 | if (ret) { | 803 | if (ret) { |
804 | CIO_MSG_EVENT(0, "Moving disconnected device 0.%x.%04x failed " | 804 | CIO_MSG_EVENT(0, "Moving disconnected device 0.%x.%04x failed " |
805 | "(ret=%d)!\n", cdev->private->dev_id.ssid, | 805 | "(ret=%d)!\n", cdev->private->dev_id.ssid, |
@@ -830,7 +830,7 @@ static void sch_attach_orphaned_device(struct subchannel *sch, | |||
830 | * Try to move the ccw device to its new subchannel. | 830 | * Try to move the ccw device to its new subchannel. |
831 | * Note: device_move() changes cdev->dev.parent | 831 | * Note: device_move() changes cdev->dev.parent |
832 | */ | 832 | */ |
833 | ret = device_move(&cdev->dev, &sch->dev); | 833 | ret = device_move(&cdev->dev, &sch->dev, DPM_ORDER_PARENT_BEFORE_DEV); |
834 | if (ret) { | 834 | if (ret) { |
835 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x from orphanage " | 835 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x from orphanage " |
836 | "failed (ret=%d)!\n", | 836 | "failed (ret=%d)!\n", |
@@ -897,7 +897,8 @@ void ccw_device_move_to_orphanage(struct work_struct *work) | |||
897 | * ccw device can take its place on the subchannel. | 897 | * ccw device can take its place on the subchannel. |
898 | * Note: device_move() changes cdev->dev.parent | 898 | * Note: device_move() changes cdev->dev.parent |
899 | */ | 899 | */ |
900 | ret = device_move(&cdev->dev, &css->pseudo_subchannel->dev); | 900 | ret = device_move(&cdev->dev, &css->pseudo_subchannel->dev, |
901 | DPM_ORDER_NONE); | ||
901 | if (ret) { | 902 | if (ret) { |
902 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x to orphanage failed " | 903 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x to orphanage failed " |
903 | "(ret=%d)!\n", cdev->private->dev_id.ssid, | 904 | "(ret=%d)!\n", cdev->private->dev_id.ssid, |
@@ -981,7 +982,7 @@ io_subchannel_register(struct work_struct *work) | |||
981 | * Now we know this subchannel will stay, we can throw | 982 | * Now we know this subchannel will stay, we can throw |
982 | * our delayed uevent. | 983 | * our delayed uevent. |
983 | */ | 984 | */ |
984 | sch->dev.uevent_suppress = 0; | 985 | dev_set_uevent_suppress(&sch->dev, 0); |
985 | kobject_uevent(&sch->dev.kobj, KOBJ_ADD); | 986 | kobject_uevent(&sch->dev.kobj, KOBJ_ADD); |
986 | /* make it known to the system */ | 987 | /* make it known to the system */ |
987 | ret = ccw_device_register(cdev); | 988 | ret = ccw_device_register(cdev); |
@@ -1129,7 +1130,7 @@ static void ccw_device_move_to_sch(struct work_struct *work) | |||
1129 | * Try to move the ccw device to its new subchannel. | 1130 | * Try to move the ccw device to its new subchannel. |
1130 | * Note: device_move() changes cdev->dev.parent | 1131 | * Note: device_move() changes cdev->dev.parent |
1131 | */ | 1132 | */ |
1132 | rc = device_move(&cdev->dev, &sch->dev); | 1133 | rc = device_move(&cdev->dev, &sch->dev, DPM_ORDER_PARENT_BEFORE_DEV); |
1133 | mutex_unlock(&sch->reg_mutex); | 1134 | mutex_unlock(&sch->reg_mutex); |
1134 | if (rc) { | 1135 | if (rc) { |
1135 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x to subchannel " | 1136 | CIO_MSG_EVENT(0, "Moving device 0.%x.%04x to subchannel " |
@@ -1243,7 +1244,7 @@ static int io_subchannel_probe(struct subchannel *sch) | |||
1243 | * the ccw_device and exit. This happens for all early | 1244 | * the ccw_device and exit. This happens for all early |
1244 | * devices, e.g. the console. | 1245 | * devices, e.g. the console. |
1245 | */ | 1246 | */ |
1246 | sch->dev.uevent_suppress = 0; | 1247 | dev_set_uevent_suppress(&sch->dev, 0); |
1247 | kobject_uevent(&sch->dev.kobj, KOBJ_ADD); | 1248 | kobject_uevent(&sch->dev.kobj, KOBJ_ADD); |
1248 | cdev->dev.groups = ccwdev_attr_groups; | 1249 | cdev->dev.groups = ccwdev_attr_groups; |
1249 | device_initialize(&cdev->dev); | 1250 | device_initialize(&cdev->dev); |