|
@@ -1060,12 +1060,12 @@ lun_assigned:
|
|
|
|
|
|
h->dev[n] = device;
|
|
|
h->ndevices++;
|
|
|
- device->offload_to_be_enabled = device->offload_enabled;
|
|
|
- device->offload_enabled = 0;
|
|
|
added[*nadded] = device;
|
|
|
(*nadded)++;
|
|
|
hpsa_show_dev_msg(KERN_INFO, h, device,
|
|
|
device->expose_state & HPSA_SCSI_ADD ? "added" : "masked");
|
|
|
+ device->offload_to_be_enabled = device->offload_enabled;
|
|
|
+ device->offload_enabled = 0;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1073,6 +1073,7 @@ lun_assigned:
|
|
|
static void hpsa_scsi_update_entry(struct ctlr_info *h, int hostno,
|
|
|
int entry, struct hpsa_scsi_dev_t *new_entry)
|
|
|
{
|
|
|
+ int offload_enabled;
|
|
|
/* assumes h->devlock is held */
|
|
|
BUG_ON(entry < 0 || entry >= HPSA_MAX_DEVICES);
|
|
|
|
|
@@ -1105,7 +1106,10 @@ static void hpsa_scsi_update_entry(struct ctlr_info *h, int hostno,
|
|
|
if (!new_entry->offload_enabled)
|
|
|
h->dev[entry]->offload_enabled = 0;
|
|
|
|
|
|
+ offload_enabled = h->dev[entry]->offload_enabled;
|
|
|
+ h->dev[entry]->offload_enabled = h->dev[entry]->offload_to_be_enabled;
|
|
|
hpsa_show_dev_msg(KERN_INFO, h, h->dev[entry], "updated");
|
|
|
+ h->dev[entry]->offload_enabled = offload_enabled;
|
|
|
}
|
|
|
|
|
|
/* Replace an entry from h->dev[] array. */
|
|
@@ -1128,12 +1132,12 @@ static void hpsa_scsi_replace_entry(struct ctlr_info *h, int hostno,
|
|
|
new_entry->lun = h->dev[entry]->lun;
|
|
|
}
|
|
|
|
|
|
- new_entry->offload_to_be_enabled = new_entry->offload_enabled;
|
|
|
- new_entry->offload_enabled = 0;
|
|
|
h->dev[entry] = new_entry;
|
|
|
added[*nadded] = new_entry;
|
|
|
(*nadded)++;
|
|
|
hpsa_show_dev_msg(KERN_INFO, h, new_entry, "replaced");
|
|
|
+ new_entry->offload_to_be_enabled = new_entry->offload_enabled;
|
|
|
+ new_entry->offload_enabled = 0;
|
|
|
}
|
|
|
|
|
|
/* Remove an entry from h->dev[] array. */
|