Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 254354
b: refs/heads/master
c: 3a97eec
h: refs/heads/master
v: v3
  • Loading branch information
Dan Williams committed Jul 3, 2011
1 parent 21d2d04 commit dd288dd
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 39 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b329aff107543c3c4db26c1572405034c3baf906
refs/heads/master: 3a97eec6d7876c541950e23811efd40e0bcd04a0
33 changes: 9 additions & 24 deletions trunk/drivers/scsi/isci/remote_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ static void isci_remote_device_deconstruct(
/* Remove all related references to this device and free
* the cache object.
*/
scic_remote_device_destruct(isci_device->sci_device_handle);
scic_remote_device_destruct(to_sci_dev(isci_device));
isci_device->domain_dev->lldd_dev = NULL;
list_del(&isci_device->node);
kmem_cache_free(isci_kmem_cache, isci_device);
Expand All @@ -117,7 +117,7 @@ static enum sci_status isci_remote_device_construct(

/* let the core do it's common constuction. */
scic_remote_device_construct(port->sci_port_handle,
isci_device->sci_device_handle);
to_sci_dev(isci_device));

/* let the core do it's device specific constuction. */
if (isci_device->domain_dev->parent &&
Expand Down Expand Up @@ -183,15 +183,11 @@ static enum sci_status isci_remote_device_construct(
"%s: parent->dev_type = EDGE_DEV\n",
__func__);

status = scic_remote_device_ea_construct(
isci_device->sci_device_handle,
(struct smp_response_discover *)&discover_response
);
status = scic_remote_device_ea_construct(to_sci_dev(isci_device),
(struct smp_response_discover *)&discover_response);

} else
status = scic_remote_device_da_construct(
isci_device->sci_device_handle
);
status = scic_remote_device_da_construct(to_sci_dev(isci_device));


if (status != SCI_SUCCESS) {
Expand All @@ -204,18 +200,13 @@ static enum sci_status isci_remote_device_construct(
return status;
}

sci_object_set_association(
isci_device->sci_device_handle,
isci_device
);
sci_object_set_association(to_sci_dev(isci_device), isci_device);

BUG_ON(port->isci_host == NULL);

/* start the device. */
status = scic_remote_device_start(
isci_device->sci_device_handle,
ISCI_REMOTE_DEVICE_START_TIMEOUT
);
status = scic_remote_device_start(to_sci_dev(isci_device),
ISCI_REMOTE_DEVICE_START_TIMEOUT);

if (status != SCI_SUCCESS) {
dev_warn(&port->isci_host->pdev->dev,
Expand Down Expand Up @@ -266,7 +257,6 @@ static struct isci_remote_device *
isci_remote_device_alloc(struct isci_host *isci_host, struct isci_port *port)
{
struct isci_remote_device *isci_device;
struct scic_sds_remote_device *sci_dev;

isci_device = kmem_cache_zalloc(isci_kmem_cache, GFP_KERNEL);

Expand All @@ -275,8 +265,6 @@ isci_remote_device_alloc(struct isci_host *isci_host, struct isci_port *port)
return NULL;
}

sci_dev = (struct scic_sds_remote_device *) &isci_device[1];
isci_device->sci_device_handle = sci_dev;
INIT_LIST_HEAD(&isci_device->reqs_in_process);
INIT_LIST_HEAD(&isci_device->node);
isci_device->host_quiesce = false;
Expand Down Expand Up @@ -441,10 +429,7 @@ enum sci_status isci_remote_device_stop(

spin_lock_irqsave(&isci_device->isci_port->isci_host->scic_lock, flags);

status = scic_remote_device_stop(
isci_device->sci_device_handle,
50
);
status = scic_remote_device_stop(to_sci_dev(isci_device), 50);

spin_unlock_irqrestore(&isci_device->isci_port->isci_host->scic_lock, flags);

Expand Down
7 changes: 6 additions & 1 deletion trunk/drivers/scsi/isci/remote_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ struct isci_host;
struct scic_sds_remote_device;

struct isci_remote_device {
struct scic_sds_remote_device *sci_device_handle;
enum isci_status status;
struct isci_port *isci_port;
struct domain_device *domain_dev;
Expand All @@ -73,6 +72,12 @@ struct isci_remote_device {
bool host_quiesce;
};

static inline struct scic_sds_remote_device *to_sci_dev(struct isci_remote_device *idev)
{
/* core data is an opaque buffer at the end of the idev */
return (struct scic_sds_remote_device *) &idev[1];
}

#define to_isci_remote_device(p) \
container_of(p, struct isci_remote_device, sci_remote_device);

Expand Down
7 changes: 3 additions & 4 deletions trunk/drivers/scsi/isci/request.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,7 @@ static enum sci_status isci_io_request_build(
struct smp_discover_response_protocols dev_protocols;
enum sci_status status = SCI_SUCCESS;
struct sas_task *task = isci_request_access_task(request);
struct scic_sds_remote_device *sci_device =
isci_device->sci_device_handle;
struct scic_sds_remote_device *sci_device = to_sci_dev(isci_device);

dev_dbg(&isci_host->pdev->dev,
"%s: isci_device = 0x%p; request = %p, "
Expand Down Expand Up @@ -408,7 +407,7 @@ int isci_request_execute(
unsigned long flags;

isci_device = isci_dev_from_domain_dev(task->dev);
sci_device = isci_device->sci_device_handle;
sci_device = to_sci_dev(isci_device);

/* do common allocation and init of request object. */
ret = isci_request_alloc_io(
Expand Down Expand Up @@ -1177,7 +1176,7 @@ void isci_request_io_request_complete(
/* complete the io request to the core. */
scic_controller_complete_io(
isci_host->core_controller,
isci_device->sci_device_handle,
to_sci_dev(isci_device),
request->sci_request_handle
);
/* NULL the request handle so it cannot be completed or
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/scsi/isci/sata.c
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ int isci_task_send_lu_reset_sata(
spin_lock_irqsave(&isci_host->scic_lock, flags);

/* Resume the device. */
scic_sds_remote_device_resume(isci_device->sci_device_handle);
scic_sds_remote_device_resume(to_sci_dev(isci_device));

spin_unlock_irqrestore(&isci_host->scic_lock, flags);

Expand Down
15 changes: 7 additions & 8 deletions trunk/drivers/scsi/isci/task.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ static enum sci_status isci_task_request_build(
"%s: isci_tmf = %p\n", __func__, isci_tmf);

isci_device = isci_tmf->device;
sci_device = isci_device->sci_device_handle;
sci_device = to_sci_dev(isci_device);

/* do common allocation and init of request object. */
status = isci_request_alloc_tmf(
Expand Down Expand Up @@ -395,7 +395,7 @@ static void isci_tmf_timeout_cb(void *tmf_request_arg)
/* Terminate the TMF transmit request. */
status = scic_controller_terminate_request(
request->isci_host->core_controller,
request->isci_device->sci_device_handle,
to_sci_dev(request->isci_device),
request->sci_request_handle
);

Expand Down Expand Up @@ -456,7 +456,7 @@ int isci_task_execute_tmf(
"%s: isci_device = %p\n",
__func__, isci_device);

sci_device = isci_device->sci_device_handle;
sci_device = to_sci_dev(isci_device);

/* Assign the pointer to the TMF's completion kernel wait structure. */
tmf->complete = &completion;
Expand Down Expand Up @@ -728,7 +728,7 @@ static void isci_terminate_request_core(
was_terminated = true;
status = scic_controller_terminate_request(
isci_host->core_controller,
isci_device->sci_device_handle,
to_sci_dev(isci_device),
isci_request->sci_request_handle
);
}
Expand Down Expand Up @@ -1469,7 +1469,7 @@ void isci_task_request_complete(

scic_controller_complete_task(
isci_host->core_controller,
isci_device->sci_device_handle,
to_sci_dev(isci_device),
request->sci_request_handle
);
/* NULL the request handle to make sure it cannot be terminated
Expand Down Expand Up @@ -1612,7 +1612,7 @@ int isci_bus_reset_handler(struct scsi_cmnd *cmd)
if (isci_host != NULL)
spin_lock_irqsave(&isci_host->scic_lock, flags);

status = scic_remote_device_reset(isci_dev->sci_device_handle);
status = scic_remote_device_reset(to_sci_dev(isci_dev));
if (status != SCI_SUCCESS) {

if (isci_host != NULL)
Expand Down Expand Up @@ -1654,8 +1654,7 @@ int isci_bus_reset_handler(struct scsi_cmnd *cmd)

if (isci_host != NULL)
spin_lock_irqsave(&isci_host->scic_lock, flags);
status
= scic_remote_device_reset_complete(isci_dev->sci_device_handle);
status = scic_remote_device_reset_complete(to_sci_dev(isci_dev));

if (isci_host != NULL)
spin_unlock_irqrestore(&isci_host->scic_lock, flags);
Expand Down

0 comments on commit dd288dd

Please sign in to comment.