Re: [rfc-patch 01/01] leds-48xx: unnecessary extern decl is needed !?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jim Cromie wrote:

in the following patch, this extern decl is necessary.

+//extern struct nsc_gpio_ops scx200_gpio_ops;

Because its commented out, I get this error:

CC [M] drivers/leds/leds-net48xx.o
drivers/leds/leds-net48xx.c: In function ‘net48xx_error_led_set’:
drivers/leds/leds-net48xx.c:31: error: ‘scx200_gpio_ops’ undeclared (first use in this function) drivers/leds/leds-net48xx.c:31: error: (Each undeclared identifier is reported only once
drivers/leds/leds-net48xx.c:31: error: for each function it appears in.)
make[2]: *** [drivers/leds/leds-net48xx.o] Error 1
make[1]: *** [drivers/leds] Error 2
make: *** [drivers] Error 2


Shouldnt EXPORT_SYMBOL(scx200_gpio_ops) prevent exactly that ?
On a SWAG, I removed 'static' from the 2 vtables, this made no difference (as I expected)
With the // removed, it builds fine and works.
What have I missed ?
What search terms would have found previous cases ?

Well, it wouldn't work without EXPORT_SYMBOL either (probably should be EXPORT_SYMBOL_GPL these days too) but you need to declare it one place or another or the compiler doesn't know it exists at all! This should ideally be in scx200_gpio.h but I was too lazy to add it! :-P

Just add that line to the header and all will be well. Looks good otherwise.


Signed-off-by: Jim Cromie <[email protected]>

---

$ diffstat diff.leds-nsc-gpio
leds-net48xx.c |   10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)


diff -ruNp -X dontdiff -X exclude-diffs x-2/drivers/leds/leds-net48xx.c x-led/drivers/leds/leds-net48xx.c
--- x-2/drivers/leds/leds-net48xx.c    2006-07-09 10:38:00.000000000 -0600
+++ x-led/drivers/leds/leds-net48xx.c 2006-07-11 13:22:54.000000000 -0600
@@ -15,8 +15,11 @@
#include <linux/platform_device.h>
#include <linux/leds.h>
#include <linux/err.h>
-#include <asm/io.h>
+#include <linux/io.h>
#include <linux/scx200_gpio.h>
+#include <linux/nsc_gpio.h>
+
+//extern struct nsc_gpio_ops scx200_gpio_ops;

#define NET48XX_ERROR_LED_GPIO    20

@@ -25,10 +28,7 @@ static struct platform_device *pdev;
static void net48xx_error_led_set(struct led_classdev *led_cdev,
        enum led_brightness value)
{
-    if (value)
-        scx200_gpio_set_high(NET48XX_ERROR_LED_GPIO);
-    else
-        scx200_gpio_set_low(NET48XX_ERROR_LED_GPIO);
+    scx200_gpio_ops.gpio_set(NET48XX_ERROR_LED_GPIO, value);
}

static struct led_classdev net48xx_error_led = {




Chris

--
Chris Boot
[email protected]
http://www.bootc.net/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux