On Wed, 24 Oct 2007, Atle Nissestad wrote:
...
>         /* offsets into the task struct */
>         DEFINE(TASK_STATE, offsetof(struct task_struct, state));
>         DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
>         DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
>         DEFINE(TASK_BLOCKED, offsetof(struct task_struct, blocked));
>         DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
>         DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info));  
> ... uh oh ...
>
> so the obvious question is, what *should* that DEFINE look like?  is
> it actually wanting to refer to thread_info itself?  or to the stack?
>
> rday
>
>
> Like this:
>
>  DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));

oh, i know that that's a quick fix, but the larger issue is -- what is
that variable *supposed* to refer to?  it's just begging for confusion
to define a variable with a name referring to "thread info" while it's
actually defined as being the offset of the *stack*.  i don't have the
code in front of me at the moment, but it would be nice to have a
consistent naming convention for whatever this is supposed to
represent.

> arch/nios2nommu/kernel/process.c also need an update (if you've not already 
> changed it):
>
> --- trunk/linux-2.6/arch/nios2nommu/kernel/process.c    2006/12/15 15:08:37   
>   153
> +++ trunk/linux-2.6/arch/nios2nommu/kernel/process.c    2007/09/19 21:36:44   
>   293
> @@ -319,7 +319,7 @@
>         unsigned long stack_offset, *retp;
>
>         stack_offset = THREAD_SIZE - sizeof(struct pt_regs);
> -       childregs = (struct pt_regs *) ((unsigned long) p->thread_info + 
> stack_offset);
> +       childregs = (struct pt_regs *) ((unsigned long) p->stack + 
> stack_offset);
>         p->thread.kregs = childregs;
>
>         *childregs = *regs;

ok, i'll deal with that as well when i get back to my system, thanks.

rday
-- 
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to