diff options
author | Maciej Patelczyk <maciej.patelczyk@intel.com> | 2011-04-28 18:06:31 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 07:00:38 -0400 |
commit | 890cae9b8a7defd87feb1ec77a2affd25bd59cce (patch) | |
tree | 245b896a777355216c49f9cb5b6a97c1764d7730 /drivers | |
parent | af23e85737253624cde84704008be40355ff6922 (diff) |
isci: Removed sci_base_object from scic_sds_request.
The 'struct sci_base_object' was removed from the struct
scic_sds_request and was replaced by a pointer to
struct isci_request.
Signed-off-by: Maciej Patelczyk <maciej.patelczyk@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/isci/core/sci_util.c | 5 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_request.c | 42 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_request.h | 6 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_smp_request.c | 6 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_ssp_request.c | 4 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_stp_request.c | 30 | ||||
-rw-r--r-- | drivers/scsi/isci/request.c | 4 | ||||
-rw-r--r-- | drivers/scsi/isci/stp_remote_device.c | 6 | ||||
-rw-r--r-- | drivers/scsi/isci/task.c | 7 |
9 files changed, 48 insertions, 62 deletions
diff --git a/drivers/scsi/isci/core/sci_util.c b/drivers/scsi/isci/core/sci_util.c index cb3e9f73828d..ebf0ed919a9f 100644 --- a/drivers/scsi/isci/core/sci_util.c +++ b/drivers/scsi/isci/core/sci_util.c | |||
@@ -72,7 +72,7 @@ void scic_word_copy_with_swap( | |||
72 | 72 | ||
73 | void *scic_request_get_virt_addr(struct scic_sds_request *sci_req, dma_addr_t phys_addr) | 73 | void *scic_request_get_virt_addr(struct scic_sds_request *sci_req, dma_addr_t phys_addr) |
74 | { | 74 | { |
75 | struct isci_request *ireq = sci_object_get_association(sci_req); | 75 | struct isci_request *ireq = sci_req->ireq; |
76 | dma_addr_t offset; | 76 | dma_addr_t offset; |
77 | 77 | ||
78 | BUG_ON(phys_addr < ireq->request_daddr); | 78 | BUG_ON(phys_addr < ireq->request_daddr); |
@@ -87,8 +87,7 @@ void *scic_request_get_virt_addr(struct scic_sds_request *sci_req, dma_addr_t ph | |||
87 | dma_addr_t scic_io_request_get_dma_addr(struct scic_sds_request *sds_request, | 87 | dma_addr_t scic_io_request_get_dma_addr(struct scic_sds_request *sds_request, |
88 | void *virt_addr) | 88 | void *virt_addr) |
89 | { | 89 | { |
90 | struct isci_request *isci_request = | 90 | struct isci_request *isci_request = sds_request->ireq; |
91 | (struct isci_request *)sci_object_get_association(sds_request); | ||
92 | 91 | ||
93 | char *requested_addr = (char *)virt_addr; | 92 | char *requested_addr = (char *)virt_addr; |
94 | char *base_addr = (char *)isci_request; | 93 | char *base_addr = (char *)isci_request; |
diff --git a/drivers/scsi/isci/core/scic_sds_request.c b/drivers/scsi/isci/core/scic_sds_request.c index a438ea22315a..fba642881092 100644 --- a/drivers/scsi/isci/core/scic_sds_request.c +++ b/drivers/scsi/isci/core/scic_sds_request.c | |||
@@ -253,8 +253,7 @@ static struct scu_sgl_element_pair *scic_sds_request_get_sgl_element_pair( | |||
253 | */ | 253 | */ |
254 | void scic_sds_request_build_sgl(struct scic_sds_request *sds_request) | 254 | void scic_sds_request_build_sgl(struct scic_sds_request *sds_request) |
255 | { | 255 | { |
256 | struct isci_request *isci_request = | 256 | struct isci_request *isci_request = sds_request->ireq; |
257 | (struct isci_request *)sci_object_get_association(sds_request); | ||
258 | struct isci_host *isci_host = isci_request->isci_host; | 257 | struct isci_host *isci_host = isci_request->isci_host; |
259 | struct sas_task *task = isci_request_access_task(isci_request); | 258 | struct sas_task *task = isci_request_access_task(isci_request); |
260 | struct scatterlist *sg = NULL; | 259 | struct scatterlist *sg = NULL; |
@@ -359,8 +358,7 @@ static void scic_sds_io_request_build_ssp_command_iu( | |||
359 | struct sci_ssp_command_iu *command_frame; | 358 | struct sci_ssp_command_iu *command_frame; |
360 | u32 cdb_length; | 359 | u32 cdb_length; |
361 | u32 *cdb_buffer; | 360 | u32 *cdb_buffer; |
362 | struct isci_request *isci_request = | 361 | struct isci_request *isci_request = sds_request->ireq; |
363 | (struct isci_request *)sci_object_get_association(sds_request); | ||
364 | 362 | ||
365 | command_frame = | 363 | command_frame = |
366 | (struct sci_ssp_command_iu *)sds_request->command_buffer; | 364 | (struct sci_ssp_command_iu *)sds_request->command_buffer; |
@@ -403,8 +401,7 @@ static void scic_sds_task_request_build_ssp_task_iu( | |||
403 | struct scic_sds_request *sds_request) | 401 | struct scic_sds_request *sds_request) |
404 | { | 402 | { |
405 | struct sci_ssp_task_iu *command_frame; | 403 | struct sci_ssp_task_iu *command_frame; |
406 | struct isci_request *isci_request = | 404 | struct isci_request *isci_request = sds_request->ireq; |
407 | (struct isci_request *)sci_object_get_association(sds_request); | ||
408 | 405 | ||
409 | command_frame = | 406 | command_frame = |
410 | (struct sci_ssp_task_iu *)sds_request->command_buffer; | 407 | (struct sci_ssp_task_iu *)sds_request->command_buffer; |
@@ -700,8 +697,7 @@ u32 scic_io_request_get_object_size(void) | |||
700 | enum sci_status scic_io_request_construct_basic_ssp( | 697 | enum sci_status scic_io_request_construct_basic_ssp( |
701 | struct scic_sds_request *sci_req) | 698 | struct scic_sds_request *sci_req) |
702 | { | 699 | { |
703 | struct isci_request *isci_request = | 700 | struct isci_request *isci_request = sci_req->ireq; |
704 | (struct isci_request *)sci_object_get_association(sci_req); | ||
705 | 701 | ||
706 | sci_req->protocol = SCIC_SSP_PROTOCOL; | 702 | sci_req->protocol = SCIC_SSP_PROTOCOL; |
707 | 703 | ||
@@ -744,8 +740,7 @@ enum sci_status scic_io_request_construct_basic_sata( | |||
744 | u32 len; | 740 | u32 len; |
745 | enum dma_data_direction dir; | 741 | enum dma_data_direction dir; |
746 | bool copy = false; | 742 | bool copy = false; |
747 | struct isci_request *isci_request = | 743 | struct isci_request *isci_request = sci_req->ireq; |
748 | (struct isci_request *)sci_object_get_association(sci_req); | ||
749 | struct sas_task *task = isci_request_access_task(isci_request); | 744 | struct sas_task *task = isci_request_access_task(isci_request); |
750 | 745 | ||
751 | stp_req = container_of(sci_req, typeof(*stp_req), parent); | 746 | stp_req = container_of(sci_req, typeof(*stp_req), parent); |
@@ -772,8 +767,7 @@ enum sci_status scic_task_request_construct_sata( | |||
772 | { | 767 | { |
773 | enum sci_status status; | 768 | enum sci_status status; |
774 | u8 sat_protocol; | 769 | u8 sat_protocol; |
775 | struct isci_request *isci_request = | 770 | struct isci_request *isci_request = sci_req->ireq; |
776 | (struct isci_request *)sci_object_get_association(sci_req); | ||
777 | 771 | ||
778 | sat_protocol = isci_sata_get_sat_protocol(isci_request); | 772 | sat_protocol = isci_sata_get_sat_protocol(isci_request); |
779 | 773 | ||
@@ -1002,8 +996,7 @@ void scic_sds_io_request_copy_response(struct scic_sds_request *sds_request) | |||
1002 | u32 user_response_length; | 996 | u32 user_response_length; |
1003 | u32 core_response_length; | 997 | u32 core_response_length; |
1004 | struct sci_ssp_response_iu *ssp_response; | 998 | struct sci_ssp_response_iu *ssp_response; |
1005 | struct isci_request *isci_request = | 999 | struct isci_request *isci_request = sds_request->ireq; |
1006 | (struct isci_request *)sci_object_get_association(sds_request); | ||
1007 | 1000 | ||
1008 | ssp_response = | 1001 | ssp_response = |
1009 | (struct sci_ssp_response_iu *)sds_request->response_buffer; | 1002 | (struct sci_ssp_response_iu *)sds_request->response_buffer; |
@@ -1523,7 +1516,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_request_state_han | |||
1523 | */ | 1516 | */ |
1524 | static void scic_sds_request_initial_state_enter(void *object) | 1517 | static void scic_sds_request_initial_state_enter(void *object) |
1525 | { | 1518 | { |
1526 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1519 | struct scic_sds_request *sci_req = object; |
1527 | 1520 | ||
1528 | SET_STATE_HANDLER( | 1521 | SET_STATE_HANDLER( |
1529 | sci_req, | 1522 | sci_req, |
@@ -1542,7 +1535,7 @@ static void scic_sds_request_initial_state_enter(void *object) | |||
1542 | */ | 1535 | */ |
1543 | static void scic_sds_request_constructed_state_enter(void *object) | 1536 | static void scic_sds_request_constructed_state_enter(void *object) |
1544 | { | 1537 | { |
1545 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1538 | struct scic_sds_request *sci_req = object; |
1546 | 1539 | ||
1547 | SET_STATE_HANDLER( | 1540 | SET_STATE_HANDLER( |
1548 | sci_req, | 1541 | sci_req, |
@@ -1562,7 +1555,7 @@ static void scic_sds_request_constructed_state_enter(void *object) | |||
1562 | */ | 1555 | */ |
1563 | static void scic_sds_request_started_state_enter(void *object) | 1556 | static void scic_sds_request_started_state_enter(void *object) |
1564 | { | 1557 | { |
1565 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1558 | struct scic_sds_request *sci_req = object; |
1566 | 1559 | ||
1567 | SET_STATE_HANDLER( | 1560 | SET_STATE_HANDLER( |
1568 | sci_req, | 1561 | sci_req, |
@@ -1589,7 +1582,7 @@ static void scic_sds_request_started_state_enter(void *object) | |||
1589 | */ | 1582 | */ |
1590 | static void scic_sds_request_started_state_exit(void *object) | 1583 | static void scic_sds_request_started_state_exit(void *object) |
1591 | { | 1584 | { |
1592 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1585 | struct scic_sds_request *sci_req = object; |
1593 | 1586 | ||
1594 | if (sci_req->has_started_substate_machine == true) | 1587 | if (sci_req->has_started_substate_machine == true) |
1595 | sci_base_state_machine_stop(&sci_req->started_substate_machine); | 1588 | sci_base_state_machine_stop(&sci_req->started_substate_machine); |
@@ -1609,11 +1602,11 @@ static void scic_sds_request_started_state_exit(void *object) | |||
1609 | */ | 1602 | */ |
1610 | static void scic_sds_request_completed_state_enter(void *object) | 1603 | static void scic_sds_request_completed_state_enter(void *object) |
1611 | { | 1604 | { |
1612 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1605 | struct scic_sds_request *sci_req = object; |
1613 | struct scic_sds_controller *scic = | 1606 | struct scic_sds_controller *scic = |
1614 | scic_sds_request_get_controller(sci_req); | 1607 | scic_sds_request_get_controller(sci_req); |
1615 | struct isci_host *ihost = scic->ihost; | 1608 | struct isci_host *ihost = scic->ihost; |
1616 | struct isci_request *ireq = sci_object_get_association(sci_req); | 1609 | struct isci_request *ireq = sci_req->ireq; |
1617 | 1610 | ||
1618 | SET_STATE_HANDLER(sci_req, | 1611 | SET_STATE_HANDLER(sci_req, |
1619 | scic_sds_request_state_handler_table, | 1612 | scic_sds_request_state_handler_table, |
@@ -1639,7 +1632,7 @@ static void scic_sds_request_completed_state_enter(void *object) | |||
1639 | */ | 1632 | */ |
1640 | static void scic_sds_request_aborting_state_enter(void *object) | 1633 | static void scic_sds_request_aborting_state_enter(void *object) |
1641 | { | 1634 | { |
1642 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1635 | struct scic_sds_request *sci_req = object; |
1643 | 1636 | ||
1644 | /* Setting the abort bit in the Task Context is required by the silicon. */ | 1637 | /* Setting the abort bit in the Task Context is required by the silicon. */ |
1645 | sci_req->task_context_buffer->abort = 1; | 1638 | sci_req->task_context_buffer->abort = 1; |
@@ -1662,7 +1655,7 @@ static void scic_sds_request_aborting_state_enter(void *object) | |||
1662 | */ | 1655 | */ |
1663 | static void scic_sds_request_final_state_enter(void *object) | 1656 | static void scic_sds_request_final_state_enter(void *object) |
1664 | { | 1657 | { |
1665 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1658 | struct scic_sds_request *sci_req = object; |
1666 | 1659 | ||
1667 | SET_STATE_HANDLER( | 1660 | SET_STATE_HANDLER( |
1668 | sci_req, | 1661 | sci_req, |
@@ -1699,8 +1692,7 @@ static void scic_sds_general_request_construct(struct scic_sds_controller *scic, | |||
1699 | void *user_io_request_object, | 1692 | void *user_io_request_object, |
1700 | struct scic_sds_request *sci_req) | 1693 | struct scic_sds_request *sci_req) |
1701 | { | 1694 | { |
1702 | sci_req->parent.private = NULL; | 1695 | sci_base_state_machine_construct(&sci_req->state_machine, sci_req, |
1703 | sci_base_state_machine_construct(&sci_req->state_machine, &sci_req->parent, | ||
1704 | scic_sds_request_state_table, SCI_BASE_REQUEST_STATE_INITIAL); | 1696 | scic_sds_request_state_table, SCI_BASE_REQUEST_STATE_INITIAL); |
1705 | sci_base_state_machine_start(&sci_req->state_machine); | 1697 | sci_base_state_machine_start(&sci_req->state_machine); |
1706 | 1698 | ||
@@ -1790,7 +1782,7 @@ enum sci_status scic_task_request_construct(struct scic_sds_controller *scic, | |||
1790 | /* Construct the started sub-state machine. */ | 1782 | /* Construct the started sub-state machine. */ |
1791 | sci_base_state_machine_construct( | 1783 | sci_base_state_machine_construct( |
1792 | &sci_req->started_substate_machine, | 1784 | &sci_req->started_substate_machine, |
1793 | &sci_req->parent, | 1785 | sci_req, |
1794 | scic_sds_io_request_started_task_mgmt_substate_table, | 1786 | scic_sds_io_request_started_task_mgmt_substate_table, |
1795 | SCIC_SDS_IO_REQUEST_STARTED_TASK_MGMT_SUBSTATE_AWAIT_TC_COMPLETION | 1787 | SCIC_SDS_IO_REQUEST_STARTED_TASK_MGMT_SUBSTATE_AWAIT_TC_COMPLETION |
1796 | ); | 1788 | ); |
diff --git a/drivers/scsi/isci/core/scic_sds_request.h b/drivers/scsi/isci/core/scic_sds_request.h index 0bb1da81ce85..11d5a3ea9da3 100644 --- a/drivers/scsi/isci/core/scic_sds_request.h +++ b/drivers/scsi/isci/core/scic_sds_request.h | |||
@@ -118,6 +118,7 @@ enum scic_sds_smp_request_started_substates { | |||
118 | SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_TC_COMPLETION, | 118 | SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_TC_COMPLETION, |
119 | }; | 119 | }; |
120 | 120 | ||
121 | struct isci_request; | ||
121 | /** | 122 | /** |
122 | * struct scic_sds_request - This structure contains or references all of | 123 | * struct scic_sds_request - This structure contains or references all of |
123 | * the data necessary to process a task management or normal IO request. | 124 | * the data necessary to process a task management or normal IO request. |
@@ -126,10 +127,9 @@ enum scic_sds_smp_request_started_substates { | |||
126 | */ | 127 | */ |
127 | struct scic_sds_request { | 128 | struct scic_sds_request { |
128 | /** | 129 | /** |
129 | * The field specifies that the parent object for the base request is the | 130 | * The field specifies that the peer object for the request object. |
130 | * base object itself. | ||
131 | */ | 131 | */ |
132 | struct sci_base_object parent; | 132 | struct isci_request *ireq; |
133 | 133 | ||
134 | /** | 134 | /** |
135 | * This field contains the information for the base request state machine. | 135 | * This field contains the information for the base request state machine. |
diff --git a/drivers/scsi/isci/core/scic_sds_smp_request.c b/drivers/scsi/isci/core/scic_sds_smp_request.c index 429973759776..ba29192f7fd0 100644 --- a/drivers/scsi/isci/core/scic_sds_smp_request.c +++ b/drivers/scsi/isci/core/scic_sds_smp_request.c | |||
@@ -525,7 +525,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_smp_request_start | |||
525 | static void scic_sds_smp_request_started_await_response_substate_enter( | 525 | static void scic_sds_smp_request_started_await_response_substate_enter( |
526 | void *object) | 526 | void *object) |
527 | { | 527 | { |
528 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 528 | struct scic_sds_request *sci_req = object; |
529 | 529 | ||
530 | SET_STATE_HANDLER( | 530 | SET_STATE_HANDLER( |
531 | sci_req, | 531 | sci_req, |
@@ -546,7 +546,7 @@ static void scic_sds_smp_request_started_await_response_substate_enter( | |||
546 | static void scic_sds_smp_request_started_await_tc_completion_substate_enter( | 546 | static void scic_sds_smp_request_started_await_tc_completion_substate_enter( |
547 | void *object) | 547 | void *object) |
548 | { | 548 | { |
549 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 549 | struct scic_sds_request *sci_req = object; |
550 | 550 | ||
551 | SET_STATE_HANDLER( | 551 | SET_STATE_HANDLER( |
552 | sci_req, | 552 | sci_req, |
@@ -590,7 +590,7 @@ enum sci_status scic_io_request_construct_smp(struct scic_sds_request *sci_req) | |||
590 | /* Construct the started sub-state machine. */ | 590 | /* Construct the started sub-state machine. */ |
591 | sci_base_state_machine_construct( | 591 | sci_base_state_machine_construct( |
592 | &sci_req->started_substate_machine, | 592 | &sci_req->started_substate_machine, |
593 | &sci_req->parent, | 593 | sci_req, |
594 | scic_sds_smp_request_started_substate_table, | 594 | scic_sds_smp_request_started_substate_table, |
595 | SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_RESPONSE | 595 | SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_RESPONSE |
596 | ); | 596 | ); |
diff --git a/drivers/scsi/isci/core/scic_sds_ssp_request.c b/drivers/scsi/isci/core/scic_sds_ssp_request.c index a7297abdb1bd..7183ae331d2e 100644 --- a/drivers/scsi/isci/core/scic_sds_ssp_request.c +++ b/drivers/scsi/isci/core/scic_sds_ssp_request.c | |||
@@ -202,7 +202,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_ssp_task_request_ | |||
202 | static void scic_sds_io_request_started_task_mgmt_await_tc_completion_substate_enter( | 202 | static void scic_sds_io_request_started_task_mgmt_await_tc_completion_substate_enter( |
203 | void *object) | 203 | void *object) |
204 | { | 204 | { |
205 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 205 | struct scic_sds_request *sci_req = object; |
206 | 206 | ||
207 | SET_STATE_HANDLER( | 207 | SET_STATE_HANDLER( |
208 | sci_req, | 208 | sci_req, |
@@ -223,7 +223,7 @@ static void scic_sds_io_request_started_task_mgmt_await_tc_completion_substate_e | |||
223 | static void scic_sds_io_request_started_task_mgmt_await_task_response_substate_enter( | 223 | static void scic_sds_io_request_started_task_mgmt_await_task_response_substate_enter( |
224 | void *object) | 224 | void *object) |
225 | { | 225 | { |
226 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 226 | struct scic_sds_request *sci_req = object; |
227 | 227 | ||
228 | SET_STATE_HANDLER( | 228 | SET_STATE_HANDLER( |
229 | sci_req, | 229 | sci_req, |
diff --git a/drivers/scsi/isci/core/scic_sds_stp_request.c b/drivers/scsi/isci/core/scic_sds_stp_request.c index 2c6b62ee5fe8..ec215463092a 100644 --- a/drivers/scsi/isci/core/scic_sds_stp_request.c +++ b/drivers/scsi/isci/core/scic_sds_stp_request.c | |||
@@ -566,7 +566,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_stp_request_start | |||
566 | static void scic_sds_stp_request_started_non_data_await_h2d_completion_enter( | 566 | static void scic_sds_stp_request_started_non_data_await_h2d_completion_enter( |
567 | void *object) | 567 | void *object) |
568 | { | 568 | { |
569 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 569 | struct scic_sds_request *sci_req = object; |
570 | 570 | ||
571 | SET_STATE_HANDLER( | 571 | SET_STATE_HANDLER( |
572 | sci_req, | 572 | sci_req, |
@@ -581,7 +581,7 @@ static void scic_sds_stp_request_started_non_data_await_h2d_completion_enter( | |||
581 | 581 | ||
582 | static void scic_sds_stp_request_started_non_data_await_d2h_enter(void *object) | 582 | static void scic_sds_stp_request_started_non_data_await_d2h_enter(void *object) |
583 | { | 583 | { |
584 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 584 | struct scic_sds_request *sci_req = object; |
585 | 585 | ||
586 | SET_STATE_HANDLER( | 586 | SET_STATE_HANDLER( |
587 | sci_req, | 587 | sci_req, |
@@ -611,7 +611,7 @@ enum sci_status scic_sds_stp_non_data_request_construct(struct scic_sds_request | |||
611 | scu_stp_raw_request_construct_task_context(stp_req, sci_req->task_context_buffer); | 611 | scu_stp_raw_request_construct_task_context(stp_req, sci_req->task_context_buffer); |
612 | 612 | ||
613 | sci_base_state_machine_construct(&sci_req->started_substate_machine, | 613 | sci_base_state_machine_construct(&sci_req->started_substate_machine, |
614 | &sci_req->parent, | 614 | sci_req, |
615 | scic_sds_stp_request_started_non_data_substate_table, | 615 | scic_sds_stp_request_started_non_data_substate_table, |
616 | SCIC_SDS_STP_REQUEST_STARTED_NON_DATA_AWAIT_H2D_COMPLETION_SUBSTATE); | 616 | SCIC_SDS_STP_REQUEST_STARTED_NON_DATA_AWAIT_H2D_COMPLETION_SUBSTATE); |
617 | 617 | ||
@@ -1215,7 +1215,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_stp_request_start | |||
1215 | static void scic_sds_stp_request_started_pio_await_h2d_completion_enter( | 1215 | static void scic_sds_stp_request_started_pio_await_h2d_completion_enter( |
1216 | void *object) | 1216 | void *object) |
1217 | { | 1217 | { |
1218 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1218 | struct scic_sds_request *sci_req = object; |
1219 | 1219 | ||
1220 | SET_STATE_HANDLER( | 1220 | SET_STATE_HANDLER( |
1221 | sci_req, | 1221 | sci_req, |
@@ -1229,7 +1229,7 @@ static void scic_sds_stp_request_started_pio_await_h2d_completion_enter( | |||
1229 | 1229 | ||
1230 | static void scic_sds_stp_request_started_pio_await_frame_enter(void *object) | 1230 | static void scic_sds_stp_request_started_pio_await_frame_enter(void *object) |
1231 | { | 1231 | { |
1232 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1232 | struct scic_sds_request *sci_req = object; |
1233 | 1233 | ||
1234 | SET_STATE_HANDLER( | 1234 | SET_STATE_HANDLER( |
1235 | sci_req, | 1235 | sci_req, |
@@ -1241,7 +1241,7 @@ static void scic_sds_stp_request_started_pio_await_frame_enter(void *object) | |||
1241 | static void scic_sds_stp_request_started_pio_data_in_await_data_enter( | 1241 | static void scic_sds_stp_request_started_pio_data_in_await_data_enter( |
1242 | void *object) | 1242 | void *object) |
1243 | { | 1243 | { |
1244 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1244 | struct scic_sds_request *sci_req = object; |
1245 | 1245 | ||
1246 | SET_STATE_HANDLER( | 1246 | SET_STATE_HANDLER( |
1247 | sci_req, | 1247 | sci_req, |
@@ -1253,7 +1253,7 @@ static void scic_sds_stp_request_started_pio_data_in_await_data_enter( | |||
1253 | static void scic_sds_stp_request_started_pio_data_out_transmit_data_enter( | 1253 | static void scic_sds_stp_request_started_pio_data_out_transmit_data_enter( |
1254 | void *object) | 1254 | void *object) |
1255 | { | 1255 | { |
1256 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1256 | struct scic_sds_request *sci_req = object; |
1257 | 1257 | ||
1258 | SET_STATE_HANDLER( | 1258 | SET_STATE_HANDLER( |
1259 | sci_req, | 1259 | sci_req, |
@@ -1311,7 +1311,7 @@ enum sci_status scic_sds_stp_pio_request_construct(struct scic_sds_request *sci_ | |||
1311 | } | 1311 | } |
1312 | 1312 | ||
1313 | sci_base_state_machine_construct(&sci_req->started_substate_machine, | 1313 | sci_base_state_machine_construct(&sci_req->started_substate_machine, |
1314 | &sci_req->parent, | 1314 | sci_req, |
1315 | scic_sds_stp_request_started_pio_substate_table, | 1315 | scic_sds_stp_request_started_pio_substate_table, |
1316 | SCIC_SDS_STP_REQUEST_STARTED_PIO_AWAIT_H2D_COMPLETION_SUBSTATE); | 1316 | SCIC_SDS_STP_REQUEST_STARTED_PIO_AWAIT_H2D_COMPLETION_SUBSTATE); |
1317 | 1317 | ||
@@ -1485,7 +1485,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_stp_request_start | |||
1485 | static void scic_sds_stp_request_started_udma_await_tc_completion_enter( | 1485 | static void scic_sds_stp_request_started_udma_await_tc_completion_enter( |
1486 | void *object) | 1486 | void *object) |
1487 | { | 1487 | { |
1488 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1488 | struct scic_sds_request *sci_req = object; |
1489 | 1489 | ||
1490 | SET_STATE_HANDLER( | 1490 | SET_STATE_HANDLER( |
1491 | sci_req, | 1491 | sci_req, |
@@ -1504,7 +1504,7 @@ static void scic_sds_stp_request_started_udma_await_tc_completion_enter( | |||
1504 | static void scic_sds_stp_request_started_udma_await_d2h_reg_fis_enter( | 1504 | static void scic_sds_stp_request_started_udma_await_d2h_reg_fis_enter( |
1505 | void *object) | 1505 | void *object) |
1506 | { | 1506 | { |
1507 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1507 | struct scic_sds_request *sci_req = object; |
1508 | 1508 | ||
1509 | SET_STATE_HANDLER( | 1509 | SET_STATE_HANDLER( |
1510 | sci_req, | 1510 | sci_req, |
@@ -1535,7 +1535,7 @@ enum sci_status scic_sds_stp_udma_request_construct(struct scic_sds_request *sci | |||
1535 | 1535 | ||
1536 | sci_base_state_machine_construct( | 1536 | sci_base_state_machine_construct( |
1537 | &sci_req->started_substate_machine, | 1537 | &sci_req->started_substate_machine, |
1538 | &sci_req->parent, | 1538 | sci_req, |
1539 | scic_sds_stp_request_started_udma_substate_table, | 1539 | scic_sds_stp_request_started_udma_substate_table, |
1540 | SCIC_SDS_STP_REQUEST_STARTED_UDMA_AWAIT_TC_COMPLETION_SUBSTATE | 1540 | SCIC_SDS_STP_REQUEST_STARTED_UDMA_AWAIT_TC_COMPLETION_SUBSTATE |
1541 | ); | 1541 | ); |
@@ -1732,7 +1732,7 @@ static const struct scic_sds_io_request_state_handler scic_sds_stp_request_start | |||
1732 | static void scic_sds_stp_request_started_soft_reset_await_h2d_asserted_completion_enter( | 1732 | static void scic_sds_stp_request_started_soft_reset_await_h2d_asserted_completion_enter( |
1733 | void *object) | 1733 | void *object) |
1734 | { | 1734 | { |
1735 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1735 | struct scic_sds_request *sci_req = object; |
1736 | 1736 | ||
1737 | SET_STATE_HANDLER( | 1737 | SET_STATE_HANDLER( |
1738 | sci_req, | 1738 | sci_req, |
@@ -1748,7 +1748,7 @@ static void scic_sds_stp_request_started_soft_reset_await_h2d_asserted_completio | |||
1748 | static void scic_sds_stp_request_started_soft_reset_await_h2d_diagnostic_completion_enter( | 1748 | static void scic_sds_stp_request_started_soft_reset_await_h2d_diagnostic_completion_enter( |
1749 | void *object) | 1749 | void *object) |
1750 | { | 1750 | { |
1751 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1751 | struct scic_sds_request *sci_req = object; |
1752 | struct scu_task_context *task_context; | 1752 | struct scu_task_context *task_context; |
1753 | struct sata_fis_reg_h2d *h2d_fis; | 1753 | struct sata_fis_reg_h2d *h2d_fis; |
1754 | enum sci_status status; | 1754 | enum sci_status status; |
@@ -1775,7 +1775,7 @@ static void scic_sds_stp_request_started_soft_reset_await_h2d_diagnostic_complet | |||
1775 | static void scic_sds_stp_request_started_soft_reset_await_d2h_response_enter( | 1775 | static void scic_sds_stp_request_started_soft_reset_await_d2h_response_enter( |
1776 | void *object) | 1776 | void *object) |
1777 | { | 1777 | { |
1778 | struct scic_sds_request *sci_req = (struct scic_sds_request *)object; | 1778 | struct scic_sds_request *sci_req = object; |
1779 | 1779 | ||
1780 | SET_STATE_HANDLER( | 1780 | SET_STATE_HANDLER( |
1781 | sci_req, | 1781 | sci_req, |
@@ -1806,7 +1806,7 @@ enum sci_status scic_sds_stp_soft_reset_request_construct(struct scic_sds_reques | |||
1806 | scu_stp_raw_request_construct_task_context(stp_req, sci_req->task_context_buffer); | 1806 | scu_stp_raw_request_construct_task_context(stp_req, sci_req->task_context_buffer); |
1807 | 1807 | ||
1808 | sci_base_state_machine_construct(&sci_req->started_substate_machine, | 1808 | sci_base_state_machine_construct(&sci_req->started_substate_machine, |
1809 | &sci_req->parent, | 1809 | sci_req, |
1810 | scic_sds_stp_request_started_soft_reset_substate_table, | 1810 | scic_sds_stp_request_started_soft_reset_substate_table, |
1811 | SCIC_SDS_STP_REQUEST_STARTED_SOFT_RESET_AWAIT_H2D_ASSERTED_COMPLETION_SUBSTATE); | 1811 | SCIC_SDS_STP_REQUEST_STARTED_SOFT_RESET_AWAIT_H2D_ASSERTED_COMPLETION_SUBSTATE); |
1812 | 1812 | ||
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c index 281a556f5eeb..c45e78e41f27 100644 --- a/drivers/scsi/isci/request.c +++ b/drivers/scsi/isci/request.c | |||
@@ -61,7 +61,7 @@ | |||
61 | #include "request.h" | 61 | #include "request.h" |
62 | #include "sata.h" | 62 | #include "sata.h" |
63 | #include "scu_completion_codes.h" | 63 | #include "scu_completion_codes.h" |
64 | 64 | #include "core/scic_sds_request.h" | |
65 | 65 | ||
66 | static enum sci_status isci_request_ssp_request_construct( | 66 | static enum sci_status isci_request_ssp_request_construct( |
67 | struct isci_request *request) | 67 | struct isci_request *request) |
@@ -225,7 +225,7 @@ static enum sci_status isci_io_request_build( | |||
225 | return SCI_FAILURE; | 225 | return SCI_FAILURE; |
226 | } | 226 | } |
227 | 227 | ||
228 | sci_object_set_association(request->sci_request_handle, request); | 228 | request->sci_request_handle->ireq = request; |
229 | 229 | ||
230 | switch (task->task_proto) { | 230 | switch (task->task_proto) { |
231 | case SAS_PROTOCOL_SMP: | 231 | case SAS_PROTOCOL_SMP: |
diff --git a/drivers/scsi/isci/stp_remote_device.c b/drivers/scsi/isci/stp_remote_device.c index d86976469428..1853552bc252 100644 --- a/drivers/scsi/isci/stp_remote_device.c +++ b/drivers/scsi/isci/stp_remote_device.c | |||
@@ -209,8 +209,7 @@ static enum sci_status scic_sds_stp_remote_device_ready_idle_substate_start_io_h | |||
209 | struct scic_sds_request *request) | 209 | struct scic_sds_request *request) |
210 | { | 210 | { |
211 | enum sci_status status; | 211 | enum sci_status status; |
212 | struct isci_request *isci_request = | 212 | struct isci_request *isci_request = request->ireq; |
213 | (struct isci_request *)sci_object_get_association(request); | ||
214 | 213 | ||
215 | 214 | ||
216 | /* Will the port allow the io request to start? */ | 215 | /* Will the port allow the io request to start? */ |
@@ -280,8 +279,7 @@ static enum sci_status scic_sds_stp_remote_device_ready_ncq_substate_start_io_ha | |||
280 | struct scic_sds_request *request) | 279 | struct scic_sds_request *request) |
281 | { | 280 | { |
282 | enum sci_status status; | 281 | enum sci_status status; |
283 | struct isci_request *isci_request = | 282 | struct isci_request *isci_request = request->ireq; |
284 | (struct isci_request *)sci_object_get_association(request); | ||
285 | 283 | ||
286 | if (isci_sata_get_sat_protocol(isci_request) == SAT_PROTOCOL_FPDMA) { | 284 | if (isci_sata_get_sat_protocol(isci_request) == SAT_PROTOCOL_FPDMA) { |
287 | status = sci_dev->owning_port->state_handlers->start_io_handler( | 285 | status = sci_dev->owning_port->state_handlers->start_io_handler( |
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c index c0ed1b28f3e5..95f386723212 100644 --- a/drivers/scsi/isci/task.c +++ b/drivers/scsi/isci/task.c | |||
@@ -63,7 +63,7 @@ | |||
63 | #include "request.h" | 63 | #include "request.h" |
64 | #include "sata.h" | 64 | #include "sata.h" |
65 | #include "task.h" | 65 | #include "task.h" |
66 | 66 | #include "core/scic_sds_request.h" | |
67 | /** | 67 | /** |
68 | * isci_task_refuse() - complete the request to the upper layer driver in | 68 | * isci_task_refuse() - complete the request to the upper layer driver in |
69 | * the case where an I/O needs to be completed back in the submit path. | 69 | * the case where an I/O needs to be completed back in the submit path. |
@@ -314,10 +314,7 @@ static enum sci_status isci_task_request_build( | |||
314 | goto errout; | 314 | goto errout; |
315 | } | 315 | } |
316 | 316 | ||
317 | sci_object_set_association( | 317 | request->sci_request_handle->ireq = request; |
318 | request->sci_request_handle, | ||
319 | request | ||
320 | ); | ||
321 | 318 | ||
322 | /* XXX convert to get this from task->tproto like other drivers */ | 319 | /* XXX convert to get this from task->tproto like other drivers */ |
323 | if (dev->dev_type == SAS_END_DEV) { | 320 | if (dev->dev_type == SAS_END_DEV) { |