diff options
Diffstat (limited to 'drivers/scsi/isci/task.h')
-rw-r--r-- | drivers/scsi/isci/task.h | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/drivers/scsi/isci/task.h b/drivers/scsi/isci/task.h index 1b27b3797c6c..7b6d0e32fd9b 100644 --- a/drivers/scsi/isci/task.h +++ b/drivers/scsi/isci/task.h | |||
@@ -86,8 +86,6 @@ enum isci_tmf_function_codes { | |||
86 | isci_tmf_func_none = 0, | 86 | isci_tmf_func_none = 0, |
87 | isci_tmf_ssp_task_abort = TMF_ABORT_TASK, | 87 | isci_tmf_ssp_task_abort = TMF_ABORT_TASK, |
88 | isci_tmf_ssp_lun_reset = TMF_LU_RESET, | 88 | isci_tmf_ssp_lun_reset = TMF_LU_RESET, |
89 | isci_tmf_sata_srst_high = TMF_LU_RESET + 0x100, /* Non SCSI */ | ||
90 | isci_tmf_sata_srst_low = TMF_LU_RESET + 0x101 /* Non SCSI */ | ||
91 | }; | 89 | }; |
92 | /** | 90 | /** |
93 | * struct isci_tmf - This class represents the task management object which | 91 | * struct isci_tmf - This class represents the task management object which |
@@ -210,8 +208,6 @@ int isci_queuecommand( | |||
210 | struct scsi_cmnd *scsi_cmd, | 208 | struct scsi_cmnd *scsi_cmd, |
211 | void (*donefunc)(struct scsi_cmnd *)); | 209 | void (*donefunc)(struct scsi_cmnd *)); |
212 | 210 | ||
213 | int isci_bus_reset_handler(struct scsi_cmnd *cmd); | ||
214 | |||
215 | /** | 211 | /** |
216 | * enum isci_completion_selection - This enum defines the possible actions to | 212 | * enum isci_completion_selection - This enum defines the possible actions to |
217 | * take with respect to a given request's notification back to libsas. | 213 | * take with respect to a given request's notification back to libsas. |
@@ -321,40 +317,4 @@ isci_task_set_completion_status( | |||
321 | return task_notification_selection; | 317 | return task_notification_selection; |
322 | 318 | ||
323 | } | 319 | } |
324 | /** | ||
325 | * isci_execpath_callback() - This function is called from the task | ||
326 | * execute path when the task needs to callback libsas about the submit-time | ||
327 | * task failure. The callback occurs either through the task's done function | ||
328 | * or through sas_task_abort. In the case of regular non-discovery SATA/STP I/O | ||
329 | * requests, libsas takes the host lock before calling execute task. Therefore | ||
330 | * in this situation the host lock must be managed before calling the func. | ||
331 | * | ||
332 | * @ihost: This parameter is the controller to which the I/O request was sent. | ||
333 | * @task: This parameter is the I/O request. | ||
334 | * @func: This parameter is the function to call in the correct context. | ||
335 | * @status: This parameter is the status code for the completed task. | ||
336 | * | ||
337 | */ | ||
338 | static inline void isci_execpath_callback(struct isci_host *ihost, | ||
339 | struct sas_task *task, | ||
340 | void (*func)(struct sas_task *)) | ||
341 | { | ||
342 | struct domain_device *dev = task->dev; | ||
343 | |||
344 | if (dev_is_sata(dev) && task->uldd_task) { | ||
345 | unsigned long flags; | ||
346 | |||
347 | /* Since we are still in the submit path, and since | ||
348 | * libsas takes the host lock on behalf of SATA | ||
349 | * devices before I/O starts (in the non-discovery case), | ||
350 | * we need to unlock before we can call the callback function. | ||
351 | */ | ||
352 | raw_local_irq_save(flags); | ||
353 | spin_unlock(dev->sata_dev.ap->lock); | ||
354 | func(task); | ||
355 | spin_lock(dev->sata_dev.ap->lock); | ||
356 | raw_local_irq_restore(flags); | ||
357 | } else | ||
358 | func(task); | ||
359 | } | ||
360 | #endif /* !defined(_SCI_TASK_H_) */ | 320 | #endif /* !defined(_SCI_TASK_H_) */ |