Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 88415
b: refs/heads/master
c: f60c768
h: refs/heads/master
i:
  88413: abbd187
  88411: a457613
  88407: b454188
  88399: 354f1d4
  88383: 7b7ae7c
v: v3
  • Loading branch information
Stefan Haberland authored and Heiko Carstens committed Apr 17, 2008
1 parent 5336d04 commit 81dc615
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2e8b8531b162fb314434f1f2608ba1ddf46b98f
refs/heads/master: f60c768c387026499bbdefdd807d9124ae2b3a8c
34 changes: 34 additions & 0 deletions trunk/drivers/s390/block/dasd_3990_erp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1995,6 +1995,36 @@ dasd_3990_erp_compound(struct dasd_ccw_req * erp, char *sense)

} /* end dasd_3990_erp_compound */

/*
*DASD_3990_ERP_HANDLE_SIM
*
*DESCRIPTION
* inspects the SIM SENSE data and starts an appropriate action
*
* PARAMETER
* sense sense data of the actual error
*
* RETURN VALUES
* none
*/
void
dasd_3990_erp_handle_sim(struct dasd_device *device, char *sense)
{
/* print message according to log or message to operator mode */
if ((sense[24] & DASD_SIM_MSG_TO_OP) || (sense[1] & 0x10)) {

/* print SIM SRC from RefCode */
DEV_MESSAGE(KERN_ERR, device, "SIM - SRC: "
"%02x%02x%02x%02x", sense[22],
sense[23], sense[11], sense[12]);
} else if (sense[24] & DASD_SIM_LOG) {
/* print SIM SRC Refcode */
DEV_MESSAGE(KERN_WARNING, device, "SIM - SRC: "
"%02x%02x%02x%02x", sense[22],
sense[23], sense[11], sense[12]);
}
}

/*
* DASD_3990_ERP_INSPECT_32
*
Expand All @@ -2018,6 +2048,10 @@ dasd_3990_erp_inspect_32(struct dasd_ccw_req * erp, char *sense)

erp->function = dasd_3990_erp_inspect_32;

/* check for SIM sense data */
if ((sense[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE)
dasd_3990_erp_handle_sim(device, sense);

if (sense[25] & DASD_SENSE_BIT_0) {

/* compound program action codes (byte25 bit 0 == '1') */
Expand Down
7 changes: 7 additions & 0 deletions trunk/drivers/s390/block/dasd_eckd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1415,6 +1415,13 @@ static void dasd_eckd_handle_unsolicited_interrupt(struct dasd_device *device,
return;
}


/* service information message SIM */
if ((irb->ecw[6] & DASD_SIM_SENSE) == DASD_SIM_SENSE) {
dasd_3990_erp_handle_sim(device, irb->ecw);
return;
}

/* just report other unsolicited interrupts */
DEV_MESSAGE(KERN_DEBUG, device, "%s",
"unsolicited interrupt received");
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/s390/block/dasd_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ struct dasd_block;
#define DASD_SENSE_BIT_2 0x20
#define DASD_SENSE_BIT_3 0x10

/* BIT DEFINITIONS FOR SIM SENSE */
#define DASD_SIM_SENSE 0x0F
#define DASD_SIM_MSG_TO_OP 0x03
#define DASD_SIM_LOG 0x0C

/*
* SECTION: MACROs for klogd and s390 debug feature (dbf)
*/
Expand Down Expand Up @@ -621,6 +626,7 @@ void dasd_log_sense(struct dasd_ccw_req *, struct irb *);

/* externals in dasd_3990_erp.c */
struct dasd_ccw_req *dasd_3990_erp_action(struct dasd_ccw_req *);
void dasd_3990_erp_handle_sim(struct dasd_device *, char *);

/* externals in dasd_eer.c */
#ifdef CONFIG_DASD_EER
Expand Down

0 comments on commit 81dc615

Please sign in to comment.