diff options
Diffstat (limited to 'drivers/s390/cio/device_fsm.c')
-rw-r--r-- | drivers/s390/cio/device_fsm.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index 5f5ee1eef07a..db3d1b990f58 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include "chsc.h" | 23 | #include "chsc.h" |
24 | #include "ioasm.h" | 24 | #include "ioasm.h" |
25 | #include "chpid.h" | 25 | #include "chpid.h" |
26 | #include "chp.h" | ||
26 | 27 | ||
27 | int | 28 | int |
28 | device_is_online(struct subchannel *sch) | 29 | device_is_online(struct subchannel *sch) |
@@ -221,7 +222,10 @@ __recover_lost_chpids(struct subchannel *sch, int old_lpm) | |||
221 | if (old_lpm & mask) | 222 | if (old_lpm & mask) |
222 | continue; | 223 | continue; |
223 | chpid.id = sch->schib.pmcw.chpid[i]; | 224 | chpid.id = sch->schib.pmcw.chpid[i]; |
224 | chpid_is_actually_online(chpid); | 225 | if (!chp_is_registered(chpid)) { |
226 | need_rescan = 1; | ||
227 | queue_work(slow_path_wq, &slow_path_work); | ||
228 | } | ||
225 | } | 229 | } |
226 | } | 230 | } |
227 | 231 | ||