Messages in this thread | | | From | Eric Dumazet <> | Subject | Re: [PATCH] i386-pda UP optimization | Date | Wed, 15 Nov 2006 18:58:09 +0100 |
| |
On Wednesday 15 November 2006 18:49, Ingo Molnar wrote: > * Eric Dumazet <dada1@cosmosbay.com> wrote: > > Machine boots but freeze when init starts. Any idea ? > > probably caused by this: > > +# define GET_CPU_NUM(reg) > > > > #define FIXUP_ESPFIX_STACK \ > > /* since we are on a wrong stack, we cant make it a C code :( */ \ > > - movl %gs:PDA_cpu, %ebx; \ > > + GET_CPU_NUM(%ebx) \ > > PER_CPU(cpu_gdt_descr, %ebx); \ > > movl GDS_address(%ebx), %ebx; \ > > %ebx very definitely wants to have a current CPU number loaded ;) Pick > it up from the task struct.
Hum.... Are you sure ?
For UP we have this PER_CPU definition :
#define PER_CPU(var, cpu) \ movl $per_cpu__/**/var, cpu;
You can see 'cpu' is a pure output , not an input value.
So I basically deleted the fist instruction of this sequence :
movl %gs:PDA_cpu, %ebx movl $per_cpu__cpu_gdt_descr, %ebx;
Did I miss something ? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |