It seems that linux/preempt.h needs to include linux/thread_info.h
in order to access current_thread_info(), which is used in
preempt_count().
I guess that all callers of preempt_count() must include
both linux/thread_info.h and linux/preempt.h directly or indirectly,
as this does not cause a compile error. I noticed the problem while
working on an unrelated issue in xen-land.
Signed-off-by: Simon Horman <[email protected]>
Index: linux-2.6/include/linux/preempt.h
===================================================================
--- linux-2.6.orig/include/linux/preempt.h 2006-12-27 16:58:46.000000000 +0900
+++ linux-2.6/include/linux/preempt.h 2006-12-27 17:13:12.000000000 +0900
@@ -8,6 +8,7 @@
#include <linux/thread_info.h>
#include <linux/linkage.h>
+#include <linux/thread_info.h>
#ifdef CONFIG_DEBUG_PREEMPT
extern void fastcall add_preempt_count(int val);
On Wed, Dec 27, 2006 at 05:17:02PM +0900, Horms wrote:
> It seems that linux/preempt.h needs to include linux/thread_info.h
> in order to access current_thread_info(), which is used in
> preempt_count().
>
> I guess that all callers of preempt_count() must include
> both linux/thread_info.h and linux/preempt.h directly or indirectly,
> as this does not cause a compile error. I noticed the problem while
> working on an unrelated issue in xen-land.
>
> Signed-off-by: Simon Horman <[email protected]>
>
> Index: linux-2.6/include/linux/preempt.h
> ===================================================================
> --- linux-2.6.orig/include/linux/preempt.h 2006-12-27 16:58:46.000000000 +0900
> +++ linux-2.6/include/linux/preempt.h 2006-12-27 17:13:12.000000000 +0900
> @@ -8,6 +8,7 @@
>
> #include <linux/thread_info.h>
> #include <linux/linkage.h>
> +#include <linux/thread_info.h>
Huh? It's just been included two lines above...
On Wed, Dec 27, 2006 at 08:27:02AM +0000, Al Viro wrote:
> On Wed, Dec 27, 2006 at 05:17:02PM +0900, Horms wrote:
> > It seems that linux/preempt.h needs to include linux/thread_info.h
> > in order to access current_thread_info(), which is used in
> > preempt_count().
> >
> > I guess that all callers of preempt_count() must include
> > both linux/thread_info.h and linux/preempt.h directly or indirectly,
> > as this does not cause a compile error. I noticed the problem while
> > working on an unrelated issue in xen-land.
> >
> > Signed-off-by: Simon Horman <[email protected]>
> >
> > Index: linux-2.6/include/linux/preempt.h
> > ===================================================================
> > --- linux-2.6.orig/include/linux/preempt.h 2006-12-27 16:58:46.000000000 +0900
> > +++ linux-2.6/include/linux/preempt.h 2006-12-27 17:13:12.000000000 +0900
> > @@ -8,6 +8,7 @@
> >
> > #include <linux/thread_info.h>
> > #include <linux/linkage.h>
> > +#include <linux/thread_info.h>
>
> Huh? It's just been included two lines above...
Sorry about that. I mucked around with this for a while
and ended up missing the obvious when doing the forward-port.
--
Horms
H: http://www.vergenet.net/~horms/
W: http://www.valinux.co.jp/en/