Commit a0b89872 authored by Stephen M. Cameron's avatar Stephen M. Cameron Committed by James Bottomley

[SCSI] hpsa: do not consider firmware revision when looking for device changes.

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: default avatarStephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 77434284
...@@ -641,11 +641,6 @@ static void fixup_botched_add(struct ctlr_info *h, ...@@ -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, static inline int device_is_the_same(struct hpsa_scsi_dev_t *dev1,
struct hpsa_scsi_dev_t *dev2) 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 /* we compare everything except lun and target as these
* are not yet assigned. Compare parts likely * are not yet assigned. Compare parts likely
* to differ first * to differ first
...@@ -660,8 +655,6 @@ static inline int device_is_the_same(struct hpsa_scsi_dev_t *dev1, ...@@ -660,8 +655,6 @@ static inline int device_is_the_same(struct hpsa_scsi_dev_t *dev1,
return 0; return 0;
if (memcmp(dev1->vendor, dev2->vendor, sizeof(dev1->vendor)) != 0) if (memcmp(dev1->vendor, dev2->vendor, sizeof(dev1->vendor)) != 0)
return 0; return 0;
if (memcmp(dev1->revision, dev2->revision, sizeof(dev1->revision)) != 0)
return 0;
if (dev1->devtype != dev2->devtype) if (dev1->devtype != dev2->devtype)
return 0; return 0;
if (dev1->raid_level != dev2->raid_level) if (dev1->raid_level != dev2->raid_level)
...@@ -1477,8 +1470,6 @@ static int hpsa_update_device_info(struct ctlr_info *h, ...@@ -1477,8 +1470,6 @@ static int hpsa_update_device_info(struct ctlr_info *h,
sizeof(this_device->vendor)); sizeof(this_device->vendor));
memcpy(this_device->model, &inq_buff[16], memcpy(this_device->model, &inq_buff[16],
sizeof(this_device->model)); sizeof(this_device->model));
memcpy(this_device->revision, &inq_buff[32],
sizeof(this_device->revision));
memset(this_device->device_id, 0, memset(this_device->device_id, 0,
sizeof(this_device->device_id)); sizeof(this_device->device_id));
hpsa_get_device_id(h, scsi3addr, this_device->device_id, hpsa_get_device_id(h, scsi3addr, this_device->device_id,
......
...@@ -45,7 +45,6 @@ struct hpsa_scsi_dev_t { ...@@ -45,7 +45,6 @@ struct hpsa_scsi_dev_t {
unsigned char device_id[16]; /* from inquiry pg. 0x83 */ unsigned char device_id[16]; /* from inquiry pg. 0x83 */
unsigned char vendor[8]; /* bytes 8-15 of inquiry data */ unsigned char vendor[8]; /* bytes 8-15 of inquiry data */
unsigned char model[16]; /* bytes 16-31 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 */ unsigned char raid_level; /* from inquiry page 0xC1 */
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment