]> Pileus Git - ~andy/linux/commitdiff
[SCSI] ipr: Physical resource error logging macro
authorbrking@us.ibm.com <brking@us.ibm.com>
Tue, 1 Nov 2005 23:00:27 +0000 (17:00 -0600)
committerJames Bottomley <jejb@mulgrave.(none)>
Sun, 6 Nov 2005 19:00:34 +0000 (13:00 -0600)
Adds a macro in the ipr driver for logging a physical device location.

Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/ipr.c
drivers/scsi/ipr.h

index d5da5e5c4c6dd4c1a90396237405765cd1520614..75f1b6247e1989de436bb8f2daf13a264f24b7a3 100644 (file)
@@ -968,13 +968,7 @@ static void ipr_log_config_error(struct ipr_ioa_cfg *ioa_cfg,
        for (i = 0; i < errors_logged; i++, dev_entry++) {
                ipr_err_separator;
 
-               if (dev_entry->dev_res_addr.bus >= IPR_MAX_NUM_BUSES) {
-                       ipr_err("Device %d: missing\n", i + 1);
-               } else {
-                       ipr_err("Device %d: %d:%d:%d:%d\n", i + 1,
-                               ioa_cfg->host->host_no, dev_entry->dev_res_addr.bus,
-                               dev_entry->dev_res_addr.target, dev_entry->dev_res_addr.lun);
-               }
+               ipr_phys_res_err(ioa_cfg, dev_entry->dev_res_addr, "Device %d", i + 1);
                ipr_log_vpd(&dev_entry->vpd);
 
                ipr_err("-----New Device Information-----\n");
@@ -1030,33 +1024,16 @@ static void ipr_log_array_error(struct ipr_ioa_cfg *ioa_cfg,
                if (!memcmp(array_entry->vpd.sn, zero_sn, IPR_SERIAL_NUM_LEN))
                        continue;
 
-               if (be32_to_cpu(error->exposed_mode_adn) == i) {
+               if (be32_to_cpu(error->exposed_mode_adn) == i)
                        ipr_err("Exposed Array Member %d:\n", i);
-               } else {
+               else
                        ipr_err("Array Member %d:\n", i);
-               }
 
                ipr_log_vpd(&array_entry->vpd);
 
-               if (array_entry->dev_res_addr.bus >= IPR_MAX_NUM_BUSES) {
-                       ipr_err("Current Location: unknown\n");
-               } else {
-                       ipr_err("Current Location: %d:%d:%d:%d\n",
-                               ioa_cfg->host->host_no,
-                               array_entry->dev_res_addr.bus,
-                               array_entry->dev_res_addr.target,
-                               array_entry->dev_res_addr.lun);
-               }
-
-               if (array_entry->expected_dev_res_addr.bus >= IPR_MAX_NUM_BUSES) {
-                       ipr_err("Expected Location: unknown\n");
-               } else {
-                       ipr_err("Expected Location: %d:%d:%d:%d\n",
-                               ioa_cfg->host->host_no,
-                               array_entry->expected_dev_res_addr.bus,
-                               array_entry->expected_dev_res_addr.target,
-                               array_entry->expected_dev_res_addr.lun);
-               }
+               ipr_phys_res_err(ioa_cfg, array_entry->dev_res_addr, "Current Location");
+               ipr_phys_res_err(ioa_cfg, array_entry->expected_dev_res_addr,
+                                "Expected Location");
 
                ipr_err_separator;
 
index 01950b9d2e6da56749b23259937c4fe64bb1e015..b8c1603f99ebba04a3dd93debabcf55f5d0fe472 100644 (file)
@@ -1123,6 +1123,17 @@ struct ipr_ucode_image_header {
 #define ipr_res_dbg(ioa_cfg, res, fmt, ...) \
        IPR_DBG_CMD(ipr_res_printk(KERN_INFO, ioa_cfg, res, fmt, ##__VA_ARGS__))
 
+#define ipr_phys_res_err(ioa_cfg, res, fmt, ...)                       \
+{                                                                      \
+       if ((res).bus >= IPR_MAX_NUM_BUSES) {                           \
+               ipr_err(fmt": unknown\n", ##__VA_ARGS__);               \
+       } else {                                                        \
+               ipr_err(fmt": %d:%d:%d:%d\n",                           \
+                       ##__VA_ARGS__, (ioa_cfg)->host->host_no,        \
+                       (res).bus, (res).target, (res).lun);            \
+       }                                                               \
+}
+
 #define ipr_trace ipr_dbg("%s: %s: Line: %d\n",\
        __FILE__, __FUNCTION__, __LINE__)