|
@@ -229,7 +229,7 @@ dasd_diag_term_IO(struct dasd_ccw_req * cqr)
|
|
|
}
|
|
|
|
|
|
/* Handle external interruption. */
|
|
|
-static void dasd_ext_handler(unsigned int ext_int_code,
|
|
|
+static void dasd_ext_handler(struct ext_code ext_code,
|
|
|
unsigned int param32, unsigned long param64)
|
|
|
{
|
|
|
struct dasd_ccw_req *cqr, *next;
|
|
@@ -239,7 +239,7 @@ static void dasd_ext_handler(unsigned int ext_int_code,
|
|
|
addr_t ip;
|
|
|
int rc;
|
|
|
|
|
|
- switch (ext_int_code >> 24) {
|
|
|
+ switch (ext_code.subcode >> 8) {
|
|
|
case DASD_DIAG_CODE_31BIT:
|
|
|
ip = (addr_t) param32;
|
|
|
break;
|
|
@@ -280,7 +280,7 @@ static void dasd_ext_handler(unsigned int ext_int_code,
|
|
|
cqr->stopclk = get_clock();
|
|
|
|
|
|
expires = 0;
|
|
|
- if ((ext_int_code & 0xff0000) == 0) {
|
|
|
+ if ((ext_code.subcode & 0xff) == 0) {
|
|
|
cqr->status = DASD_CQR_SUCCESS;
|
|
|
/* Start first request on queue if possible -> fast_io. */
|
|
|
if (!list_empty(&device->ccw_queue)) {
|
|
@@ -296,7 +296,7 @@ static void dasd_ext_handler(unsigned int ext_int_code,
|
|
|
cqr->status = DASD_CQR_QUEUED;
|
|
|
DBF_DEV_EVENT(DBF_DEBUG, device, "interrupt status for "
|
|
|
"request %p was %d (%d retries left)", cqr,
|
|
|
- (ext_int_code >> 16) & 0xff, cqr->retries);
|
|
|
+ ext_code.subcode & 0xff, cqr->retries);
|
|
|
dasd_diag_erp(device);
|
|
|
}
|
|
|
|