Re: [bisected] NULL pointer dereference in acpi_gpiochip_add (on modprobe ssb)

Mika Westerberg
2014-03-25T07:25:30Z

On Mon, Mar 24, 2014 at 07:31:11PM +0100, Sabrina Dubroca wrote:
> > Actually gpiolib seems to handle ->dev as optional. Can you try this patch
> > instead? Thanks.
> >
> > diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
> > index bf0f8b476696..642b2bf3360e 100644
> > --- a/drivers/gpio/gpiolib-acpi.c
> > +++ b/drivers/gpio/gpiolib-acpi.c
> > @@ -501,6 +501,9 @@ void acpi_gpiochip_add(struct gpio_chip *chip)
> > acpi_handle handle;
> > acpi_status status;
> >
> > + if (!chip || !chip->dev)
> > + return;
> > +
> > handle = ACPI_HANDLE(chip->dev);
> > if (!handle)
> > return;
> > @@ -531,6 +534,9 @@ void acpi_gpiochip_remove(struct gpio_chip *chip)
> > acpi_handle handle;
> > acpi_status status;
> >
> > + if (!chip || !chip->dev)
> > + return;
> > +
> > handle = ACPI_HANDLE(chip->dev);
> > if (!handle)
> > return;
>
> Thanks, this patch solves the problem.

Great thanks for testing. Can I add your tested-by to the patch?

I'll submit a formal patch for this next week as I'm currently on vacation.