On Wed, Jul 01, 2020 at 05:10:40PM -0500, Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > 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 > a85a6c86c25be ("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: a85a6c86c25be ("driver core: platform: Clarify that IRQ 0 is invalid") > Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> > Cc: Jason Wang <jasowang@xxxxxxxxxx> > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > drivers/virtio/virtio_mmio.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c > index 9d16aaffca9d..627ac0487494 100644 > --- a/drivers/virtio/virtio_mmio.c > +++ b/drivers/virtio/virtio_mmio.c > @@ -641,11 +641,11 @@ static int vm_cmdline_set(const char *device, > &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 > * str[consumed] must be '\0' > */ > - if (processed < 2 || str[consumed]) > + if (processed < 2 || str[consumed] || irq == 0) > return -EINVAL; > > resources[0].flags = IORESOURCE_MEM; > -- > 2.25.1 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization