Re: [tip:x86/asm] x86: Introduce GDT_ENTRY_INIT()

From: H. Peter Anvin
Date: Mon Aug 03 2009 - 02:27:56 EST


Ingo Molnar wrote:
* tip-bot for Akinobu Mita <akinobu.mita@xxxxxxxxx> wrote:

Commit-ID: d520da1173abd1f918b7e690220e14ba0fc56cfc
Gitweb: http://git.kernel.org/tip/d520da1173abd1f918b7e690220e14ba0fc56cfc
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
AuthorDate: Sun, 19 Jul 2009 00:12:20 +0900
Committer: Ingo Molnar <mingo@xxxxxxx>
CommitDate: Sun, 19 Jul 2009 18:27:53 +0200

x86: Introduce GDT_ENTRY_INIT()

GDT_ENTRY_INIT is static initializer of desc_struct.

We already have similar macro GDT_ENTRY() but it's static
initializer for u64 and it cannot be used for desc_struct.

Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
LKML-Reference: <20090718151219.GD11294@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>


OK, I spotted the following error, which certainly would explain a crash on an APM machine:

/* data */
- [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } },
+ [GDT_ENTRY_APMBIOS_BASE+2] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),

Also, we shouldn't be initializing the A bits to clear unless we actually plan to check the A (and D) bits... that's just a waste of CPU cycles.

-hpa


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