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

Sabrina Dubroca
2014-03-25T08:05:23Z

2014-03-25, 09:25:30 +0200, Mika Westerberg wrote:
> 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.

Sure:

Tested-by: Sabrina Dubroca <sd@queasysnail.net>

Thanks again,

--
Sabrina