From: Ira Weiny <[email protected]>

Upper level drivers can access these cached device attributes rather than
caching them on their own.

Signed-off-by: Ira Weiny <[email protected]>

---
 drivers/infiniband/core/device.c | 2 ++
 include/rdma/ib_verbs.h          | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 18c1ece..30d9d09 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -294,6 +294,8 @@ int ib_register_device(struct ib_device *device,
        spin_lock_init(&device->event_handler_lock);
        spin_lock_init(&device->client_data_lock);
 
+       device->query_device(device, &device->cached_dev_attrs);
+
        ret = read_port_table_lengths(device);
        if (ret) {
                printk(KERN_WARNING "Couldn't create table lengths cache for 
device %s\n",
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 0d74f1d..0116e4b 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1675,6 +1675,7 @@ struct ib_device {
        u32                          local_dma_lkey;
        u8                           node_type;
        u8                           phys_port_cnt;
+       struct ib_device_attr        cached_dev_attrs;
 };
 
 struct ib_client {
-- 
1.8.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to