IB: Fix display of 4-bit port counters in sysfs
authorRalph Campbell <ralph.campbell@qlogic.com>
Tue, 9 May 2006 17:50:28 +0000 (10:50 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 9 May 2006 17:50:28 +0000 (10:50 -0700)
The code to display local_link_integrity_errors and
excessive_buffer_overrun_errors in
/sys/class/infiniband/<hca>/ports/<n>/counters/
uses the wrong shift to extract the 4 bit values.

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/sysfs.c

index 15121cb5a1f6a3d2b5e69b19011bb122ad247055..21f9282c1b25d00dcddef4fd2ccba530ad05f543 100644 (file)
@@ -336,7 +336,7 @@ static ssize_t show_pma_counter(struct ib_port *p, struct port_attribute *attr,
        switch (width) {
        case 4:
                ret = sprintf(buf, "%u\n", (out_mad->data[40 + offset / 8] >>
-                                           (offset % 4)) & 0xf);
+                                           (4 - (offset % 8))) & 0xf);
                break;
        case 8:
                ret = sprintf(buf, "%u\n", out_mad->data[40 + offset / 8]);