aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/mpt2sas')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c4
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c88
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 */
5827static 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 */