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 089a3ddd6265..5f5ee1eef07a 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "device.h" | 22 | #include "device.h" |
23 | #include "chsc.h" | 23 | #include "chsc.h" |
24 | #include "ioasm.h" | 24 | #include "ioasm.h" |
25 | #include "chpid.h" | ||
25 | 26 | ||
26 | int | 27 | int |
27 | device_is_online(struct subchannel *sch) | 28 | device_is_online(struct subchannel *sch) |
@@ -210,14 +211,17 @@ static void | |||
210 | __recover_lost_chpids(struct subchannel *sch, int old_lpm) | 211 | __recover_lost_chpids(struct subchannel *sch, int old_lpm) |
211 | { | 212 | { |
212 | int mask, i; | 213 | int mask, i; |
214 | struct chp_id chpid; | ||
213 | 215 | ||
216 | chp_id_init(&chpid); | ||
214 | for (i = 0; i<8; i++) { | 217 | for (i = 0; i<8; i++) { |
215 | mask = 0x80 >> i; | 218 | mask = 0x80 >> i; |
216 | if (!(sch->lpm & mask)) | 219 | if (!(sch->lpm & mask)) |
217 | continue; | 220 | continue; |
218 | if (old_lpm & mask) | 221 | if (old_lpm & mask) |
219 | continue; | 222 | continue; |
220 | chpid_is_actually_online(sch->schib.pmcw.chpid[i]); | 223 | chpid.id = sch->schib.pmcw.chpid[i]; |
224 | chpid_is_actually_online(chpid); | ||
221 | } | 225 | } |
222 | } | 226 | } |
223 | 227 | ||