RDMA: Introduce and use rdma_device_to_ibdev()
Introduce and use rdma_device_to_ibdev() API for those drivers which are registering one sysfs group and also use in ib_core. In subsequent patch, device->provider_ibdev one-to-one mapping is no longer holds true during accessing sysfs entries. Therefore, introduce an API rdma_device_to_ibdev() that provides such information. Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
ea4baf7f11
commit
5474723115
@@ -50,7 +50,7 @@ static ssize_t board_id_show(struct device *device,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
unsigned short subsystem_device_id;
|
||||
|
||||
mutex_lock(&us_ibdev->usdev_lock);
|
||||
@@ -67,14 +67,13 @@ static DEVICE_ATTR_RO(board_id);
|
||||
static ssize_t
|
||||
config_show(struct device *device, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev;
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
char *ptr;
|
||||
unsigned left;
|
||||
unsigned n;
|
||||
enum usnic_vnic_res_type res_type;
|
||||
|
||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
|
||||
/* Buffer space limit is 1 page */
|
||||
ptr = buf;
|
||||
left = PAGE_SIZE;
|
||||
@@ -130,9 +129,8 @@ static DEVICE_ATTR_RO(config);
|
||||
static ssize_t
|
||||
iface_show(struct device *device, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev;
|
||||
|
||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
|
||||
return scnprintf(buf, PAGE_SIZE, "%s\n",
|
||||
netdev_name(us_ibdev->netdev));
|
||||
@@ -142,9 +140,8 @@ static DEVICE_ATTR_RO(iface);
|
||||
static ssize_t
|
||||
max_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev;
|
||||
|
||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
|
||||
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
||||
kref_read(&us_ibdev->vf_cnt));
|
||||
@@ -154,10 +151,10 @@ static DEVICE_ATTR_RO(max_vf);
|
||||
static ssize_t
|
||||
qp_per_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev;
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
int qp_per_vf;
|
||||
|
||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ],
|
||||
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]);
|
||||
|
||||
@@ -169,9 +166,8 @@ static DEVICE_ATTR_RO(qp_per_vf);
|
||||
static ssize_t
|
||||
cq_per_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct usnic_ib_dev *us_ibdev;
|
||||
|
||||
us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev);
|
||||
struct usnic_ib_dev *us_ibdev =
|
||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||
|
||||
return scnprintf(buf, PAGE_SIZE, "%d\n",
|
||||
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ]);
|
||||
|
Reference in New Issue
Block a user