thinkpad-acpi: don't leave ERR_PTR() pointers around
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Sun, 20 Sep 2009 17:09:22 +0000 (14:09 -0300)
committerLen Brown <len.brown@intel.com>
Sun, 20 Sep 2009 17:43:29 +0000 (13:43 -0400)
backlight_device_register returns ERR_PTR() in case of problems, and
the current code would leave that ERR_PTR in ibm_backlight_device.

The current code paths won't touch it in that situation, but that could
change.  Make sure to set ibm_backlight_device to NULL in the error
path.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/platform/x86/thinkpad_acpi.c

index f78d27503925bb97fd28b67e9443d247685b16d1..b789ee8bc14e227e90cae24e944c9f896e502900 100644 (file)
@@ -6010,8 +6010,10 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
                                        TPACPI_BACKLIGHT_DEV_NAME, NULL, NULL,
                                        &ibm_backlight_data);
        if (IS_ERR(ibm_backlight_device)) {
+               int rc = PTR_ERR(ibm_backlight_device);
+               ibm_backlight_device = NULL;
                printk(TPACPI_ERR "Could not register backlight device\n");
-               return PTR_ERR(ibm_backlight_device);
+               return rc;
        }
        vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_BRGHT,
                        "brightness is supported\n");