Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f99a916 authored by Stephen Cameron's avatar Stephen Cameron Committed by James Bottomley
Browse files

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: default avatarScott Teel <scott.teel@pmcs.com>
Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent c2b0acde
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -3456,8 +3456,6 @@ static void set_encrypt_ioaccel2(struct ctlr_info *h,
	struct raid_map_data *map = &dev->raid_map;
	struct raid_map_data *map = &dev->raid_map;
	u64 first_block;
	u64 first_block;


	BUG_ON(!(dev->offload_config && dev->offload_enabled));

	/* Are we doing encryption on this device */
	/* Are we doing encryption on this device */
	if (!(le16_to_cpu(map->flags) & RAID_MAP_FLAG_ENCRYPT_ON))
	if (!(le16_to_cpu(map->flags) & RAID_MAP_FLAG_ENCRYPT_ON))
		return;
		return;
@@ -3688,8 +3686,6 @@ static int hpsa_scsi_ioaccel_raid_map(struct ctlr_info *h,
#endif
#endif
	int offload_to_mirror;
	int offload_to_mirror;


	BUG_ON(!(dev->offload_config && dev->offload_enabled));

	/* check for valid opcode, get LBA and block count */
	/* check for valid opcode, get LBA and block count */
	switch (cmd->cmnd[0]) {
	switch (cmd->cmnd[0]) {
	case WRITE_6:
	case WRITE_6: