Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b820a8c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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:
  x86, hpet: Stop soliciting hpet=force users on ICH4M
  x86: check boundary in setup_node_bootmem()
  uv_time: add parameter to uv_read_rtc()
  x86: hpet: fix periodic mode programming on AMD 81xx
  x86: more than 8 32-bit CPUs requires X86_BIGSMP
  x86: avoid theoretical spurious NMI backtraces with CONFIG_CPUMASK_OFFSTACK=y
  x86: fix boot crash in NMI watchdog with CONFIG_CPUMASK_OFFSTACK=y and flat APIC
  x86-64: fix FPU corruption with signals and preemption
  x86/uv: fix for no memory at paddr 0
  docs, x86: add nox2apic back to kernel-parameters.txt
  x86: mm/numa_32.c calculate_numa_remap_pages should use __init
  x86, kbuild: make "make install" not depend on vmlinux
  x86/uv: fix init of cpu-less nodes
  x86/uv: fix init of memory-less nodes
parents fc2e3180 d2c86041
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1620,6 +1620,8 @@ and is between 256 and 4096 characters. It is defined in the file

	nowb		[ARM]

	nox2apic	[X86-64,APIC] Do not enable x2APIC mode.

	nptcg=		[IA64] Override max number of concurrent global TLB
			purges which is reported from either PAL_VM_SUMMARY or
			SAL PALO.
+1 −0
Original line number Diff line number Diff line
@@ -665,6 +665,7 @@ config MAXSMP

config NR_CPUS
	int "Maximum number of CPUs" if SMP && !MAXSMP
	range 2 8 if SMP && X86_32 && !X86_BIGSMP
	range 2 512 if SMP && !MAXSMP
	default "1" if !SMP
	default "4096" if MAXSMP
+5 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ endif

boot := arch/x86/boot

BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage install
BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage

PHONY += bzImage $(BOOT_TARGETS)

@@ -171,6 +171,10 @@ bzImage: vmlinux
$(BOOT_TARGETS): vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $@

PHONY += install
install:
	$(Q)$(MAKE) $(build)=$(boot) $@

PHONY += vdso_install
vdso_install:
	$(Q)$(MAKE) $(build)=arch/x86/vdso $@
+3 −2
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ int __init check_nmi_watchdog(void)
	if (!prev_nmi_count)
		goto error;

	alloc_cpumask_var(&backtrace_mask, GFP_KERNEL);
	alloc_cpumask_var(&backtrace_mask, GFP_KERNEL|__GFP_ZERO);
	printk(KERN_INFO "Testing NMI watchdog ... ");

#ifdef CONFIG_SMP
@@ -414,7 +414,8 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
		touched = 1;
	}

	if (cpumask_test_cpu(cpu, backtrace_mask)) {
	/* We can be called before check_nmi_watchdog, hence NULL check. */
	if (backtrace_mask != NULL && cpumask_test_cpu(cpu, backtrace_mask)) {
		static DEFINE_SPINLOCK(lock);	/* Serialise the printks */

		spin_lock(&lock);
+15 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/timer.h>
#include <linux/cpu.h>
#include <linux/init.h>
#include <linux/io.h>

#include <asm/uv/uv_mmrs.h>
#include <asm/uv/uv_hub.h>
@@ -34,6 +35,17 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);

static enum uv_system_type uv_system_type;

static int early_get_nodeid(void)
{
	union uvh_node_id_u node_id;
	unsigned long *mmr;

	mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr));
	node_id.v = *mmr;
	early_iounmap(mmr, sizeof(*mmr));
	return node_id.s.node_id;
}

static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
	if (!strcmp(oem_id, "SGI")) {
@@ -42,6 +54,8 @@ static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
		else if (!strcmp(oem_table_id, "UVX"))
			uv_system_type = UV_X2APIC;
		else if (!strcmp(oem_table_id, "UVH")) {
			__get_cpu_var(x2apic_extra_bits) =
				early_get_nodeid() << (UV_APIC_PNODE_SHIFT - 1);
			uv_system_type = UV_NON_UNIQUE_APIC;
			return 1;
		}
@@ -638,6 +652,7 @@ void __init uv_system_init(void)
		if (uv_node_to_blade[nid] >= 0)
			continue;
		paddr = node_start_pfn(nid) << PAGE_SHIFT;
		paddr = uv_soc_phys_ram_to_gpa(paddr);
		pnode = (paddr >> m_val) & pnode_mask;
		blade = boot_pnode_to_blade(pnode);
		uv_node_to_blade[nid] = blade;
Loading