x86: Correct address casts in interrupt code
authorSimon Glass <sjg@chromium.org>
Mon, 26 Sep 2016 03:33:25 +0000 (21:33 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 11 Oct 2016 03:55:33 +0000 (11:55 +0800)
We should cast an address to unsigned long, not u32.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/interrupts.c

index 46babe00fac017274b297ac3a02b2091465ed85c..5f6cdd36ac1f208615213d20b8020cc1788c3175 100644 (file)
@@ -182,8 +182,8 @@ static inline void load_idt(const struct desc_ptr *dtr)
 
 void set_vector(u8 intnum, void *routine)
 {
-       idt[intnum].base_high = (u16)((u32)(routine) >> 16);
-       idt[intnum].base_low = (u16)((u32)(routine) & 0xffff);
+       idt[intnum].base_high = (u16)((ulong)(routine) >> 16);
+       idt[intnum].base_low = (u16)((ulong)(routine) & 0xffff);
 }
 
 /*