diff options
author | Stefan Haberland <stefan.haberland@de.ibm.com> | 2008-07-17 11:16:41 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-07-17 11:22:08 -0400 |
commit | 9d853caf44e6f969a9ad056a9937e8d97bc2c761 (patch) | |
tree | 861d951000066b8e5bdbf1a7b8cc7171fd593120 | |
parent | 12e0c95e0ca99f633c9d9f90773037eb178685ad (diff) |
[S390] dasd: fix unsolicited SIM handling.
Add missing schedule_bh and check that there is 32 bit sense data.
Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | drivers/s390/block/dasd_eckd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index e0b77210d37a..3590fdb5b2fd 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -1418,8 +1418,10 @@ static void dasd_eckd_handle_unsolicited_interrupt(struct dasd_device *device, | |||
1418 | 1418 | ||
1419 | 1419 | ||
1420 | /* service information message SIM */ | 1420 | /* service information message SIM */ |
1421 | if ((irb->ecw[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE) { | 1421 | if (irb->esw.esw0.erw.cons && (irb->ecw[27] & DASD_SENSE_BIT_0) && |
1422 | ((irb->ecw[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE)) { | ||
1422 | dasd_3990_erp_handle_sim(device, irb->ecw); | 1423 | dasd_3990_erp_handle_sim(device, irb->ecw); |
1424 | dasd_schedule_device_bh(device); | ||
1423 | return; | 1425 | return; |
1424 | } | 1426 | } |
1425 | 1427 | ||