From: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx> the driver no longer waits for the firmware to consume the event ack IU. Reviewed-by: Scott Teel <scott.teel@xxxxxxxxxxxxx> Reviewed-by: Scott Benesh <scott.benesh@xxxxxxxxxxxxx> Signed-off-by: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx> Signed-off-by: Don Brace <don.brace@xxxxxxxxxxxxx> --- drivers/scsi/smartpqi/smartpqi.h | 14 +++++++------- drivers/scsi/smartpqi/smartpqi_init.c | 20 -------------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/drivers/scsi/smartpqi/smartpqi.h b/drivers/scsi/smartpqi/smartpqi.h index 5f965ad..07b6444 100644 --- a/drivers/scsi/smartpqi/smartpqi.h +++ b/drivers/scsi/smartpqi/smartpqi.h @@ -634,13 +634,6 @@ struct pqi_encryption_info { #define RAID_MAP_MAX_ENTRIES 1024 -#define PQI_RESERVED_IO_SLOTS_LUN_RESET 1 -#define PQI_RESERVED_IO_SLOTS_EVENT_ACK 1 -#define PQI_RESERVED_IO_SLOTS_SYNCHRONOUS_REQUESTS 3 -#define PQI_RESERVED_IO_SLOTS \ - (PQI_RESERVED_IO_SLOTS_LUN_RESET + PQI_RESERVED_IO_SLOTS_EVENT_ACK + \ - PQI_RESERVED_IO_SLOTS_SYNCHRONOUS_REQUESTS) - #define PQI_PHYSICAL_DEVICE_BUS 0 #define PQI_RAID_VOLUME_BUS 1 #define PQI_HBA_BUS 2 @@ -884,6 +877,13 @@ struct pqi_event { __le32 additional_event_id; }; +#define PQI_RESERVED_IO_SLOTS_LUN_RESET 1 +#define PQI_RESERVED_IO_SLOTS_EVENT_ACK PQI_NUM_SUPPORTED_EVENTS +#define PQI_RESERVED_IO_SLOTS_SYNCHRONOUS_REQUESTS 3 +#define PQI_RESERVED_IO_SLOTS \ + (PQI_RESERVED_IO_SLOTS_LUN_RESET + PQI_RESERVED_IO_SLOTS_EVENT_ACK + \ + PQI_RESERVED_IO_SLOTS_SYNCHRONOUS_REQUESTS) + struct pqi_ctrl_info { unsigned int ctrl_id; struct pci_dev *pci_dev; diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 6dda9f5..52c752f 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -2642,26 +2642,6 @@ static void pqi_start_event_ack(struct pqi_ctrl_info *ctrl_info, writel(iq_pi, queue_group->iq_pi[RAID_PATH]); spin_unlock_irqrestore(&queue_group->submit_lock[RAID_PATH], flags); - - /* - * We have to special-case this type of request because the firmware - * does not generate an interrupt when this type of request completes. - * Therefore, we have to poll until we see that the firmware has - * consumed the request before we move on. - */ - - timeout = (PQI_EVENT_ACK_TIMEOUT * HZ) + jiffies; - - while (1) { - if (*queue_group->iq_ci[RAID_PATH] == iq_pi) - break; - if (time_after(jiffies, timeout)) { - dev_err(&ctrl_info->pci_dev->dev, - "completing event acknowledge timed out\n"); - break; - } - usleep_range(1000, 2000); - } } static void pqi_acknowledge_event(struct pqi_ctrl_info *ctrl_info, -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html