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

Commit ef0e9180 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, cacheinfo: Turn off L3 cache index disable feature in virtualized environments
  x86, k8: Fix build error when K8_NB is disabled
  x86, amd: Check X86_FEATURE_OSVW bit before accessing OSVW MSRs
  x86: Fix fake apicid to node mapping for numa emulation
parents 4fc4c3ce 7f284d3c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -16,11 +16,16 @@ extern int k8_numa_init(unsigned long start_pfn, unsigned long end_pfn);
extern int k8_scan_nodes(void);

#ifdef CONFIG_K8_NB
extern int num_k8_northbridges;

static inline struct pci_dev *node_to_k8_nb_misc(int node)
{
	return (node < num_k8_northbridges) ? k8_northbridges[node] : NULL;
}

#else
#define num_k8_northbridges 0

static inline struct pci_dev *node_to_k8_nb_misc(int node)
{
	return NULL;
+4 −0
Original line number Diff line number Diff line
@@ -340,6 +340,10 @@ amd_check_l3_disable(int index, struct _cpuid4_info_regs *this_leaf)
	     (boot_cpu_data.x86_mask  < 0x1)))
		return;

	/* not in virtualized environments */
	if (num_k8_northbridges == 0)
		return;

	this_leaf->can_disable = true;
	this_leaf->l3_indices  = amd_calc_l3_indices();
}
+7 −5
Original line number Diff line number Diff line
@@ -546,12 +546,14 @@ static int __cpuinit check_c1e_idle(const struct cpuinfo_x86 *c)
		 * check OSVW bit for CPUs that are not affected
		 * by erratum #400
		 */
		if (cpu_has(c, X86_FEATURE_OSVW)) {
			rdmsrl(MSR_AMD64_OSVW_ID_LENGTH, val);
			if (val >= 2) {
				rdmsrl(MSR_AMD64_OSVW_STATUS, val);
				if (!(val & BIT(1)))
					goto no_c1e_idle;
			}
		}
		return 1;
	}

+2 −1
Original line number Diff line number Diff line
@@ -461,7 +461,8 @@ void __init acpi_fake_nodes(const struct bootnode *fake_nodes, int num_nodes)
		 * node, it must now point to the fake node ID.
		 */
		for (j = 0; j < MAX_LOCAL_APIC; j++)
			if (apicid_to_node[j] == nid)
			if (apicid_to_node[j] == nid &&
			    fake_apicid_to_node[j] == NUMA_NO_NODE)
				fake_apicid_to_node[j] = i;
	}
	for (i = 0; i < num_nodes; i++)