mirror of https://gitee.com/openkylin/linux.git
uio_hv_generic: set callbacks on open
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: cdfa835c6e
("uio_hv_generic: defer opening vmbus until first use")
Reported-by: Mohammed Gamal <mgamal@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
40e020c129
commit
5e3c420dcc
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue