Commit 3e153a93 authored by Ira Weiny's avatar Ira Weiny Committed by Doug Ledford
Browse files

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: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 4ef76753
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -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",
+1 −0
Original line number Original line Diff line number Diff line
@@ -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