Re: [PATCH 03/15] x86: remove early_gdt_descr reference

From: Glauber Costa
Date: Mon Jun 09 2008 - 11:54:29 EST


James Bottomley wrote:
On Mon, 2008-06-09 at 11:16 -0300, Glauber Costa wrote:
since we use switch_to_new_gdt, there is no point
in assigning early_gdt_descr except for the first
assignment, which is done manually.

What makes you think you can do this? If you don't update the early
boot gdt, they all end up using the Boot CPU one. The problem with this
is that there's a time from start_secondary to switch_to_new_gdt where
the per cpu selector (%fs) and the pda selector (%gs) are those of the
boot CPU. The former isn't a problem but the CPU number is in the
latter, and it's used in that path before we get to the initialisation.

You are right, I missed it.

However, it only seem to be used in cpu_init, and very early. Sure there are some users _before_ we load the new gdt, but nothing prevents them to be moved after it. (Of course, this patch is wrong anyway).

And if we do that, we can even take the %fs loading out of head_32.S
Of course, it's only valid if those are indeed the only early users of it.

Is there any other use I'm missing?

--
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/