summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pv/hyperv.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/pv/hyperv.c b/sys/dev/pv/hyperv.c
index 8754c0a43de..a75276335d6 100644
--- a/sys/dev/pv/hyperv.c
+++ b/sys/dev/pv/hyperv.c
@@ -97,6 +97,7 @@ void hv_message_intr(struct hv_softc *);
int hv_vmbus_connect(struct hv_softc *);
void hv_channel_response(struct hv_softc *, struct vmbus_chanmsg_hdr *);
void hv_channel_offer(struct hv_softc *, struct vmbus_chanmsg_hdr *);
+void hv_channel_rescind(struct hv_softc *, struct vmbus_chanmsg_hdr *);
void hv_channel_delivered(struct hv_softc *, struct vmbus_chanmsg_hdr *);
int hv_channel_scan(struct hv_softc *);
void hv_process_offer(struct hv_softc *, struct hv_offer *);
@@ -118,7 +119,7 @@ struct {
} hv_msg_dispatch[] = {
{ 0, 0, NULL },
{ VMBUS_CHANMSG_CHOFFER, 0, hv_channel_offer },
- { VMBUS_CHANMSG_CHRESCIND, 0, NULL },
+ { VMBUS_CHANMSG_CHRESCIND, 0, hv_channel_rescind },
{ VMBUS_CHANMSG_CHREQUEST, VMBUS_CHANMSG_CHOFFER,
NULL },
{ VMBUS_CHANMSG_CHOFFER_DONE, 0,
@@ -784,6 +785,16 @@ hv_channel_offer(struct hv_softc *sc, struct vmbus_chanmsg_hdr *hdr)
}
void
+hv_channel_rescind(struct hv_softc *sc, struct vmbus_chanmsg_hdr *hdr)
+{
+ const struct vmbus_chanmsg_chrescind *cmd;
+
+ cmd = (const struct vmbus_chanmsg_chrescind *)hdr;
+ printf("%s: revoking channel %u\n", sc->sc_dev.dv_xname,
+ cmd->chm_chanid);
+}
+
+void
hv_channel_delivered(struct hv_softc *sc, struct vmbus_chanmsg_hdr *hdr)
{
atomic_setbits_int(&sc->sc_flags, HSF_OFFERS_DELIVERED);