summaryrefslogtreecommitdiffstats
path: root/sys/dev/hyperv/utilities/hv_timesync.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hyperv/utilities/hv_timesync.c')
-rw-r--r--sys/dev/hyperv/utilities/hv_timesync.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/dev/hyperv/utilities/hv_timesync.c b/sys/dev/hyperv/utilities/hv_timesync.c
index 7ac4fb6..1cd7bc2 100644
--- a/sys/dev/hyperv/utilities/hv_timesync.c
+++ b/sys/dev/hyperv/utilities/hv_timesync.c
@@ -145,7 +145,7 @@ hv_timesync_cb(struct vmbus_channel *channel, void *context)
softc = (hv_timesync_sc*)context;
time_buf = softc->util_sc.receive_buffer;
- recvlen = PAGE_SIZE;
+ recvlen = softc->util_sc.ic_buflen;
ret = vmbus_chan_recv(channel, time_buf, &recvlen, &requestId);
KASSERT(ret != ENOBUFS, ("hvtimesync recvbuf is not large enough"));
/* XXX check recvlen to make sure that it contains enough data */
@@ -155,7 +155,7 @@ hv_timesync_cb(struct vmbus_channel *channel, void *context)
sizeof(struct hv_vmbus_pipe_hdr)];
if (icmsghdrp->icmsgtype == HV_ICMSGTYPE_NEGOTIATE) {
- hv_negotiate_version(icmsghdrp, NULL, time_buf);
+ hv_negotiate_version(icmsghdrp, time_buf);
} else {
timedatap = (struct hv_ictimesync_data *) &time_buf[
sizeof(struct hv_vmbus_pipe_hdr) +
@@ -189,18 +189,16 @@ hv_timesync_attach(device_t dev)
{
hv_timesync_sc *softc = device_get_softc(dev);
- softc->util_sc.callback = hv_timesync_cb;
TASK_INIT(&softc->task, 1, hv_set_host_time, softc);
-
- return hv_util_attach(dev);
+ return hv_util_attach(dev, hv_timesync_cb);
}
static int
hv_timesync_detach(device_t dev)
{
hv_timesync_sc *softc = device_get_softc(dev);
- taskqueue_drain(taskqueue_thread, &softc->task);
+ taskqueue_drain(taskqueue_thread, &softc->task);
return hv_util_detach(dev);
}
OpenPOWER on IntegriCloud