提交 b8a0b6cc 编写于 作者: L Linus Torvalds

Merge branch 'x86-fixes-for-linus' of...

Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  xen: fix address truncation in pte mfn<->pfn conversion
  arch/x86/mm/init_64.c: early_memtest(): fix types
  x86: fix Intel Mac booting with EFI
...@@ -49,13 +49,13 @@ void efi_call_phys_prelog(void) ...@@ -49,13 +49,13 @@ void efi_call_phys_prelog(void)
local_irq_save(efi_rt_eflags); local_irq_save(efi_rt_eflags);
/* /*
* If I don't have PSE, I should just duplicate two entries in page * If I don't have PAE, I should just duplicate two entries in page
* directory. If I have PSE, I just need to duplicate one entry in * directory. If I have PAE, I just need to duplicate one entry in
* page directory. * page directory.
*/ */
cr4 = read_cr4(); cr4 = read_cr4();
if (cr4 & X86_CR4_PSE) { if (cr4 & X86_CR4_PAE) {
efi_bak_pg_dir_pointer[0].pgd = efi_bak_pg_dir_pointer[0].pgd =
swapper_pg_dir[pgd_index(0)].pgd; swapper_pg_dir[pgd_index(0)].pgd;
swapper_pg_dir[0].pgd = swapper_pg_dir[0].pgd =
...@@ -93,7 +93,7 @@ void efi_call_phys_epilog(void) ...@@ -93,7 +93,7 @@ void efi_call_phys_epilog(void)
cr4 = read_cr4(); cr4 = read_cr4();
if (cr4 & X86_CR4_PSE) { if (cr4 & X86_CR4_PAE) {
swapper_pg_dir[pgd_index(0)].pgd = swapper_pg_dir[pgd_index(0)].pgd =
efi_bak_pg_dir_pointer[0].pgd; efi_bak_pg_dir_pointer[0].pgd;
} else { } else {
......
...@@ -506,7 +506,7 @@ early_param("memtest", parse_memtest); ...@@ -506,7 +506,7 @@ early_param("memtest", parse_memtest);
static void __init early_memtest(unsigned long start, unsigned long end) static void __init early_memtest(unsigned long start, unsigned long end)
{ {
unsigned long t_start, t_size; u64 t_start, t_size;
unsigned pattern; unsigned pattern;
if (!memtest_pattern) if (!memtest_pattern)
...@@ -525,8 +525,9 @@ static void __init early_memtest(unsigned long start, unsigned long end) ...@@ -525,8 +525,9 @@ static void __init early_memtest(unsigned long start, unsigned long end)
if (t_start + t_size > end) if (t_start + t_size > end)
t_size = end - t_start; t_size = end - t_start;
printk(KERN_CONT "\n %016lx - %016lx pattern %d", printk(KERN_CONT "\n %016llx - %016llx pattern %d",
t_start, t_start + t_size, pattern); (unsigned long long)t_start,
(unsigned long long)t_start + t_size, pattern);
memtest(t_start, t_size, pattern); memtest(t_start, t_size, pattern);
......
...@@ -185,7 +185,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val) ...@@ -185,7 +185,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
if (val & _PAGE_PRESENT) { if (val & _PAGE_PRESENT) {
unsigned long mfn = (val & PTE_MASK) >> PAGE_SHIFT; unsigned long mfn = (val & PTE_MASK) >> PAGE_SHIFT;
pteval_t flags = val & ~PTE_MASK; pteval_t flags = val & ~PTE_MASK;
val = (mfn_to_pfn(mfn) << PAGE_SHIFT) | flags; val = ((pteval_t)mfn_to_pfn(mfn) << PAGE_SHIFT) | flags;
} }
return val; return val;
...@@ -196,7 +196,7 @@ static pteval_t pte_pfn_to_mfn(pteval_t val) ...@@ -196,7 +196,7 @@ static pteval_t pte_pfn_to_mfn(pteval_t val)
if (val & _PAGE_PRESENT) { if (val & _PAGE_PRESENT) {
unsigned long pfn = (val & PTE_MASK) >> PAGE_SHIFT; unsigned long pfn = (val & PTE_MASK) >> PAGE_SHIFT;
pteval_t flags = val & ~PTE_MASK; pteval_t flags = val & ~PTE_MASK;
val = (pfn_to_mfn(pfn) << PAGE_SHIFT) | flags; val = ((pteval_t)pfn_to_mfn(pfn) << PAGE_SHIFT) | flags;
} }
return val; return val;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册