diff options
author | Stephen Cameron <stephenmcameron@gmail.com> | 2015-01-23 17:44:01 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2015-02-02 12:57:42 -0500 |
commit | 6f99a9160f1947569bc17b85fbe7353a1090dfe7 (patch) | |
tree | 37b0c2e6cbd9f5f715ee9fffbe57697dbe6f3df6 /drivers/scsi | |
parent | c2b0acde0608542add2bfc2a73c23b98f20eeec4 (diff) |
hpsa: remove incorrect BUG_ONs checking for raid offload enable
In set_encrypt_ioaccel2() and in hpsa_scsi_ioaccel_raid_map
there were BUG_ONs that looked like this:
BUG_ON(!(dev->offload_config && dev->offload_enabled));
But, In hpsa_ack_ctlr_events() we have this,
/* Stop sending new RAID offload reqs via the IO accelerator */
scsi_block_requests(h->scsi_host);
for (i = 0; i < h->ndevices; i++)
h->dev[i]->offload_enabled = 0;
hpsa_drain_accel_commands(h);
So, we set offload_enabled = 0 for all drives, then do this
drain_accel_commands, so that means accel commands could still
be in flight, ie. perhaps having just been submitted into
hpsa_scsi_ioaccel_raid_map concurrent with ->offload_enabled
having just been set to zero.
Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/hpsa.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index bae3759e30e2..5abd49d85940 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c | |||
@@ -3456,8 +3456,6 @@ static void set_encrypt_ioaccel2(struct ctlr_info *h, | |||
3456 | struct raid_map_data *map = &dev->raid_map; | 3456 | struct raid_map_data *map = &dev->raid_map; |
3457 | u64 first_block; | 3457 | u64 first_block; |
3458 | 3458 | ||
3459 | BUG_ON(!(dev->offload_config && dev->offload_enabled)); | ||
3460 | |||
3461 | /* Are we doing encryption on this device */ | 3459 | /* Are we doing encryption on this device */ |
3462 | if (!(le16_to_cpu(map->flags) & RAID_MAP_FLAG_ENCRYPT_ON)) | 3460 | if (!(le16_to_cpu(map->flags) & RAID_MAP_FLAG_ENCRYPT_ON)) |
3463 | return; | 3461 | return; |
@@ -3688,8 +3686,6 @@ static int hpsa_scsi_ioaccel_raid_map(struct ctlr_info *h, | |||
3688 | #endif | 3686 | #endif |
3689 | int offload_to_mirror; | 3687 | int offload_to_mirror; |
3690 | 3688 | ||
3691 | BUG_ON(!(dev->offload_config && dev->offload_enabled)); | ||
3692 | |||
3693 | /* check for valid opcode, get LBA and block count */ | 3689 | /* check for valid opcode, get LBA and block count */ |
3694 | switch (cmd->cmnd[0]) { | 3690 | switch (cmd->cmnd[0]) { |
3695 | case WRITE_6: | 3691 | case WRITE_6: |