Hi David, >Today's next randconfig build on x86 failed with following error. > >net/netfilter/xt_LED.c:40: error: field netfilter_led_trigger has incomplete type >net/netfilter/xt_LED.c: In function led_timeout_callback: >net/netfilter/xt_LED.c:78: warning: unused variable ledinternal >net/netfilter/xt_LED.c: In function led_tg_check: >net/netfilter/xt_LED.c:102: error: implicit declaration of function led_trigger_register >net/netfilter/xt_LED.c: In function led_tg_destroy: >net/netfilter/xt_LED.c:135: error: implicit declaration of function led_trigger_unregister > >CONFIG_LED_TRIGGER is not set. > >complete .config attached. The following patch will solve the build problem reported by Sachin. But would leave the following warnings. I hope we can ignore them: net/netfilter/xt_LED.c: In function â??led_timeout_callbackâ??: net/netfilter/xt_LED.c:78: warning: unused variable â??ledinternalâ?? net/netfilter/xt_LED.c: In function â??led_tg_checkâ??: net/netfilter/xt_LED.c:87: warning: unused variable â??errâ?? Signed-Off-By: Subrata Modak<subrata@xxxxxxxxxxxxxxxxxx> --- --- a/linux-2.6.29/include/linux/leds.h 2009-03-25 18:38:07.000000000 +0530 +++ b/linux-2.6.29/include/linux/leds.h 2009-03-25 18:24:55.000000000 +0530 @@ -73,9 +73,6 @@ extern void led_classdev_resume(struct l /* * LED Triggers */ -#ifdef CONFIG_LEDS_TRIGGERS - -#define TRIG_NAME_MAX 50 struct led_trigger { /* Trigger Properties */ @@ -91,6 +88,10 @@ struct led_trigger { struct list_head next_trig; }; +#ifdef CONFIG_LEDS_TRIGGERS + +#define TRIG_NAME_MAX 50 + /* Registration functions for complex triggers */ extern int led_trigger_register(struct led_trigger *trigger); extern void led_trigger_unregister(struct led_trigger *trigger); --- a/linux-2.6.29/net/netfilter/xt_LED.c 2009-03-25 18:38:08.000000000 +0530 +++ b/linux-2.6.29/net/netfilter/xt_LED.c 2009-03-25 18:26:55.000000000 +0530 @@ -99,6 +99,7 @@ static bool led_tg_check(const struct xt ledinternal->netfilter_led_trigger.name = ledinfo->id; +#ifdef CONFIG_LEDS_TRIGGERS err = led_trigger_register(&ledinternal->netfilter_led_trigger); if (err) { printk(KERN_CRIT KBUILD_MODNAME @@ -108,7 +109,7 @@ static bool led_tg_check(const struct xt ": Trigger name is already in use.\n"); goto exit_alloc; } - +#endif /* See if we need to set up a timer */ if (ledinfo->delay > 0) setup_timer(&ledinternal->timer, led_timeout_callback, @@ -118,8 +119,10 @@ static bool led_tg_check(const struct xt return true; +#ifdef CONFIG_LEDS_TRIGGERS exit_alloc: kfree(ledinternal); +#endif return false; } @@ -132,7 +135,9 @@ static void led_tg_destroy(const struct if (ledinfo->delay > 0) del_timer_sync(&ledinternal->timer); +#ifdef CONFIG_LEDS_TRIGGERS led_trigger_unregister(&ledinternal->netfilter_led_trigger); +#endif kfree(ledinternal); } -- Regards-- Subrata -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html