Re: [PATCH 2/2] virtio-mmio: Reject invalid IRQ 0 command line argument

Bjorn Helgaas
2020-07-21T22:12:55Z

On Thu, Jul 02, 2020 at 11:06:11AM +0800, Jason Wang wrote:
> On 2020/7/2 上午6:10, Bjorn Helgaas wrote:
> > From: Bjorn Helgaas <bhelgaas@google.com>
> >
> > 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@google.com>
> > Cc: Michael S. Tsirkin <mst@redhat.com>
> > Cc: Jason Wang <jasowang@redhat.com>
> > Cc: virtualization@lists.linux-foundation.org
> > ---
> > 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;
>
> Acked-by: Jason Wang <jasowang@redhat.com>

Thanks, I applied this to my for-linus branch for v5.8.