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

Commit b4db920c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branches 'x86-detect-hyper-for-linus', 'x86-fpu-for-linus',...

Merge branches 'x86-detect-hyper-for-linus', 'x86-fpu-for-linus', 'x86-kexec-for-linus', 'x86-platform-for-linus', 'x86-quirks-for-linus', 'x86-tsc-for-linus' and 'x86-smpboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-detect-hyper-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, hyper: Change hypervisor detection order

* 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86-32, fpu: Fix DNA exception during check_fpu()

* 'x86-kexec-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  kexec, x86: Fix incorrect jump back address if not preserving context

* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, config: Introduce an INTEL_MID configuration

* 'x86-quirks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, quirks: Use pci_dev->revision

* 'x86-tsc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: tsc: Remove unneeded DMI-based blacklisting

* 'x86-smpboot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, boot: Wait for boot cpu to show up if nr_cpus limit is about to hit
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -390,12 +390,21 @@ config X86_INTEL_CE
	  This option compiles in support for the CE4100 SOC for settop
	  This option compiles in support for the CE4100 SOC for settop
	  boxes and media devices.
	  boxes and media devices.


config X86_INTEL_MID
	bool "Intel MID platform support"
	depends on X86_32
	depends on X86_EXTENDED_PLATFORM
	---help---
	  Select to build a kernel capable of supporting Intel MID platform
	  systems which do not have the PCI legacy interfaces (Moorestown,
	  Medfield). If you are building for a PC class system say N here.

if X86_INTEL_MID

config X86_MRST
config X86_MRST
       bool "Moorestown MID platform"
       bool "Moorestown MID platform"
	depends on PCI
	depends on PCI
	depends on PCI_GOANY
	depends on PCI_GOANY
	depends on X86_32
	depends on X86_EXTENDED_PLATFORM
	depends on X86_IO_APIC
	depends on X86_IO_APIC
	select APB_TIMER
	select APB_TIMER
	select I2C
	select I2C
@@ -410,6 +419,8 @@ config X86_MRST
	  nor standard legacy replacement devices/features. e.g. Moorestown does
	  nor standard legacy replacement devices/features. e.g. Moorestown does
	  not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
	  not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.


endif

config X86_RDC321X
config X86_RDC321X
	bool "RDC R-321x SoC"
	bool "RDC R-321x SoC"
	depends on X86_32
	depends on X86_32
+20 −2
Original line number Original line Diff line number Diff line
@@ -1944,10 +1944,28 @@ void disconnect_bsp_APIC(int virt_wire_setup)


void __cpuinit generic_processor_info(int apicid, int version)
void __cpuinit generic_processor_info(int apicid, int version)
{
{
	int cpu;
	int cpu, max = nr_cpu_ids;
	bool boot_cpu_detected = physid_isset(boot_cpu_physical_apicid,
				phys_cpu_present_map);

	/*
	 * If boot cpu has not been detected yet, then only allow upto
	 * nr_cpu_ids - 1 processors and keep one slot free for boot cpu
	 */
	if (!boot_cpu_detected && num_processors >= nr_cpu_ids - 1 &&
	    apicid != boot_cpu_physical_apicid) {
		int thiscpu = max + disabled_cpus - 1;

		pr_warning(
			"ACPI: NR_CPUS/possible_cpus limit of %i almost"
			" reached. Keeping one slot for boot cpu."
			"  Processor %d/0x%x ignored.\n", max, thiscpu, apicid);

		disabled_cpus++;
		return;
	}


	if (num_processors >= nr_cpu_ids) {
	if (num_processors >= nr_cpu_ids) {
		int max = nr_cpu_ids;
		int thiscpu = max + disabled_cpus;
		int thiscpu = max + disabled_cpus;


		pr_warning(
		pr_warning(
+4 −0
Original line number Original line Diff line number Diff line
@@ -62,6 +62,8 @@ static void __init check_fpu(void)
		return;
		return;
	}
	}


	kernel_fpu_begin();

	/*
	/*
	 * trap_init() enabled FXSR and company _before_ testing for FP
	 * trap_init() enabled FXSR and company _before_ testing for FP
	 * problems here.
	 * problems here.
@@ -80,6 +82,8 @@ static void __init check_fpu(void)
		: "=m" (*&fdiv_bug)
		: "=m" (*&fdiv_bug)
		: "m" (*&x), "m" (*&y));
		: "m" (*&x), "m" (*&y));


	kernel_fpu_end();

	boot_cpu_data.fdiv_bug = fdiv_bug;
	boot_cpu_data.fdiv_bug = fdiv_bug;
	if (boot_cpu_data.fdiv_bug)
	if (boot_cpu_data.fdiv_bug)
		printk(KERN_WARNING "Hmm, FPU with FDIV bug.\n");
		printk(KERN_WARNING "Hmm, FPU with FDIV bug.\n");
+2 −2
Original line number Original line Diff line number Diff line
@@ -32,11 +32,11 @@
 */
 */
static const __initconst struct hypervisor_x86 * const hypervisors[] =
static const __initconst struct hypervisor_x86 * const hypervisors[] =
{
{
	&x86_hyper_vmware,
	&x86_hyper_ms_hyperv,
#ifdef CONFIG_XEN_PVHVM
#ifdef CONFIG_XEN_PVHVM
	&x86_hyper_xen_hvm,
	&x86_hyper_xen_hvm,
#endif
#endif
	&x86_hyper_vmware,
	&x86_hyper_ms_hyperv,
};
};


const struct hypervisor_x86 *x86_hyper;
const struct hypervisor_x86 *x86_hyper;
+2 −3
Original line number Original line Diff line number Diff line
@@ -10,7 +10,7 @@


static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
{
{
	u8 config, rev;
	u8 config;
	u16 word;
	u16 word;


	/* BIOS may enable hardware IRQ balancing for
	/* BIOS may enable hardware IRQ balancing for
@@ -18,8 +18,7 @@ static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
	 * based platforms.
	 * based platforms.
	 * Disable SW irqbalance/affinity on those platforms.
	 * Disable SW irqbalance/affinity on those platforms.
	 */
	 */
	pci_read_config_byte(dev, PCI_CLASS_REVISION, &rev);
	if (dev->revision > 0x9)
	if (rev > 0x9)
		return;
		return;


	/* enable access to config space*/
	/* enable access to config space*/
Loading