The "result" variable contains a negative error code and
should not be logged as an hex value.
This fixes the following error message:

[  250.068869] scsi 8:0:2:254: Wrong diagnostic page; asked for 2 got 0
[  250.068872] scsi 8:0:2:254: Failed to get diagnostic page 0xffffffea

Signed-off-by: Maurizio Lombardi <mlomb...@redhat.com>
---
 drivers/scsi/ses.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index f1cdf32..0ac45be 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -604,6 +604,7 @@ static int ses_intf_add(struct device *cdev,
        unsigned char *buf = NULL, *hdr_buf, *type_ptr;
        struct ses_device *ses_dev;
        u32 result;
+       int page;
        int i, types, len, components = 0;
        int err = -ENOMEM;
        int num_enclosures;
@@ -630,7 +631,8 @@ static int ses_intf_add(struct device *cdev,
        if (!hdr_buf || !ses_dev)
                goto err_init_free;
 
-       result = ses_recv_diag(sdev, 1, hdr_buf, INIT_ALLOC_SIZE);
+       page = 1;
+       result = ses_recv_diag(sdev, page, hdr_buf, INIT_ALLOC_SIZE);
        if (result)
                goto recv_failed;
 
@@ -639,7 +641,7 @@ static int ses_intf_add(struct device *cdev,
        if (!buf)
                goto err_free;
 
-       result = ses_recv_diag(sdev, 1, buf, len);
+       result = ses_recv_diag(sdev, page, buf, len);
        if (result)
                goto recv_failed;
 
@@ -669,7 +671,8 @@ static int ses_intf_add(struct device *cdev,
        ses_dev->page1_len = len;
        buf = NULL;
 
-       result = ses_recv_diag(sdev, 2, hdr_buf, INIT_ALLOC_SIZE);
+       page = 2;
+       result = ses_recv_diag(sdev, page, hdr_buf, INIT_ALLOC_SIZE);
        if (result)
                goto recv_failed;
 
@@ -679,7 +682,7 @@ static int ses_intf_add(struct device *cdev,
                goto err_free;
 
        /* make sure getting page 2 actually works */
-       result = ses_recv_diag(sdev, 2, buf, len);
+       result = ses_recv_diag(sdev, page, buf, len);
        if (result)
                goto recv_failed;
        ses_dev->page2 = buf;
@@ -688,7 +691,8 @@ static int ses_intf_add(struct device *cdev,
 
        /* The additional information page --- allows us
         * to match up the devices */
-       result = ses_recv_diag(sdev, 10, hdr_buf, INIT_ALLOC_SIZE);
+       page = 10;
+       result = ses_recv_diag(sdev, page, hdr_buf, INIT_ALLOC_SIZE);
        if (!result) {
 
                len = (hdr_buf[2] << 8) + hdr_buf[3] + 4;
@@ -696,7 +700,7 @@ static int ses_intf_add(struct device *cdev,
                if (!buf)
                        goto err_free;
 
-               result = ses_recv_diag(sdev, 10, buf, len);
+               result = ses_recv_diag(sdev, page, buf, len);
                if (result)
                        goto recv_failed;
                ses_dev->page10 = buf;
@@ -733,8 +737,9 @@ static int ses_intf_add(struct device *cdev,
        return 0;
 
  recv_failed:
-       sdev_printk(KERN_ERR, sdev, "Failed to get diagnostic page 0x%x\n",
-                   result);
+       sdev_printk(KERN_ERR, sdev,
+                   "Failed to get diagnostic page %d with error %d\n",
+                   page, result);
        err = -ENODEV;
  err_free:
        kfree(buf);
-- 
Maurizio Lombardi

Reply via email to