Merge branches 'x86-fixes-for-linus' and 'irq-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: x86, reboot: Fix relocations in reboot_32.S x86, NUMA: Fix empty memblk detection in numa_cleanup_meminfo() x86, AMD: Fix APIC timer erratum 400 affecting K8 Rev.A-E processors * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: genirq: Fix typo CONFIG_GENIRC_IRQ_SHOW_LEVEL
This commit is contained in:
Коммит
bab0dcc717
|
@ -698,7 +698,7 @@ cpu_dev_register(amd_cpu_dev);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const int amd_erratum_400[] =
|
const int amd_erratum_400[] =
|
||||||
AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf),
|
AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0x0f, 0x4, 0x2, 0xff, 0xf),
|
||||||
AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf));
|
AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf));
|
||||||
EXPORT_SYMBOL_GPL(amd_erratum_400);
|
EXPORT_SYMBOL_GPL(amd_erratum_400);
|
||||||
|
|
||||||
|
|
|
@ -21,26 +21,26 @@ r_base = .
|
||||||
/* Get our own relocated address */
|
/* Get our own relocated address */
|
||||||
call 1f
|
call 1f
|
||||||
1: popl %ebx
|
1: popl %ebx
|
||||||
subl $1b, %ebx
|
subl $(1b - r_base), %ebx
|
||||||
|
|
||||||
/* Compute the equivalent real-mode segment */
|
/* Compute the equivalent real-mode segment */
|
||||||
movl %ebx, %ecx
|
movl %ebx, %ecx
|
||||||
shrl $4, %ecx
|
shrl $4, %ecx
|
||||||
|
|
||||||
/* Patch post-real-mode segment jump */
|
/* Patch post-real-mode segment jump */
|
||||||
movw dispatch_table(%ebx,%eax,2),%ax
|
movw (dispatch_table - r_base)(%ebx,%eax,2),%ax
|
||||||
movw %ax, 101f(%ebx)
|
movw %ax, (101f - r_base)(%ebx)
|
||||||
movw %cx, 102f(%ebx)
|
movw %cx, (102f - r_base)(%ebx)
|
||||||
|
|
||||||
/* Set up the IDT for real mode. */
|
/* Set up the IDT for real mode. */
|
||||||
lidtl machine_real_restart_idt(%ebx)
|
lidtl (machine_real_restart_idt - r_base)(%ebx)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up a GDT from which we can load segment descriptors for real
|
* Set up a GDT from which we can load segment descriptors for real
|
||||||
* mode. The GDT is not used in real mode; it is just needed here to
|
* mode. The GDT is not used in real mode; it is just needed here to
|
||||||
* prepare the descriptors.
|
* prepare the descriptors.
|
||||||
*/
|
*/
|
||||||
lgdtl machine_real_restart_gdt(%ebx)
|
lgdtl (machine_real_restart_gdt - r_base)(%ebx)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Load the data segment registers with 16-bit compatible values
|
* Load the data segment registers with 16-bit compatible values
|
||||||
|
|
|
@ -306,7 +306,7 @@ int __init numa_cleanup_meminfo(struct numa_meminfo *mi)
|
||||||
bi->end = min(bi->end, high);
|
bi->end = min(bi->end, high);
|
||||||
|
|
||||||
/* and there's no empty block */
|
/* and there's no empty block */
|
||||||
if (bi->start == bi->end) {
|
if (bi->start >= bi->end) {
|
||||||
numa_remove_memblk_from(i--, mi);
|
numa_remove_memblk_from(i--, mi);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,7 +419,7 @@ int show_interrupts(struct seq_file *p, void *v)
|
||||||
} else {
|
} else {
|
||||||
seq_printf(p, " %8s", "None");
|
seq_printf(p, " %8s", "None");
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_GENIRC_IRQ_SHOW_LEVEL
|
#ifdef CONFIG_GENERIC_IRQ_SHOW_LEVEL
|
||||||
seq_printf(p, " %-8s", irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge");
|
seq_printf(p, " %-8s", irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge");
|
||||||
#endif
|
#endif
|
||||||
if (desc->name)
|
if (desc->name)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче