[SCSI] hpsa: do not consider firmware revision when looking for device changes.
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Thu, 16 Dec 2010 19:00:58 +0000 (13:00 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 21 Dec 2010 18:37:26 +0000 (12:37 -0600)
The firmware may have been updated, in which case, it's the same device,
and in that case, we do not want to remove and add the device, we want to
let it continue as is.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/hpsa.c
drivers/scsi/hpsa.h

index a6dea08664fc638c611260cbdd067978fb8b8092..a2408e5917705f808e54d3487e1881c70e00618a 100644 (file)
@@ -641,11 +641,6 @@ static void fixup_botched_add(struct ctlr_info *h,
 static inline int device_is_the_same(struct hpsa_scsi_dev_t *dev1,
        struct hpsa_scsi_dev_t *dev2)
 {
-       if ((is_logical_dev_addr_mode(dev1->scsi3addr) ||
-               (dev1->lun != -1 && dev2->lun != -1)) &&
-               dev1->devtype != 0x0C)
-               return (memcmp(dev1, dev2, sizeof(*dev1)) == 0);
-
        /* we compare everything except lun and target as these
         * are not yet assigned.  Compare parts likely
         * to differ first
@@ -660,8 +655,6 @@ static inline int device_is_the_same(struct hpsa_scsi_dev_t *dev1,
                return 0;
        if (memcmp(dev1->vendor, dev2->vendor, sizeof(dev1->vendor)) != 0)
                return 0;
-       if (memcmp(dev1->revision, dev2->revision, sizeof(dev1->revision)) != 0)
-               return 0;
        if (dev1->devtype != dev2->devtype)
                return 0;
        if (dev1->raid_level != dev2->raid_level)
@@ -1477,8 +1470,6 @@ static int hpsa_update_device_info(struct ctlr_info *h,
                sizeof(this_device->vendor));
        memcpy(this_device->model, &inq_buff[16],
                sizeof(this_device->model));
-       memcpy(this_device->revision, &inq_buff[32],
-               sizeof(this_device->revision));
        memset(this_device->device_id, 0,
                sizeof(this_device->device_id));
        hpsa_get_device_id(h, scsi3addr, this_device->device_id,
index a203ef65cb504e1d03b023e9500b239a0ea09db9..19586e189f0f120a67c0494330d499ef54ff08e7 100644 (file)
@@ -45,7 +45,6 @@ struct hpsa_scsi_dev_t {
        unsigned char device_id[16];    /* from inquiry pg. 0x83 */
        unsigned char vendor[8];        /* bytes 8-15 of inquiry data */
        unsigned char model[16];        /* bytes 16-31 of inquiry data */
-       unsigned char revision[4];      /* bytes 32-35 of inquiry data */
        unsigned char raid_level;       /* from inquiry page 0xC1 */
 };