mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
x86: convert cpuinfo_x86 array to a per_cpu array
cpu_data is currently an array defined using NR_CPUS. This means that we overallocate since we will rarely really use maximum configured cpus. When NR_CPU count is raised to 4096 the size of cpu_data becomes 3,145,728 bytes. These changes were adopted from the sparc64 (and ia64) code. An additional field was added to cpuinfo_x86 to be a non-ambiguous cpu index. This corresponds to the index into a cpumask_t as well as the per_cpu index. It's used in various places like show_cpuinfo(). cpu_data is defined to be the boot_cpu_data structure for the NON-SMP case. Signed-off-by: Mike Travis <[email protected]> Acked-by: Christoph Lameter <[email protected]> Cc: Andi Kleen <[email protected]> Cc: James Bottomley <[email protected]> Cc: Dmitry Torokhov <[email protected]> Cc: "Antonino A. Daplas" <[email protected]> Cc: Mark M. Hoffman <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
This commit is contained in:
parent
f1df280f53
commit
92cb7612ae
39 changed files with 148 additions and 128 deletions
|
|
@ -150,7 +150,7 @@ static struct coretemp_data *coretemp_update_device(struct device *dev)
|
|||
static int __devinit coretemp_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct coretemp_data *data;
|
||||
struct cpuinfo_x86 *c = &(cpu_data)[pdev->id];
|
||||
struct cpuinfo_x86 *c = &cpu_data(pdev->id);
|
||||
int err;
|
||||
u32 eax, edx;
|
||||
|
||||
|
|
@ -359,7 +359,7 @@ static int __init coretemp_init(void)
|
|||
struct pdev_entry *p, *n;
|
||||
|
||||
/* quick check if we run Intel */
|
||||
if (cpu_data[0].x86_vendor != X86_VENDOR_INTEL)
|
||||
if (cpu_data(0).x86_vendor != X86_VENDOR_INTEL)
|
||||
goto exit;
|
||||
|
||||
err = platform_driver_register(&coretemp_driver);
|
||||
|
|
@ -367,7 +367,7 @@ static int __init coretemp_init(void)
|
|||
goto exit;
|
||||
|
||||
for_each_online_cpu(i) {
|
||||
struct cpuinfo_x86 *c = &(cpu_data)[i];
|
||||
struct cpuinfo_x86 *c = &cpu_data(i);
|
||||
|
||||
/* check if family 6, models e, f, 16 */
|
||||
if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ static u8 find_vrm(u8 eff_family, u8 eff_model, u8 eff_stepping, u8 vendor)
|
|||
|
||||
u8 vid_which_vrm(void)
|
||||
{
|
||||
struct cpuinfo_x86 *c = cpu_data;
|
||||
struct cpuinfo_x86 *c = &cpu_data(0);
|
||||
u32 eax;
|
||||
u8 eff_family, eff_model, eff_stepping, vrm_ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue