aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-11-12 18:07:36 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-12-21 13:24:06 -0500
commit90d2a672250b9d6e5c700f2d2c07c19d6fad064a (patch)
tree3ce814a3fa0405ff775e6ced12234edc76a92178 /drivers/scsi/mpt2sas
parent7d061402590efc37d553a9155dbf41277675c179 (diff)
[SCSI] mpt2sas: Remove code for TASK_SET_FULL from driver.
remove support for MPI2_EVENT_TASK_SET_FULL This event is obsoleted, so this processing of this event needs to be removed from the driver. The controller firmware is going to handle TASK_SET_FULL, the driver doesn't need to do anything. Even though we are removing the EVENT handling, the behavour has not changed between driver versions becuase fimrware will still be handling queue throttling, and retrying of commands when the target device queues are full. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
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 */