On Mon, 5 Nov 2007, H. Peter Anvin wrote:Yeah, there is no point in having two far jumps. One is enough. The point being that since apparently the new boot standards say that the 32-bit code is entered with segments etc set to specific values, then we shouldn't do the jump to that 32-bit standard with a far jump: we should do it as a regular jump, because we'd want to to set up the segments etc in 32-bit mode anyway. At least my assembler does the right thing with just the plain "mov" for segments, but yes, there may be old assemblers that add a useless data size override. So "movl %ecx,%*s" is probably the right thing to do to make sure they don't do anything stupid.. Btw, on that same kind of thread: I think we should move the clearing of the registers into the 32-bit mode too, since that makes the instructions shorter (no operand size override), and makes more sense anyway (then we can also clean %edx/%ecx. Final comment: shouldn't we set up %esp to be correct for the new %ss too? Linus -
| Rafael J. Wysocki | 2.6.28-rc2-git7: Reported regressions from 2.6.27 |
| Dave Hansen | Re: [RFC/PATCH] Documentation of kernel messages |
| Jesper Juhl | Re: [RFD] Documentation/HOWTO translated into Japanese |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
git: | |
| Sander | 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1) |
| Corey Minyard | [PATCH 3/3] Convert the UDP hash lock to RCU |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [GIT]: Networking |
