IB/core: Save the device attributes on the device structure
This way both the IB core and upper level drivers can access these cached device attributes rather than querying or caching them on their own. Signed-off-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
4ef7675344
commit
3e153a93a1
|
@ -325,6 +325,7 @@ int ib_register_device(struct ib_device *device,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct ib_client *client;
|
struct ib_client *client;
|
||||||
|
struct ib_udata uhw = {.outlen = 0, .inlen = 0};
|
||||||
|
|
||||||
mutex_lock(&device_mutex);
|
mutex_lock(&device_mutex);
|
||||||
|
|
||||||
|
@ -352,6 +353,13 @@ int ib_register_device(struct ib_device *device,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(&device->attrs, 0, sizeof(device->attrs));
|
||||||
|
ret = device->query_device(device, &device->attrs, &uhw);
|
||||||
|
if (ret) {
|
||||||
|
printk(KERN_WARNING "Couldn't query the device attributes\n");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
ret = ib_device_register_sysfs(device, port_callback);
|
ret = ib_device_register_sysfs(device, port_callback);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printk(KERN_WARNING "Couldn't register device %s with driver model\n",
|
printk(KERN_WARNING "Couldn't register device %s with driver model\n",
|
||||||
|
|
|
@ -1823,6 +1823,7 @@ struct ib_device {
|
||||||
u16 is_switch:1;
|
u16 is_switch:1;
|
||||||
u8 node_type;
|
u8 node_type;
|
||||||
u8 phys_port_cnt;
|
u8 phys_port_cnt;
|
||||||
|
struct ib_device_attr attrs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The following mandatory functions are used only at device
|
* The following mandatory functions are used only at device
|
||||||
|
|
Loading…
Reference in a new issue