diff options
Diffstat (limited to 'drivers/infiniband/core/ucm.c')
| -rw-r--r-- | drivers/infiniband/core/ucm.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c index 62c24b1452b8..6b4e8a008bc0 100644 --- a/drivers/infiniband/core/ucm.c +++ b/drivers/infiniband/core/ucm.c @@ -109,7 +109,7 @@ enum {  #define IB_UCM_BASE_DEV MKDEV(IB_UCM_MAJOR, IB_UCM_BASE_MINOR)  static void ib_ucm_add_one(struct ib_device *device); -static void ib_ucm_remove_one(struct ib_device *device); +static void ib_ucm_remove_one(struct ib_device *device, void *client_data);  static struct ib_client ucm_client = {  	.name   = "ucm", @@ -658,8 +658,7 @@ static ssize_t ib_ucm_listen(struct ib_ucm_file *file,  	if (result)  		goto out; -	result = ib_cm_listen(ctx->cm_id, cmd.service_id, cmd.service_mask, -			      NULL); +	result = ib_cm_listen(ctx->cm_id, cmd.service_id, cmd.service_mask);  out:  	ib_ucm_ctx_put(ctx);  	return result; @@ -1193,6 +1192,7 @@ static int ib_ucm_close(struct inode *inode, struct file *filp)  	return 0;  } +static DECLARE_BITMAP(overflow_map, IB_UCM_MAX_DEVICES);  static void ib_ucm_release_dev(struct device *dev)  {  	struct ib_ucm_device *ucm_dev; @@ -1202,7 +1202,7 @@ static void ib_ucm_release_dev(struct device *dev)  	if (ucm_dev->devnum < IB_UCM_MAX_DEVICES)  		clear_bit(ucm_dev->devnum, dev_map);  	else -		clear_bit(ucm_dev->devnum - IB_UCM_MAX_DEVICES, dev_map); +		clear_bit(ucm_dev->devnum - IB_UCM_MAX_DEVICES, overflow_map);  	kfree(ucm_dev);  } @@ -1226,7 +1226,6 @@ static ssize_t show_ibdev(struct device *dev, struct device_attribute *attr,  static DEVICE_ATTR(ibdev, S_IRUGO, show_ibdev, NULL);  static dev_t overflow_maj; -static DECLARE_BITMAP(overflow_map, IB_UCM_MAX_DEVICES);  static int find_overflow_devnum(void)  {  	int ret; @@ -1310,9 +1309,9 @@ err:  	return;  } -static void ib_ucm_remove_one(struct ib_device *device) +static void ib_ucm_remove_one(struct ib_device *device, void *client_data)  { -	struct ib_ucm_device *ucm_dev = ib_get_client_data(device, &ucm_client); +	struct ib_ucm_device *ucm_dev = client_data;  	if (!ucm_dev)  		return;  |