Commit 62ca18a0 authored by Bjorn Helgaas's avatar Bjorn Helgaas

virtio-mmio: Reject invalid IRQ 0 command line argument

The "virtio_mmio.device=" command line argument allows a user to specify
the size, address, and IRQ of a virtio device.  Previously the only
requirement for the IRQ was that it be an unsigned integer.

Zero is an unsigned integer but an invalid IRQ number, and after
a85a6c86 ("driver core: platform: Clarify that IRQ 0 is invalid"),
attempts to use IRQ 0 cause warnings.

If the user specifies IRQ 0, return failure instead of registering a device
with IRQ 0.

Fixes: a85a6c86 ("driver core: platform: Clarify that IRQ 0 is invalid")
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Acked-by: default avatarJason Wang <jasowang@redhat.com>
Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 5396956c
...@@ -641,11 +641,11 @@ static int vm_cmdline_set(const char *device, ...@@ -641,11 +641,11 @@ static int vm_cmdline_set(const char *device,
&vm_cmdline_id, &consumed); &vm_cmdline_id, &consumed);
/* /*
* sscanf() must processes at least 2 chunks; also there * sscanf() must process at least 2 chunks; also there
* must be no extra characters after the last chunk, so * must be no extra characters after the last chunk, so
* str[consumed] must be '\0' * str[consumed] must be '\0'
*/ */
if (processed < 2 || str[consumed]) if (processed < 2 || str[consumed] || irq == 0)
return -EINVAL; return -EINVAL;
resources[0].flags = IORESOURCE_MEM; resources[0].flags = IORESOURCE_MEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment