diff options
Diffstat (limited to 'drivers/scsi/mpt2sas')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.c | 4 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 88 |
2 files changed, 0 insertions, 92 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c index c8f39f8c6fed..b2a817055b8b 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.c +++ b/drivers/scsi/mpt2sas/mpt2sas_base.c | |||
@@ -518,9 +518,6 @@ _base_display_event_data(struct MPT2SAS_ADAPTER *ioc, | |||
518 | case MPI2_EVENT_EVENT_CHANGE: | 518 | case MPI2_EVENT_EVENT_CHANGE: |
519 | desc = "Event Change"; | 519 | desc = "Event Change"; |
520 | break; | 520 | break; |
521 | case MPI2_EVENT_TASK_SET_FULL: | ||
522 | desc = "Task Set Full"; | ||
523 | break; | ||
524 | case MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE: | 521 | case MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE: |
525 | desc = "Device Status Change"; | 522 | desc = "Device Status Change"; |
526 | break; | 523 | break; |
@@ -3863,7 +3860,6 @@ mpt2sas_base_attach(struct MPT2SAS_ADAPTER *ioc) | |||
3863 | _base_unmask_events(ioc, MPI2_EVENT_IR_VOLUME); | 3860 | _base_unmask_events(ioc, MPI2_EVENT_IR_VOLUME); |
3864 | _base_unmask_events(ioc, MPI2_EVENT_IR_PHYSICAL_DISK); | 3861 | _base_unmask_events(ioc, MPI2_EVENT_IR_PHYSICAL_DISK); |
3865 | _base_unmask_events(ioc, MPI2_EVENT_IR_OPERATION_STATUS); | 3862 | _base_unmask_events(ioc, MPI2_EVENT_IR_OPERATION_STATUS); |
3866 | _base_unmask_events(ioc, MPI2_EVENT_TASK_SET_FULL); | ||
3867 | _base_unmask_events(ioc, MPI2_EVENT_LOG_ENTRY_ADDED); | 3863 | _base_unmask_events(ioc, MPI2_EVENT_LOG_ENTRY_ADDED); |
3868 | r = _base_make_ioc_operational(ioc, CAN_SLEEP); | 3864 | r = _base_make_ioc_operational(ioc, CAN_SLEEP); |
3869 | if (r) | 3865 | if (r) |
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c index 50c6bdf3fddd..e4987dbbaa50 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c | |||
@@ -5817,90 +5817,6 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc, | |||
5817 | } | 5817 | } |
5818 | 5818 | ||
5819 | /** | 5819 | /** |
5820 | * _scsih_task_set_full - handle task set full | ||
5821 | * @ioc: per adapter object | ||
5822 | * @fw_event: The fw_event_work object | ||
5823 | * Context: user. | ||
5824 | * | ||
5825 | * Throttle back qdepth. | ||
5826 | */ | ||
5827 | static void | ||
5828 | _scsih_task_set_full(struct MPT2SAS_ADAPTER *ioc, struct fw_event_work | ||
5829 | *fw_event) | ||
5830 | { | ||
5831 | unsigned long flags; | ||
5832 | struct _sas_device *sas_device; | ||
5833 | static struct _raid_device *raid_device; | ||
5834 | struct scsi_device *sdev; | ||
5835 | int depth; | ||
5836 | u16 current_depth; | ||
5837 | u16 handle; | ||
5838 | int id, channel; | ||
5839 | u64 sas_address; | ||
5840 | Mpi2EventDataTaskSetFull_t *event_data = fw_event->event_data; | ||
5841 | |||
5842 | current_depth = le16_to_cpu(event_data->CurrentDepth); | ||
5843 | handle = le16_to_cpu(event_data->DevHandle); | ||
5844 | spin_lock_irqsave(&ioc->sas_device_lock, flags); | ||
5845 | sas_device = _scsih_sas_device_find_by_handle(ioc, handle); | ||
5846 | if (!sas_device) { | ||
5847 | spin_unlock_irqrestore(&ioc->sas_device_lock, flags); | ||
5848 | return; | ||
5849 | } | ||
5850 | spin_unlock_irqrestore(&ioc->sas_device_lock, flags); | ||
5851 | id = sas_device->id; | ||
5852 | channel = sas_device->channel; | ||
5853 | sas_address = sas_device->sas_address; | ||
5854 | |||
5855 | /* if hidden raid component, then change to volume characteristics */ | ||
5856 | if (test_bit(handle, ioc->pd_handles) && sas_device->volume_handle) { | ||
5857 | spin_lock_irqsave(&ioc->raid_device_lock, flags); | ||
5858 | raid_device = _scsih_raid_device_find_by_handle( | ||
5859 | ioc, sas_device->volume_handle); | ||
5860 | spin_unlock_irqrestore(&ioc->raid_device_lock, flags); | ||
5861 | if (raid_device) { | ||
5862 | id = raid_device->id; | ||
5863 | channel = raid_device->channel; | ||
5864 | handle = raid_device->handle; | ||
5865 | sas_address = raid_device->wwid; | ||
5866 | } | ||
5867 | } | ||
5868 | |||
5869 | if (ioc->logging_level & MPT_DEBUG_TASK_SET_FULL) | ||
5870 | starget_printk(KERN_INFO, sas_device->starget, "task set " | ||
5871 | "full: handle(0x%04x), sas_addr(0x%016llx), depth(%d)\n", | ||
5872 | handle, (unsigned long long)sas_address, current_depth); | ||
5873 | |||
5874 | shost_for_each_device(sdev, ioc->shost) { | ||
5875 | if (sdev->id == id && sdev->channel == channel) { | ||
5876 | if (current_depth > sdev->queue_depth) { | ||
5877 | if (ioc->logging_level & | ||
5878 | MPT_DEBUG_TASK_SET_FULL) | ||
5879 | sdev_printk(KERN_INFO, sdev, "strange " | ||
5880 | "observation, the queue depth is" | ||
5881 | " (%d) meanwhile fw queue depth " | ||
5882 | "is (%d)\n", sdev->queue_depth, | ||
5883 | current_depth); | ||
5884 | continue; | ||
5885 | } | ||
5886 | depth = scsi_track_queue_full(sdev, | ||
5887 | current_depth - 1); | ||
5888 | if (depth > 0) | ||
5889 | sdev_printk(KERN_INFO, sdev, "Queue depth " | ||
5890 | "reduced to (%d)\n", depth); | ||
5891 | else if (depth < 0) | ||
5892 | sdev_printk(KERN_INFO, sdev, "Tagged Command " | ||
5893 | "Queueing is being disabled\n"); | ||
5894 | else if (depth == 0) | ||
5895 | if (ioc->logging_level & | ||
5896 | MPT_DEBUG_TASK_SET_FULL) | ||
5897 | sdev_printk(KERN_INFO, sdev, | ||
5898 | "Queue depth not changed yet\n"); | ||
5899 | } | ||
5900 | } | ||
5901 | } | ||
5902 | |||
5903 | /** | ||
5904 | * _scsih_prep_device_scan - initialize parameters prior to device scan | 5820 | * _scsih_prep_device_scan - initialize parameters prior to device scan |
5905 | * @ioc: per adapter object | 5821 | * @ioc: per adapter object |
5906 | * | 5822 | * |
@@ -6387,9 +6303,6 @@ _firmware_event_work(struct work_struct *work) | |||
6387 | case MPI2_EVENT_IR_OPERATION_STATUS: | 6303 | case MPI2_EVENT_IR_OPERATION_STATUS: |
6388 | _scsih_sas_ir_operation_status_event(ioc, fw_event); | 6304 | _scsih_sas_ir_operation_status_event(ioc, fw_event); |
6389 | break; | 6305 | break; |
6390 | case MPI2_EVENT_TASK_SET_FULL: | ||
6391 | _scsih_task_set_full(ioc, fw_event); | ||
6392 | break; | ||
6393 | } | 6306 | } |
6394 | _scsih_fw_event_free(ioc, fw_event); | 6307 | _scsih_fw_event_free(ioc, fw_event); |
6395 | } | 6308 | } |
@@ -6459,7 +6372,6 @@ mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index, | |||
6459 | case MPI2_EVENT_SAS_DISCOVERY: | 6372 | case MPI2_EVENT_SAS_DISCOVERY: |
6460 | case MPI2_EVENT_SAS_ENCL_DEVICE_STATUS_CHANGE: | 6373 | case MPI2_EVENT_SAS_ENCL_DEVICE_STATUS_CHANGE: |
6461 | case MPI2_EVENT_IR_PHYSICAL_DISK: | 6374 | case MPI2_EVENT_IR_PHYSICAL_DISK: |
6462 | case MPI2_EVENT_TASK_SET_FULL: | ||
6463 | break; | 6375 | break; |
6464 | 6376 | ||
6465 | default: /* ignore the rest */ | 6377 | default: /* ignore the rest */ |