You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branches 'x86-fixes-for-linus', 'sched-fixes-for-linus', 'timers-fixes-for-linus', 'irq-fixes-for-linus' and 'perf-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-32, fpu: Fix FPU exception handling on non-SSE systems x86, hibernate: Initialize mmu_cr4_features during boot x86-32, NUMA: Fix ACPI NUMA init broken by recent x86-64 change x86: visws: Fixup irq overhaul fallout * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: Clean up rebalance_domains() load-balance interval calculation * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86/mrst/vrtc: Fix boot crash in mrst_rtc_init() rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: genirq: Fix cpumask leak in __setup_irq() * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf probe: Fix listing incorrect line number with inline function perf probe: Fix to find recursively inlined function perf probe: Fix multiple --vars options behavior perf probe: Fix to remove redundant close perf probe: Fix to ensure function declared file
This commit is contained in:
@@ -237,7 +237,7 @@ static inline void fpu_save_init(struct fpu *fpu)
|
||||
} else if (use_fxsr()) {
|
||||
fpu_fxsave(fpu);
|
||||
} else {
|
||||
asm volatile("fsave %[fx]; fwait"
|
||||
asm volatile("fnsave %[fx]; fwait"
|
||||
: [fx] "=m" (fpu->state->fsave));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -976,6 +976,11 @@ void __init setup_arch(char **cmdline_p)
|
||||
paging_init();
|
||||
x86_init.paging.pagetable_setup_done(swapper_pg_dir);
|
||||
|
||||
if (boot_cpu_data.cpuid_level >= 0) {
|
||||
/* A CPU has %cr4 if and only if it has CPUID */
|
||||
mmu_cr4_features = read_cr4();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/* sync back kernel address range */
|
||||
clone_pgd_range(initial_page_table + KERNEL_PGD_BOUNDARY,
|
||||
|
||||
@@ -211,10 +211,12 @@ int __init get_memcfg_from_srat(void)
|
||||
{
|
||||
int i, j, nid;
|
||||
|
||||
|
||||
if (srat_disabled())
|
||||
goto out_fail;
|
||||
|
||||
if (acpi_numa_init() < 0)
|
||||
goto out_fail;
|
||||
|
||||
if (num_memory_chunks == 0) {
|
||||
printk(KERN_DEBUG
|
||||
"could not find any ACPI SRAT memory areas.\n");
|
||||
|
||||
@@ -100,9 +100,11 @@ int vrtc_set_mmss(unsigned long nowtime)
|
||||
|
||||
void __init mrst_rtc_init(void)
|
||||
{
|
||||
unsigned long vrtc_paddr = sfi_mrtc_array[0].phys_addr;
|
||||
unsigned long vrtc_paddr;
|
||||
|
||||
sfi_table_parse(SFI_SIG_MRTC, NULL, NULL, sfi_parse_mrtc);
|
||||
|
||||
vrtc_paddr = sfi_mrtc_array[0].phys_addr;
|
||||
if (!sfi_mrtc_num || !vrtc_paddr)
|
||||
return;
|
||||
|
||||
|
||||
@@ -471,15 +471,7 @@ static unsigned int startup_piix4_master_irq(struct irq_data *data)
|
||||
{
|
||||
legacy_pic->init(0);
|
||||
enable_cobalt_irq(data);
|
||||
}
|
||||
|
||||
static void end_piix4_master_irq(struct irq_data *data)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&cobalt_lock, flags);
|
||||
enable_cobalt_irq(data);
|
||||
spin_unlock_irqrestore(&cobalt_lock, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct irq_chip piix4_master_irq_type = {
|
||||
@@ -492,7 +484,7 @@ static void pii4_mask(struct irq_data *data) { }
|
||||
|
||||
static struct irq_chip piix4_virtual_irq_type = {
|
||||
.name = "PIIX4-virtual",
|
||||
.mask = pii4_mask,
|
||||
.irq_mask = pii4_mask,
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -580,9 +572,9 @@ static struct irqaction cascade_action = {
|
||||
|
||||
static inline void set_piix4_virtual_irq_type(void)
|
||||
{
|
||||
piix4_virtual_irq_type.enable = i8259A_chip.unmask;
|
||||
piix4_virtual_irq_type.disable = i8259A_chip.mask;
|
||||
piix4_virtual_irq_type.unmask = i8259A_chip.unmask;
|
||||
piix4_virtual_irq_type.irq_enable = i8259A_chip.irq_unmask;
|
||||
piix4_virtual_irq_type.irq_disable = i8259A_chip.irq_mask;
|
||||
piix4_virtual_irq_type.irq_unmask = i8259A_chip.irq_unmask;
|
||||
}
|
||||
|
||||
static void __init visws_pre_intr_init(void)
|
||||
@@ -599,7 +591,7 @@ static void __init visws_pre_intr_init(void)
|
||||
else if (i == CO_IRQ_IDE0)
|
||||
chip = &cobalt_irq_type;
|
||||
else if (i == CO_IRQ_IDE1)
|
||||
>chip = &cobalt_irq_type;
|
||||
chip = &cobalt_irq_type;
|
||||
else if (i == CO_IRQ_8259)
|
||||
chip = &piix4_master_irq_type;
|
||||
else if (i < CO_IRQ_APIC0)
|
||||
|
||||
Reference in New Issue
Block a user