summaryrefslogtreecommitdiff
path: root/drivers/scsi/isci/host.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-06-08 05:50:55 +0400
committerDan Williams <dan.j.williams@intel.com>2011-07-03 15:04:51 +0400
commitac668c69709c7d927015c5cf3d9e87bf4eaaf57d (patch)
tree16a42117d260a86b8217d266ab65b25438c48e06 /drivers/scsi/isci/host.h
parent9b917987fd16d0687afe550a02f68099419f5d43 (diff)
downloadlinux-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.h12
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