diff options
Diffstat (limited to 'drivers/scsi/isci/task.c')
-rw-r--r-- | drivers/scsi/isci/task.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c index e011d668949d..c6f1ffd713a8 100644 --- a/drivers/scsi/isci/task.c +++ b/drivers/scsi/isci/task.c | |||
@@ -273,15 +273,14 @@ static enum sci_status isci_task_request_build( | |||
273 | enum sci_status status = SCI_FAILURE; | 273 | enum sci_status status = SCI_FAILURE; |
274 | struct isci_request *request = NULL; | 274 | struct isci_request *request = NULL; |
275 | struct isci_remote_device *isci_device; | 275 | struct isci_remote_device *isci_device; |
276 | /* struct sci_sas_identify_address_frame_protocols dev_protocols; */ | 276 | struct domain_device *dev; |
277 | struct smp_discover_response_protocols dev_protocols; | ||
278 | |||
279 | 277 | ||
280 | dev_dbg(&isci_host->pdev->dev, | 278 | dev_dbg(&isci_host->pdev->dev, |
281 | "%s: isci_tmf = %p\n", __func__, isci_tmf); | 279 | "%s: isci_tmf = %p\n", __func__, isci_tmf); |
282 | 280 | ||
283 | isci_device = isci_tmf->device; | 281 | isci_device = isci_tmf->device; |
284 | sci_device = &isci_device->sci; | 282 | sci_device = &isci_device->sci; |
283 | dev = isci_device->domain_dev; | ||
285 | 284 | ||
286 | /* do common allocation and init of request object. */ | 285 | /* do common allocation and init of request object. */ |
287 | status = isci_request_alloc_tmf( | 286 | status = isci_request_alloc_tmf( |
@@ -319,16 +318,8 @@ static enum sci_status isci_task_request_build( | |||
319 | request | 318 | request |
320 | ); | 319 | ); |
321 | 320 | ||
322 | scic_remote_device_get_protocols( | 321 | /* XXX convert to get this from task->tproto like other drivers */ |
323 | sci_device, | 322 | if (dev->dev_type == SAS_END_DEV) { |
324 | &dev_protocols | ||
325 | ); | ||
326 | |||
327 | /* let the core do it's protocol | ||
328 | * specific construction. | ||
329 | */ | ||
330 | if (dev_protocols.u.bits.attached_ssp_target) { | ||
331 | |||
332 | isci_tmf->proto = SAS_PROTOCOL_SSP; | 323 | isci_tmf->proto = SAS_PROTOCOL_SSP; |
333 | status = scic_task_request_construct_ssp( | 324 | status = scic_task_request_construct_ssp( |
334 | request->sci_request_handle | 325 | request->sci_request_handle |
@@ -337,8 +328,7 @@ static enum sci_status isci_task_request_build( | |||
337 | goto errout; | 328 | goto errout; |
338 | } | 329 | } |
339 | 330 | ||
340 | if (dev_protocols.u.bits.attached_stp_target) { | 331 | if (dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_STP)) { |
341 | |||
342 | isci_tmf->proto = SAS_PROTOCOL_SATA; | 332 | isci_tmf->proto = SAS_PROTOCOL_SATA; |
343 | status = isci_sata_management_task_request_build(request); | 333 | status = isci_sata_management_task_request_build(request); |
344 | 334 | ||