aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Korty <[email protected]>2008-06-02 17:21:06 -0400
committerIngo Molnar <[email protected]>2008-06-12 21:26:12 +0200
commit86b2b70e156203149c3861455feec54bc4906e6d (patch)
tree4f355603c1f4febbb3a3d7d93b6ba20e9d3cc456
parentb29c701deacd5d24453127c37ed77ef851c53b8b (diff)
x86: fix asm warning in head_32.S
On Mon, May 19, 2008 at 04:10:02PM -0700, Linus Torvalds wrote: > It also causes these warnings on 32-bit PAE: > > AS arch/x86/kernel/head_32.o > arch/x86/kernel/head_32.S: Assembler messages: > arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed > arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed > > and I do not see why (the end result seems to be identical). Fix head_32.S gcc bignum warnings when CONFIG_PAE=y. arch/x86/kernel/head_32.S: Assembler messages: arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed The assembler was stumbling over the 64-bit constant 0x100000000 in the KPMDS #define. Testing: a cmp(1) on head_32.o before and after shows the binary is unchanged. Signed-off-by: Joe Korty <[email protected] Cc: Hugh Dickins <[email protected]> Cc: Theodore Tso <[email protected]> Cc: Gabriel C <[email protected]> Cc: Keith Packard <[email protected]> Cc: "Pallipadi Venkatesh" <[email protected]> Cc: Eric Anholt <[email protected]> Cc: "Siddha Suresh B" <[email protected]> Cc: [email protected] Cc: [email protected] Cc: "Barnes Jesse" <[email protected]> Cc: Jeremy Fitzhardinge <[email protected]> Cc: Andrew Morton <[email protected]> Cc: "Rafael J. Wysocki" <[email protected]> Cc: Linus Torvalds <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
-rw-r--r--arch/x86/kernel/head_32.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index b2cc73768a9d..f7357cc0162c 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -189,7 +189,7 @@ default_entry:
* this stage.
*/
-#define KPMDS ((0x100000000-__PAGE_OFFSET) >> 30) /* Number of kernel PMDs */
+#define KPMDS (((-__PAGE_OFFSET) >> 30) & 3) /* Number of kernel PMDs */
xorl %ebx,%ebx /* %ebx is kept at zero */