diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-04-21 21:14:45 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 07:00:38 -0400 |
commit | 57f20f4ed6fb702339be2ef4dea9d15e6a7d0d07 (patch) | |
tree | d31db747f233d5ea790e82b64e233ee762cf2cdf /drivers/scsi/isci/remote_device.c | |
parent | 9614395ea2eed076fa8341df422582b0017d330c (diff) |
isci: unify remote_device data structures
Make it explicit that isci_remote_device and scic_sds_remote_device are
one in the same object.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/remote_device.c')
-rw-r--r-- | drivers/scsi/isci/remote_device.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c index 9301e25dff3..1553221fe4d 100644 --- a/drivers/scsi/isci/remote_device.c +++ b/drivers/scsi/isci/remote_device.c | |||
@@ -87,7 +87,7 @@ static void isci_remote_device_deconstruct(struct isci_host *ihost, struct isci_ | |||
87 | BUG(); | 87 | BUG(); |
88 | } | 88 | } |
89 | 89 | ||
90 | scic_remote_device_destruct(to_sci_dev(idev)); | 90 | scic_remote_device_destruct(&idev->sci); |
91 | idev->domain_dev->lldd_dev = NULL; | 91 | idev->domain_dev->lldd_dev = NULL; |
92 | idev->domain_dev = NULL; | 92 | idev->domain_dev = NULL; |
93 | idev->isci_port = NULL; | 93 | idev->isci_port = NULL; |
@@ -117,7 +117,7 @@ static enum sci_status isci_remote_device_construct( | |||
117 | 117 | ||
118 | /* let the core do it's common constuction. */ | 118 | /* let the core do it's common constuction. */ |
119 | scic_remote_device_construct(port->sci_port_handle, | 119 | scic_remote_device_construct(port->sci_port_handle, |
120 | to_sci_dev(isci_device)); | 120 | &isci_device->sci); |
121 | 121 | ||
122 | /* let the core do it's device specific constuction. */ | 122 | /* let the core do it's device specific constuction. */ |
123 | if (isci_device->domain_dev->parent && | 123 | if (isci_device->domain_dev->parent && |
@@ -183,11 +183,11 @@ static enum sci_status isci_remote_device_construct( | |||
183 | "%s: parent->dev_type = EDGE_DEV\n", | 183 | "%s: parent->dev_type = EDGE_DEV\n", |
184 | __func__); | 184 | __func__); |
185 | 185 | ||
186 | status = scic_remote_device_ea_construct(to_sci_dev(isci_device), | 186 | status = scic_remote_device_ea_construct(&isci_device->sci, |
187 | (struct smp_response_discover *)&discover_response); | 187 | (struct smp_response_discover *)&discover_response); |
188 | 188 | ||
189 | } else | 189 | } else |
190 | status = scic_remote_device_da_construct(to_sci_dev(isci_device)); | 190 | status = scic_remote_device_da_construct(&isci_device->sci); |
191 | 191 | ||
192 | 192 | ||
193 | if (status != SCI_SUCCESS) { | 193 | if (status != SCI_SUCCESS) { |
@@ -200,10 +200,11 @@ static enum sci_status isci_remote_device_construct( | |||
200 | return status; | 200 | return status; |
201 | } | 201 | } |
202 | 202 | ||
203 | sci_object_set_association(to_sci_dev(isci_device), isci_device); | 203 | /* XXX will be killed with sci_base_object removal */ |
204 | sci_object_set_association(&isci_device->sci, isci_device); | ||
204 | 205 | ||
205 | /* start the device. */ | 206 | /* start the device. */ |
206 | status = scic_remote_device_start(to_sci_dev(isci_device), | 207 | status = scic_remote_device_start(&isci_device->sci, |
207 | ISCI_REMOTE_DEVICE_START_TIMEOUT); | 208 | ISCI_REMOTE_DEVICE_START_TIMEOUT); |
208 | 209 | ||
209 | if (status != SCI_SUCCESS) { | 210 | if (status != SCI_SUCCESS) { |
@@ -245,7 +246,7 @@ isci_remote_device_alloc(struct isci_host *ihost, struct isci_port *iport) | |||
245 | int i; | 246 | int i; |
246 | 247 | ||
247 | for (i = 0; i < SCI_MAX_REMOTE_DEVICES; i++) { | 248 | for (i = 0; i < SCI_MAX_REMOTE_DEVICES; i++) { |
248 | idev = idev_by_id(ihost, i); | 249 | idev = &ihost->devices[i]; |
249 | if (!test_and_set_bit(IDEV_ALLOCATED, &idev->flags)) | 250 | if (!test_and_set_bit(IDEV_ALLOCATED, &idev->flags)) |
250 | break; | 251 | break; |
251 | } | 252 | } |
@@ -374,7 +375,7 @@ enum sci_status isci_remote_device_stop(struct isci_host *ihost, struct isci_rem | |||
374 | set_bit(IDEV_STOP_PENDING, &idev->flags); | 375 | set_bit(IDEV_STOP_PENDING, &idev->flags); |
375 | 376 | ||
376 | spin_lock_irqsave(&ihost->scic_lock, flags); | 377 | spin_lock_irqsave(&ihost->scic_lock, flags); |
377 | status = scic_remote_device_stop(to_sci_dev(idev), 50); | 378 | status = scic_remote_device_stop(&idev->sci, 50); |
378 | spin_unlock_irqrestore(&ihost->scic_lock, flags); | 379 | spin_unlock_irqrestore(&ihost->scic_lock, flags); |
379 | 380 | ||
380 | /* Wait for the stop complete callback. */ | 381 | /* Wait for the stop complete callback. */ |