Re: including <linux/workqueue.h> isn't self contained

From: Arnd Bergmann
Date: Thu Sep 08 2011 - 11:15:20 EST


On Tuesday 06 September 2011, Uwe Kleine-König wrote:
> compiling drivers/rtc/rtc-imxdi.c currently results in:
>
> drivers/rtc/rtc-imxdi.c: In function 'di_write_wait':
> drivers/rtc/rtc-imxdi.c:168:301: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
> drivers/rtc/rtc-imxdi.c:168:301: note: each undeclared identifier is reported only once for each function it appears in
> drivers/rtc/rtc-imxdi.c:168:2: error: implicit declaration of function 'signal_pending'
> drivers/rtc/rtc-imxdi.c:168:2: error: implicit declaration of function 'schedule_timeout'
> drivers/rtc/rtc-imxdi.c: In function 'dryice_norm_irq':
> drivers/rtc/rtc-imxdi.c:329:34: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
>
> This is a regression from
>
> 4ba8216 (BKL: That's all, folks)
>
> that removes #inclusion of <linux/sched.h> from include/linux/hardirq.h.
>
> Adding
>
> #include <linux/sched.h>
>
> to the driver fixes it, but I wonder if that is the correct fix because
> the driver only uses wait_event_interruptible_timeout (and
> wake_up_interruptible) explicitly but none of the three undeclared
> symbols.

Sorry about that. I would just include sched.h in there as an easy
workaround. Cleaning up the dependencies around sched.h is a larger
task and has been going on for roughly as long as the BKL removal,
so it's not your job to figure it out now.

Arnd
--
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/