> Ouch. What about un-inlining in_interrupt() for all SMP cases? Reduces
> code size just a bit, and function calls aren't very expensive on SMP
> machines IMHO... (and as a side effect solves this problem...)
Call, conditional branch, call is pretty expensive and thats what most
in_interrupt
Ouch. What about un-inlining in_interrupt() for all SMP cases? Reduces
code size just a bit, and function calls aren't very expensive on SMP
machines IMHO... (and as a side effect solves this problem...)
Call, conditional branch, call is pretty expensive and thats what most
in_interrupt
Tom Leete wrote:
>
> Hi Alan
>
> I found one way to break the circularity. The association of type and struct
> definitions with interlocking inline functions caused the problem. This
> extracts task_struct from linux/sched.h to its own header,
> linux/task_struct.h. There are a few
Manfred Spraul wrote:
>
> Tom Leete wrote:
> >
> > +
> > +#ifndef _LINUX_MM_H
> > +struct vm_area_struct;
> > +#endif
> > +
> Are the #ifndef's necessary?
> Could you try to remove the #ifndef and always declare the struct? gcc
> shouldn't complain.
Probably not necessary, but that seemed
Tom Leete wrote:
>
> +
> +#ifndef _LINUX_MM_H
> +struct vm_area_struct;
> +#endif
> +
Are the #ifndef's necessary?
Could you try to remove the #ifndef and always declare the struct? gcc
shouldn't complain.
> +
> +/* Try removing /linux/fs.h in capability.h first
> +#ifndef _LINUX_CAPABILITY_H
>
Hi Alan
I found one way to break the circularity. The association of type and struct
definitions with interlocking inline functions caused the problem. This
extracts task_struct from linux/sched.h to its own header,
linux/task_struct.h. There are a few modifications elsewhere to support
this.
Hi Alan
I found one way to break the circularity. The association of type and struct
definitions with interlocking inline functions caused the problem. This
extracts task_struct from linux/sched.h to its own header,
linux/task_struct.h. There are a few modifications elsewhere to support
this.
Tom Leete wrote:
+
+#ifndef _LINUX_MM_H
+struct vm_area_struct;
+#endif
+
Are the #ifndef's necessary?
Could you try to remove the #ifndef and always declare the struct? gcc
shouldn't complain.
+
+/* Try removing /linux/fs.h in capability.h first
+#ifndef _LINUX_CAPABILITY_H
+typedef
Manfred Spraul wrote:
Tom Leete wrote:
+
+#ifndef _LINUX_MM_H
+struct vm_area_struct;
+#endif
+
Are the #ifndef's necessary?
Could you try to remove the #ifndef and always declare the struct? gcc
shouldn't complain.
Probably not necessary, but that seemed tidier if the struct
Tom Leete wrote:
Hi Alan
I found one way to break the circularity. The association of type and struct
definitions with interlocking inline functions caused the problem. This
extracts task_struct from linux/sched.h to its own header,
linux/task_struct.h. There are a few modifications
10 matches
Mail list logo