aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/device_fsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/device_fsm.c')
-rw-r--r--drivers/s390/cio/device_fsm.c6
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
26int 27int
27device_is_online(struct subchannel *sch) 28device_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