Re: [PATCH]: linux/interrupt.h doesn't need sched.h

From: Alexey Dobriyan
Date: Mon Oct 29 2007 - 16:46:58 EST


On Mon, Oct 29, 2007 at 05:08:46PM -0200, Arnaldo Carvalho de Melo wrote:
> Em Mon, Oct 29, 2007 at 09:12:10PM +0300, Alexey Dobriyan escreveu:
> > On Mon, Oct 29, 2007 at 11:45:39AM -0200, Arnaldo Carvalho de Melo wrote:
> > > --- a/include/linux/interrupt.h
> > > +++ b/include/linux/interrupt.h
> > > @@ -9,7 +9,6 @@
> > > #include <linux/cpumask.h>
> > > #include <linux/irqreturn.h>
> > > #include <linux/hardirq.h>
> > > -#include <linux/sched.h>
> > > #include <linux/irqflags.h>
> > > #include <asm/atomic.h>
> > > #include <asm/ptrace.h>
> >
> > ACK the part that nothing needs sched.h, but it shouldn't change anything,
> > because of interrupt.h => hardirq.h => smp_lock.h => sched.h dependency.
>
> Yeah, but one thing at a time, now its one link in the maze, before it
> was two :-)
>
> > [puts patch on cross-compile farm anyway]
> > [starts finding scalpels]

Argh!

interrupt.h contains sti().
sti() on m68k wants hardirq_count().
hardirq_count() wants preempt_count();
preempt_count() wants current_thread_info()
current_thread_info() on m68k wants task_thread_info()
task_thread_info() on m68k is

(&(tsk)->thread.info)

We're screwed, because adding sched.h to asm-m68k/thread_info.h leads to
even more horrible things.

Comments? Well, apart from "our header dependencies suck" and "let's add
CONFIG_M^*K to interrupt.h".
-
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/