diff options
author | Ralph Campbell <ralph.campbell@qlogic.com> | 2008-01-07 08:02:34 +0300 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-01-26 01:15:38 +0300 |
commit | 3029fcc3d44530601f19fd8f551ac195d3a918d7 (patch) | |
tree | df486443f140a8d47fab8bda9552744c3201b865 /drivers/infiniband/hw/ipath/ipath_fs.c | |
parent | 6c719cae0b91f577738dfb4007baee28f03e48a5 (diff) | |
download | linux-3029fcc3d44530601f19fd8f551ac195d3a918d7.tar.xz |
IB/ipath: Export hardware counters more consistently
Various hardware counters are exported via the ipath file system (since
it is binary data). The old file format was very dependent on the HW
offsets for these registers. Newer HCA chips can have different
counters at different offsets. This patch adds a level of indirection
to make the file format consistent across HCAs.
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_fs.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_fs.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c index 262c25db05cd..52325e009a1f 100644 --- a/drivers/infiniband/hw/ipath/ipath_fs.c +++ b/drivers/infiniband/hw/ipath/ipath_fs.c @@ -108,21 +108,16 @@ static const struct file_operations atomic_stats_ops = { .read = atomic_stats_read, }; -#define NUM_COUNTERS sizeof(struct infinipath_counters) / sizeof(u64) - static ssize_t atomic_counters_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { - u64 counters[NUM_COUNTERS]; - u16 i; + struct infinipath_counters counters; struct ipath_devdata *dd; dd = file->f_path.dentry->d_inode->i_private; + dd->ipath_f_read_counters(dd, &counters); - for (i = 0; i < NUM_COUNTERS; i++) - counters[i] = ipath_snap_cntr(dd, i); - - return simple_read_from_buffer(buf, count, ppos, counters, + return simple_read_from_buffer(buf, count, ppos, &counters, sizeof counters); } |