summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.c
diff options
context:
space:
mode:
authorbrking@us.ibm.com <brking@us.ibm.com>2005-11-02 00:00:47 +0100
committerJames Bottomley <jejb@mulgrave.(none)>2005-11-06 20:01:24 +0100
commitcf8520376c2b752237095f6cd279e5443bd2fffe (patch)
tree7984a56ed5fbada16a7af99d9ac4b254c2348390 /drivers/scsi/ipr.c
parent[SCSI] ipr: Handle unknown errors (diff)
downloadlinux-cf8520376c2b752237095f6cd279e5443bd2fffe.tar.xz
linux-cf8520376c2b752237095f6cd279e5443bd2fffe.zip
[SCSI] ipr: Error logging cleanup
Simplify error logging path, sanitize error length returned by the adapter. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r--drivers/scsi/ipr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 40763b64e9eb..b5a2669518ba 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -1141,11 +1141,10 @@ static void ipr_handle_log_data(struct ipr_ioa_cfg *ioa_cfg,
if (ioa_cfg->log_level < IPR_DEFAULT_LOG_LEVEL)
return;
+ if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw))
+ hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw));
switch (hostrcb->hcam.overlay_id) {
- case IPR_HOST_RCB_OVERLAY_ID_1:
- ipr_log_generic_error(ioa_cfg, hostrcb);
- break;
case IPR_HOST_RCB_OVERLAY_ID_2:
ipr_log_cache_error(ioa_cfg, hostrcb);
break;
@@ -1156,6 +1155,7 @@ static void ipr_handle_log_data(struct ipr_ioa_cfg *ioa_cfg,
case IPR_HOST_RCB_OVERLAY_ID_6:
ipr_log_array_error(ioa_cfg, hostrcb);
break;
+ case IPR_HOST_RCB_OVERLAY_ID_1:
case IPR_HOST_RCB_OVERLAY_ID_DEFAULT:
default:
ipr_log_generic_error(ioa_cfg, hostrcb);