diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 17:41:24 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 17:41:24 -0500 |
commit | 99f1c97dbdb30e958edfd1ced0ae43df62504e07 (patch) | |
tree | cc61393c912b3c1b095a9c74322f8e1364ab9b3a /drivers/infiniband/hw/ipath/ipath_stats.c | |
parent | b31fde6db2b76a9f7f59bf016652b46cff43f8da (diff) | |
parent | 8176d297c73a06e6076c9c31f6404047567f6324 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (81 commits)
RDMA/cxgb3: Fix the T3A workaround checks
IB/ipath: Remove unnecessary cast
IPoIB: Constify seq_operations function pointer tables
RDMA/cxgb3: Mark QP as privileged based on user capabilities
RDMA/cxgb3: Fix page shift calculation in build_phys_page_list()
RDMA/cxgb3: Flush the receive queue when closing
IB/ipath: Trivial simplification of ipath_make_ud_req()
IB/mthca: Update latest "native Arbel" firmware revision
IPoIB: Remove redundant check of netif_queue_stopped() in xmit handler
IB/ipath: Add mappings from HW register to PortInfo port physical state
IB/ipath: Changes to support PIO bandwidth check on IBA7220
IB/ipath: Minor cleanup of unused fields and chip-specific errors
IB/ipath: New sysfs entries to control 7220 features
IB/ipath: Add new chip-specific functions to older chips, consistent init
IB/ipath: Remove unused MDIO interface code
IB/ehca: Prevent RDMA-related connection failures on some eHCA2 hardware
IB/ehca: Add "port connection autodetect mode"
IB/ehca: Define array to store SMI/GSI QPs
IB/ehca: Remove CQ-QP-link before destroying QP in error path of create_qp()
IB/iser: Add change_queue_depth method
...
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_stats.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_stats.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_stats.c b/drivers/infiniband/hw/ipath/ipath_stats.c index f0271415cd5b..d2725cd11bdc 100644 --- a/drivers/infiniband/hw/ipath/ipath_stats.c +++ b/drivers/infiniband/hw/ipath/ipath_stats.c | |||
@@ -133,15 +133,16 @@ bail: | |||
133 | static void ipath_qcheck(struct ipath_devdata *dd) | 133 | static void ipath_qcheck(struct ipath_devdata *dd) |
134 | { | 134 | { |
135 | static u64 last_tot_hdrqfull; | 135 | static u64 last_tot_hdrqfull; |
136 | struct ipath_portdata *pd = dd->ipath_pd[0]; | ||
136 | size_t blen = 0; | 137 | size_t blen = 0; |
137 | char buf[128]; | 138 | char buf[128]; |
138 | 139 | ||
139 | *buf = 0; | 140 | *buf = 0; |
140 | if (dd->ipath_pd[0]->port_hdrqfull != dd->ipath_p0_hdrqfull) { | 141 | if (pd->port_hdrqfull != dd->ipath_p0_hdrqfull) { |
141 | blen = snprintf(buf, sizeof buf, "port 0 hdrqfull %u", | 142 | blen = snprintf(buf, sizeof buf, "port 0 hdrqfull %u", |
142 | dd->ipath_pd[0]->port_hdrqfull - | 143 | pd->port_hdrqfull - |
143 | dd->ipath_p0_hdrqfull); | 144 | dd->ipath_p0_hdrqfull); |
144 | dd->ipath_p0_hdrqfull = dd->ipath_pd[0]->port_hdrqfull; | 145 | dd->ipath_p0_hdrqfull = pd->port_hdrqfull; |
145 | } | 146 | } |
146 | if (ipath_stats.sps_etidfull != dd->ipath_last_tidfull) { | 147 | if (ipath_stats.sps_etidfull != dd->ipath_last_tidfull) { |
147 | blen += snprintf(buf + blen, sizeof buf - blen, | 148 | blen += snprintf(buf + blen, sizeof buf - blen, |
@@ -173,7 +174,7 @@ static void ipath_qcheck(struct ipath_devdata *dd) | |||
173 | if (blen) | 174 | if (blen) |
174 | ipath_dbg("%s\n", buf); | 175 | ipath_dbg("%s\n", buf); |
175 | 176 | ||
176 | if (dd->ipath_port0head != (u32) | 177 | if (pd->port_head != (u32) |
177 | le64_to_cpu(*dd->ipath_hdrqtailptr)) { | 178 | le64_to_cpu(*dd->ipath_hdrqtailptr)) { |
178 | if (dd->ipath_lastport0rcv_cnt == | 179 | if (dd->ipath_lastport0rcv_cnt == |
179 | ipath_stats.sps_port0pkts) { | 180 | ipath_stats.sps_port0pkts) { |
@@ -181,7 +182,7 @@ static void ipath_qcheck(struct ipath_devdata *dd) | |||
181 | "port0 hd=%llx tl=%x; port0pkts %llx\n", | 182 | "port0 hd=%llx tl=%x; port0pkts %llx\n", |
182 | (unsigned long long) | 183 | (unsigned long long) |
183 | le64_to_cpu(*dd->ipath_hdrqtailptr), | 184 | le64_to_cpu(*dd->ipath_hdrqtailptr), |
184 | dd->ipath_port0head, | 185 | pd->port_head, |
185 | (unsigned long long) | 186 | (unsigned long long) |
186 | ipath_stats.sps_port0pkts); | 187 | ipath_stats.sps_port0pkts); |
187 | } | 188 | } |
@@ -237,7 +238,7 @@ static void ipath_chk_errormask(struct ipath_devdata *dd) | |||
237 | void ipath_get_faststats(unsigned long opaque) | 238 | void ipath_get_faststats(unsigned long opaque) |
238 | { | 239 | { |
239 | struct ipath_devdata *dd = (struct ipath_devdata *) opaque; | 240 | struct ipath_devdata *dd = (struct ipath_devdata *) opaque; |
240 | u32 val; | 241 | int i; |
241 | static unsigned cnt; | 242 | static unsigned cnt; |
242 | unsigned long flags; | 243 | unsigned long flags; |
243 | u64 traffic_wds; | 244 | u64 traffic_wds; |
@@ -321,12 +322,11 @@ void ipath_get_faststats(unsigned long opaque) | |||
321 | 322 | ||
322 | /* limit qfull messages to ~one per minute per port */ | 323 | /* limit qfull messages to ~one per minute per port */ |
323 | if ((++cnt & 0x10)) { | 324 | if ((++cnt & 0x10)) { |
324 | for (val = dd->ipath_cfgports - 1; ((int)val) >= 0; | 325 | for (i = (int) dd->ipath_cfgports; --i >= 0; ) { |
325 | val--) { | 326 | struct ipath_portdata *pd = dd->ipath_pd[i]; |
326 | if (dd->ipath_lastegrheads[val] != -1) | 327 | |
327 | dd->ipath_lastegrheads[val] = -1; | 328 | if (pd && pd->port_lastrcvhdrqtail != -1) |
328 | if (dd->ipath_lastrcvhdrqtails[val] != -1) | 329 | pd->port_lastrcvhdrqtail = -1; |
329 | dd->ipath_lastrcvhdrqtails[val] = -1; | ||
330 | } | 330 | } |
331 | } | 331 | } |
332 | 332 | ||