diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-22 08:43:59 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-22 08:43:59 -0700 |
commit | c81eddb0e3728661d1585fbc564449c94165cc36 (patch) | |
tree | bd7dbc09bec4c1c90552718d48fb7f30b94e0265 /drivers/s390/block/dasd_3990_erp.c | |
parent | a28ca3f3244dfe05d16c67f2c0636ce6bf2b4e0a (diff) | |
parent | 76ef964c78797f9baed7c2f9a58f696e86d8a048 (diff) | |
download | op-kernel-dev-c81eddb0e3728661d1585fbc564449c94165cc36.zip op-kernel-dev-c81eddb0e3728661d1585fbc564449c94165cc36.tar.gz |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] zcore: Fix reipl device detection
[S390] vdso: use ntp adjusted clock multiplier
[S390] cio: use exception-save stsch
[S390] add hook to reenable mss after hibernation
[S390] cio: allow enable_facility from outside init functions
[S390] dasd: fix endless loop in erp
Diffstat (limited to 'drivers/s390/block/dasd_3990_erp.c')
-rw-r--r-- | drivers/s390/block/dasd_3990_erp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c index 6927e75..6632649 100644 --- a/drivers/s390/block/dasd_3990_erp.c +++ b/drivers/s390/block/dasd_3990_erp.c @@ -2309,7 +2309,7 @@ static struct dasd_ccw_req *dasd_3990_erp_add_erp(struct dasd_ccw_req *cqr) cqr->retries); dasd_block_set_timer(device->block, (HZ << 3)); } - return cqr; + return erp; } ccw = cqr->cpaddr; @@ -2372,6 +2372,9 @@ dasd_3990_erp_additional_erp(struct dasd_ccw_req * cqr) /* add erp and initialize with default TIC */ erp = dasd_3990_erp_add_erp(cqr); + if (IS_ERR(erp)) + return erp; + /* inspect sense, determine specific ERP if possible */ if (erp != cqr) { @@ -2711,6 +2714,8 @@ dasd_3990_erp_action(struct dasd_ccw_req * cqr) if (erp == NULL) { /* no matching erp found - set up erp */ erp = dasd_3990_erp_additional_erp(cqr); + if (IS_ERR(erp)) + return erp; } else { /* matching erp found - set all leading erp's to DONE */ erp = dasd_3990_erp_handle_match_erp(cqr, erp); |