hv: hv_util: move vmbus_open() to a later place
Before the line vmbus_open() returns, srv->util_cb can be already running and the variables, like util_fw_version, are needed by the srv->util_cb. So we have to make sure the variables are initialized before the vmbus_open(). CC: "K. Y. Srinivasan" <kys@microsoft.com> Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Dexuan Cui <decui@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
e086748c65
commit
1896566372
@@ -340,12 +340,8 @@ static int util_probe(struct hv_device *dev,
|
|||||||
|
|
||||||
set_channel_read_state(dev->channel, false);
|
set_channel_read_state(dev->channel, false);
|
||||||
|
|
||||||
ret = vmbus_open(dev->channel, 4 * PAGE_SIZE, 4 * PAGE_SIZE, NULL, 0,
|
|
||||||
srv->util_cb, dev->channel);
|
|
||||||
if (ret)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
hv_set_drvdata(dev, srv);
|
hv_set_drvdata(dev, srv);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Based on the host; initialize the framework and
|
* Based on the host; initialize the framework and
|
||||||
* service version numbers we will negotiate.
|
* service version numbers we will negotiate.
|
||||||
@@ -365,6 +361,11 @@ static int util_probe(struct hv_device *dev,
|
|||||||
hb_srv_version = HB_VERSION;
|
hb_srv_version = HB_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = vmbus_open(dev->channel, 4 * PAGE_SIZE, 4 * PAGE_SIZE, NULL, 0,
|
||||||
|
srv->util_cb, dev->channel);
|
||||||
|
if (ret)
|
||||||
|
goto error;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Reference in New Issue
Block a user