diff options
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c | 7 |
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 26dc381c1767..7477acfafa4a 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"); } |
