Re: [PATCH 1/2] acpi: don't free non-existant backlight in acpivideo module

From: Andrew Morton
Date: Mon Jul 13 2009 - 19:41:53 EST



> acpi: don't free non-existant backlight in acpi video module

"existent" :)

On Sat, 11 Jul 2009 23:47:31 -0700
keithp@xxxxxxxxxx wrote:

> From: Keith Packard <keithp@xxxxxxxxxx>
>
> acpi_video_put_one_device was attempting to remove sysfs entries and
> unregister a backlight device without first checking that said backlight
> device structure had been created.
>
> Signed-off-by: Keith Packard <keithp@xxxxxxxxxx>
> ---
> drivers/acpi/video.c | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 8851315..60ea984 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -2004,8 +2004,11 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
> status = acpi_remove_notify_handler(device->dev->handle,
> ACPI_DEVICE_NOTIFY,
> acpi_video_device_notify);
> - sysfs_remove_link(&device->backlight->dev.kobj, "device");
> - backlight_device_unregister(device->backlight);
> + if (device->backlight) {
> + sysfs_remove_link(&device->backlight->dev.kobj, "device");
> + backlight_device_unregister(device->backlight);
> + device->backlight = NULL;
> + }
> if (device->cdev) {
> sysfs_remove_link(&device->dev->dev.kobj,
> "thermal_cooling");

um, OK.

Under which circumstances was this observed?

For symmetry we could instead test acpi_video_backlight_support() here.

The patch assumes that someone initially zeroed device->backlight. Is
that true and reliable? If so, is the

memset(&device->cap, 0, sizeof(device->cap));

in acpi_video_device_find_cap() needed?


Where's [patch 2/2], btw?
--
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/