diff options
author | Stefan Haberland <stefan.haberland@de.ibm.com> | 2008-07-17 17:16:41 +0200 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-07-17 17:22:08 +0200 |
commit | 9d853caf44e6f969a9ad056a9937e8d97bc2c761 (patch) | |
tree | 861d951000066b8e5bdbf1a7b8cc7171fd593120 /drivers/s390/block | |
parent | 12e0c95e0ca99f633c9d9f90773037eb178685ad (diff) | |
download | op-kernel-dev-9d853caf44e6f969a9ad056a9937e8d97bc2c761.zip op-kernel-dev-9d853caf44e6f969a9ad056a9937e8d97bc2c761.tar.gz |
[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>
Diffstat (limited to 'drivers/s390/block')
-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 e0b7721..3590fdb 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, /* service information message SIM */ - if ((irb->ecw[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE) { + if (irb->esw.esw0.erw.cons && (irb->ecw[27] & DASD_SENSE_BIT_0) && + ((irb->ecw[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE)) { dasd_3990_erp_handle_sim(device, irb->ecw); + dasd_schedule_device_bh(device); return; } |