Re: [PATCH] uio_hv_generic: set callbacks on open

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2018-12-10 at 10:18 -0800, Stephen Hemminger wrote:
> This fixes the problem where uio application was unable to
> use multple queues on restart. The root cause is that the callbacks
> are cleared on disconnect. Change to setting up callbacks
> everytime in open.
> 
> Fixes: cdfa835c6e5e ("uio_hv_generic: defer opening vmbus until first
> use")
> Reported-by: Mohammed Gamal <mgamal@xxxxxxxxxx>
> Signed-off-by: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/uio/uio_hv_generic.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/uio/uio_hv_generic.c
> b/drivers/uio/uio_hv_generic.c
> index c2493d011225..3c5169eb23f5 100644
> --- a/drivers/uio/uio_hv_generic.c
> +++ b/drivers/uio/uio_hv_generic.c
> @@ -204,9 +204,11 @@ hv_uio_open(struct uio_info *info, struct inode
> *inode)
>  	if (atomic_inc_return(&pdata->refcnt) != 1)
>  		return 0;
>  
> +	vmbus_set_chn_rescind_callback(dev->channel,
> hv_uio_rescind);
> +	vmbus_set_sc_create_callback(dev->channel,
> hv_uio_new_channel);
> +
>  	ret = vmbus_connect_ring(dev->channel,
>  				 hv_uio_channel_cb, dev->channel);
> -
>  	if (ret == 0)
>  		dev->channel->inbound.ring_buffer->interrupt_mask =
> 1;
>  	else
> @@ -334,9 +336,6 @@ hv_uio_probe(struct hv_device *dev,
>  		goto fail_close;
>  	}
>  
> -	vmbus_set_chn_rescind_callback(channel, hv_uio_rescind);
> -	vmbus_set_sc_create_callback(channel, hv_uio_new_channel);
> -
>  	ret = sysfs_create_bin_file(&channel->kobj,
> &ring_buffer_bin_attr);
>  	if (ret)
>  		dev_notice(&dev->device,

Tested-by: Mohammed Gamal <mgamal@xxxxxxxxxx>
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux