summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorsephe <sephe@FreeBSD.org>2016-04-26 05:00:40 +0000
committersephe <sephe@FreeBSD.org>2016-04-26 05:00:40 +0000
commit35bcf1a1373adbb433f9eb46de9b81de3db7627b (patch)
treecdca52a480de6cfaf2da0a5635eb1bbb34f5cb0f /sys/dev
parentf3d0188e03bca2dbf6e92741bdebd44c01b067f7 (diff)
downloadFreeBSD-src-35bcf1a1373adbb433f9eb46de9b81de3db7627b.zip
FreeBSD-src-35bcf1a1373adbb433f9eb46de9b81de3db7627b.tar.gz
hyperv/stor: Synchronize sub-channel offers
MFC after: 1 week Sponsored by: Microsoft OSTC
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
index 26dc381..7477acf 100644
--- a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
+++ b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
@@ -357,6 +357,7 @@ storvsc_handle_sc_creation(void *context)
static void
storvsc_send_multichannel_request(struct hv_device *dev, int max_chans)
{
+ struct hv_vmbus_channel **subchan;
struct storvsc_softc *sc;
struct hv_storvsc_request *request;
struct vstor_packet *vstor_packet;
@@ -413,6 +414,12 @@ storvsc_send_multichannel_request(struct hv_device *dev, int max_chans)
return;
}
+ /*
+ * Wait for sub-channels setup to complete.
+ */
+ subchan = vmbus_get_subchan(dev->channel, request_channels_cnt);
+ vmbus_rel_subchan(subchan, request_channels_cnt);
+
if (bootverbose)
printf("Storvsc create multi-channel success!\n");
}
OpenPOWER on IntegriCloud