leds-fsg: change order of initialization and deinitialization

Previous thread: dw_dmac: fix copy/paste bug in tasklet by Linux Kernel Mailing List on Friday, October 3, 2008 - 6:59 pm. (2 messages)

Next thread: leds-pca955x: add proper error handling and fix bogus memory handling by Linux Kernel Mailing List on Friday, October 3, 2008 - 6:59 pm. (1 message)
From: Linux Kernel Mailing List
Date: Friday, October 3, 2008 - 6:59 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07f696...
Commit:     07f696c7772fb3501e9531de38333c49143a8d52
Parent:     7fe7b2f4ec14d6517078c5bc32b04301b468041c
Author:     Sven Wegener <sven.wegener@stealer.net>
AuthorDate: Fri Oct 3 15:23:47 2008 -0700
Committer:  Linus Torvalds <torvalds@linux-foundation.org>
CommitDate: Fri Oct 3 18:22:18 2008 -0700

    leds-fsg: change order of initialization and deinitialization
    
    On initialization, we first do the ioremap and then register the led devices.
    On deinitialization, we do it in reverse order. This prevents someone calling
    into the brightness_set functions with an invalid latch_address.
    
    Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
    Acked-by: Rod Whitby <rod@whitby.id.au>
    Acked-by: Richard Purdie <rpurdie@rpsys.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---
 drivers/leds/leds-fsg.c |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/leds/leds-fsg.c b/drivers/leds/leds-fsg.c
index be0e121..3493515 100644
--- a/drivers/leds/leds-fsg.c
+++ b/drivers/leds/leds-fsg.c
@@ -161,6 +161,16 @@ static int fsg_led_probe(struct platform_device *pdev)
 {
 	int ret;
 
+	/* Map the LED chip select address space */
+	latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512);
+	if (!latch_address) {
+		ret = -ENOMEM;
+		goto failremap;
+	}
+
+	latch_value = 0xffff;
+	*latch_address = latch_value;
+
 	ret = led_classdev_register(&pdev->dev, &fsg_wlan_led);
 	if (ret < 0)
 		goto failwlan;
@@ -185,20 +195,8 @@ static int fsg_led_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto failring;
 
-	/* Map the LED chip select address space */
-	latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512);
-	if (!latch_address) {
-		ret = ...
Previous thread: dw_dmac: fix copy/paste bug in tasklet by Linux Kernel Mailing List on Friday, October 3, 2008 - 6:59 pm. (2 messages)

Next thread: leds-pca955x: add proper error handling and fix bogus memory handling by Linux Kernel Mailing List on Friday, October 3, 2008 - 6:59 pm. (1 message)