diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-06-08 05:50:55 +0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 15:04:51 +0400 |
commit | ac668c69709c7d927015c5cf3d9e87bf4eaaf57d (patch) | |
tree | 16a42117d260a86b8217d266ab65b25438c48e06 /drivers/scsi/isci/host.h | |
parent | 9b917987fd16d0687afe550a02f68099419f5d43 (diff) | |
download | linux-ac668c69709c7d927015c5cf3d9e87bf4eaaf57d.tar.xz |
isci: cleanup/optimize pool implementation
The circ_buf macros are ~6% faster, as measured by perf, because they take
advantage of power-of-two math assumptions i.e. no test and branch for
rollover. Their semantics are clearer than the hidden side effects in pool.h
(like sci_pool_get() which hides an assignment).
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/host.h')
-rw-r--r-- | drivers/scsi/isci/host.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/scsi/isci/host.h b/drivers/scsi/isci/host.h index 740350043d89..c61a9fa130b7 100644 --- a/drivers/scsi/isci/host.h +++ b/drivers/scsi/isci/host.h @@ -57,7 +57,6 @@ #include "remote_device.h" #include "phy.h" -#include "pool.h" #include "isci.h" #include "remote_node_table.h" #include "registers.h" @@ -180,11 +179,6 @@ struct scic_sds_controller { struct scic_remote_node_table available_remote_nodes; /** - * This field is the TCi pool used to manage the task context index. - */ - SCI_POOL_CREATE(tci_pool, u16, SCI_MAX_IO_REQUESTS); - - /** * This filed is the struct scic_power_control data used to controll when direct * attached devices can consume power. */ @@ -310,6 +304,10 @@ struct scic_sds_controller { struct isci_host { struct scic_sds_controller sci; + u16 tci_head; + u16 tci_tail; + u16 tci_pool[SCI_MAX_IO_REQUESTS]; + union scic_oem_parameters oem_parameters; int id; /* unique within a given pci device */ @@ -423,8 +421,6 @@ enum scic_sds_controller_states { SCIC_FAILED, }; - - /** * struct isci_pci_info - This class represents the pci function containing the * controllers. Depending on PCI SKU, there could be up to 2 controllers in |