diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-06 12:19:38 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-06 12:19:38 -0700 | 
| commit | 18b15fcde715a5512671af9d72a76e7f6d7cb6f0 (patch) | |
| tree | 073ca0c45f48abae1809e86efc06e22e7528f0e7 /arch | |
| parent | 271fd5d7286eb931142402c170943d14640bb922 (diff) | |
| parent | ab27a20e6212cd1d96d813352b47e1fc1cfd01db (diff) | |
| download | olio-linux-3.10-18b15fcde715a5512671af9d72a76e7f6d7cb6f0.tar.xz olio-linux-3.10-18b15fcde715a5512671af9d72a76e7f6d7cb6f0.zip  | |
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes form Peter Anvin
* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  intel_mid_powerbtn: mark irq as IRQF_NO_SUSPEND
  arch/x86/platform/geode/net5501.c: change active_low to 0 for LED driver
  x86, relocs: Remove an unused variable
  asm-generic: Use __BITS_PER_LONG in statfs.h
  x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/boot/compressed/relocs.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/amd.c | 18 | ||||
| -rw-r--r-- | arch/x86/platform/geode/net5501.c | 2 | 
3 files changed, 19 insertions, 3 deletions
diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c index d3c0b027766..fb7117a4ade 100644 --- a/arch/x86/boot/compressed/relocs.c +++ b/arch/x86/boot/compressed/relocs.c @@ -403,13 +403,11 @@ static void print_absolute_symbols(void)  	for (i = 0; i < ehdr.e_shnum; i++) {  		struct section *sec = &secs[i];  		char *sym_strtab; -		Elf32_Sym *sh_symtab;  		int j;  		if (sec->shdr.sh_type != SHT_SYMTAB) {  			continue;  		} -		sh_symtab = sec->symtab;  		sym_strtab = sec->link->strtab;  		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {  			Elf32_Sym *sym; diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 1c67ca100e4..146bb6218ee 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -580,6 +580,24 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)  		}  	} +	/* re-enable TopologyExtensions if switched off by BIOS */ +	if ((c->x86 == 0x15) && +	    (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) && +	    !cpu_has(c, X86_FEATURE_TOPOEXT)) { +		u64 val; + +		if (!rdmsrl_amd_safe(0xc0011005, &val)) { +			val |= 1ULL << 54; +			wrmsrl_amd_safe(0xc0011005, val); +			rdmsrl(0xc0011005, val); +			if (val & (1ULL << 54)) { +				set_cpu_cap(c, X86_FEATURE_TOPOEXT); +				printk(KERN_INFO FW_INFO "CPU: Re-enabling " +				  "disabled Topology Extensions Support\n"); +			} +		} +	} +  	cpu_detect_cache_sizes(c);  	/* Multi core CPU? */ diff --git a/arch/x86/platform/geode/net5501.c b/arch/x86/platform/geode/net5501.c index 66d377e334f..646e3b5b4bb 100644 --- a/arch/x86/platform/geode/net5501.c +++ b/arch/x86/platform/geode/net5501.c @@ -63,7 +63,7 @@ static struct gpio_led net5501_leds[] = {  		.name = "net5501:1",  		.gpio = 6,  		.default_trigger = "default-on", -		.active_low = 1, +		.active_low = 0,  	},  };  |