Re: [patch 00/16] Linux 2.6.25 -stable review

From: Len Brown
Date: Thu May 08 2008 - 15:18:51 EST


On Thursday 08 May 2008, Willy Tarreau wrote:
> On Thu, May 08, 2008 at 11:22:33AM -0700, Greg KH wrote:
> > On Thu, May 08, 2008 at 08:13:42PM +0200, Willy Tarreau wrote:
> > > On Thu, May 08, 2008 at 10:41:22AM -0700, Greg KH wrote:
> > > > This is the start of the stable review cycle for the 2.6.25.2 release.
> > > > There are 16 patches in this series, all will be posted as a response to
> > > > this one. If anyone has any issues with these being applied, please let
> > > > us know. If anyone is a maintainer of the proper subsystem, and wants
> > > > to add a Signed-off-by: line to the patch, please respond with it.
> > >
> > > Greg, shouldn't we also queue this one (may be in a later version) ? It's
> > > in mainline.
> >
> > What problem does it solve?
>
> from what I see in the code, currently acpi_power_get_state() will return
> 0 when setting resource to NULL, and some callers (eg: acpi_power_on())
> will happily dereference resource if acpi_power_get_state() returns 0. So
> I guess there are circumstances where we can oops.
>
> > Does Len want it in -stable?
>
> I simply forgot to ask. I'm CCing him.

This patch is correct.

Go ahead and apply it -- it won't hurt anything.
I don't think it will help anything in real-life either, though.

While it is true if we had this failure, we'd oops in acpi_power_on() and acpi_power_off().
But I think this is effectively a check for a programming error that we
don't (currently) have. ie. acpi_power_add() always does this:
acpi_driver_data(device) = resource; with a valid pointer.
So the fact that this error check was a errantly a NO-OP was hidden in practice.

-Len

> >
> > > >From a815ab8b5891f3d2515316655729272f68269e3b Mon Sep 17 00:00:00 2001
> > > From: Li Zefan <lizf@xxxxxxxxxxxxxx>
> > > Date: Fri, 18 Apr 2008 13:27:29 -0700
> > > Subject: ACPI: check a return value correctly in acpi_power_get_context()
> > >
> > > We should check *resource != NULL rather than resource != NULL, which will be
> > > always true.
> > >
> > > Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>
> > > Acked-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
> > > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > > Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
> > > ---
> > > drivers/acpi/power.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> > > index 76bf6d9..f2a76ac 100644
> > > --- a/drivers/acpi/power.c
> > > +++ b/drivers/acpi/power.c
> > > @@ -121,7 +121,7 @@ acpi_power_get_context(acpi_handle handle,
> > > }
> > >
> > > *resource = acpi_driver_data(device);
> > > - if (!resource)
> > > + if (!*resource)
> > > return -ENODEV;
> > >
> > > return 0;
> > > --
> > > 1.5.3.8
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/