Browse Source

uio_hv_generic: check that host supports monitor page

In order for userspace application to signal host, it needs the
host to support the monitor page property. Check for the flag
and fail if this is not supported.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stephen Hemminger 7 years ago
parent
commit
06028d1517
1 changed files with 7 additions and 0 deletions
  1. 7 0
      drivers/uio/uio_hv_generic.c

+ 7 - 0
drivers/uio/uio_hv_generic.c

@@ -133,6 +133,13 @@ hv_uio_probe(struct hv_device *dev,
 	if (ret)
 	if (ret)
 		goto fail;
 		goto fail;
 
 
+	/* Communicating with host has to be via shared memory not hypercall */
+	if (!dev->channel->offermsg.monitor_allocated) {
+		dev_err(&dev->device, "vmbus channel requires hypercall\n");
+		ret = -ENOTSUPP;
+		goto fail_close;
+	}
+
 	dev->channel->inbound.ring_buffer->interrupt_mask = 1;
 	dev->channel->inbound.ring_buffer->interrupt_mask = 1;
 	set_channel_read_mode(dev->channel, HV_CALL_ISR);
 	set_channel_read_mode(dev->channel, HV_CALL_ISR);