diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/i386/kernel/Makefile | 1 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k7.c | 36 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k8.h | 4 | ||||
| -rw-r--r-- | arch/i386/kernel/smp.c | 65 | ||||
| -rw-r--r-- | arch/i386/kernel/smpboot.c | 22 | ||||
| -rw-r--r-- | arch/i386/kernel/smpcommon.c | 79 | ||||
| -rw-r--r-- | arch/i386/kernel/traps.c | 5 | ||||
| -rw-r--r-- | arch/i386/mach-voyager/voyager_smp.c | 106 | ||||
| -rw-r--r-- | arch/i386/mm/discontig.c | 9 | ||||
| -rw-r--r-- | arch/m68k/lib/uaccess.c | 4 | ||||
| -rw-r--r-- | arch/sparc/defconfig | 151 | ||||
| -rw-r--r-- | arch/sparc/kernel/head.S | 2 | ||||
| -rw-r--r-- | arch/sparc64/defconfig | 26 | ||||
| -rw-r--r-- | arch/sparc64/kernel/of_device.c | 7 | ||||
| -rw-r--r-- | arch/sparc64/kernel/smp.c | 3 | ||||
| -rw-r--r-- | arch/x86_64/kernel/traps.c | 3 |
17 files changed, 264 insertions, 261 deletions
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile index 91cff8dc9e1a..06da59f6f837 100644 --- a/arch/i386/kernel/Makefile +++ b/arch/i386/kernel/Makefile | |||
| @@ -19,6 +19,7 @@ obj-$(CONFIG_X86_CPUID) += cpuid.o | |||
| 19 | obj-$(CONFIG_MICROCODE) += microcode.o | 19 | obj-$(CONFIG_MICROCODE) += microcode.o |
| 20 | obj-$(CONFIG_APM) += apm.o | 20 | obj-$(CONFIG_APM) += apm.o |
| 21 | obj-$(CONFIG_X86_SMP) += smp.o smpboot.o tsc_sync.o | 21 | obj-$(CONFIG_X86_SMP) += smp.o smpboot.o tsc_sync.o |
| 22 | obj-$(CONFIG_SMP) += smpcommon.o | ||
| 22 | obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o | 23 | obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o |
| 23 | obj-$(CONFIG_X86_MPPARSE) += mpparse.o | 24 | obj-$(CONFIG_X86_MPPARSE) += mpparse.o |
| 24 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o | 25 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o |
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c index 837b04166a47..ca3e1d341889 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c | |||
| @@ -341,15 +341,17 @@ static int powernow_acpi_init(void) | |||
| 341 | pc.val = (unsigned long) acpi_processor_perf->states[0].control; | 341 | pc.val = (unsigned long) acpi_processor_perf->states[0].control; |
| 342 | for (i = 0; i < number_scales; i++) { | 342 | for (i = 0; i < number_scales; i++) { |
| 343 | u8 fid, vid; | 343 | u8 fid, vid; |
| 344 | unsigned int speed; | 344 | struct acpi_processor_px *state = |
| 345 | &acpi_processor_perf->states[i]; | ||
| 346 | unsigned int speed, speed_mhz; | ||
| 345 | 347 | ||
| 346 | pc.val = (unsigned long) acpi_processor_perf->states[i].control; | 348 | pc.val = (unsigned long) state->control; |
| 347 | dprintk ("acpi: P%d: %d MHz %d mW %d uS control %08x SGTC %d\n", | 349 | dprintk ("acpi: P%d: %d MHz %d mW %d uS control %08x SGTC %d\n", |
| 348 | i, | 350 | i, |
| 349 | (u32) acpi_processor_perf->states[i].core_frequency, | 351 | (u32) state->core_frequency, |
| 350 | (u32) acpi_processor_perf->states[i].power, | 352 | (u32) state->power, |
| 351 | (u32) acpi_processor_perf->states[i].transition_latency, | 353 | (u32) state->transition_latency, |
| 352 | (u32) acpi_processor_perf->states[i].control, | 354 | (u32) state->control, |
| 353 | pc.bits.sgtc); | 355 | pc.bits.sgtc); |
| 354 | 356 | ||
| 355 | vid = pc.bits.vid; | 357 | vid = pc.bits.vid; |
| @@ -360,6 +362,18 @@ static int powernow_acpi_init(void) | |||
| 360 | powernow_table[i].index |= (vid << 8); /* upper 8 bits */ | 362 | powernow_table[i].index |= (vid << 8); /* upper 8 bits */ |
| 361 | 363 | ||
| 362 | speed = powernow_table[i].frequency; | 364 | speed = powernow_table[i].frequency; |
| 365 | speed_mhz = speed / 1000; | ||
| 366 | |||
| 367 | /* processor_perflib will multiply the MHz value by 1000 to | ||
| 368 | * get a KHz value (e.g. 1266000). However, powernow-k7 works | ||
| 369 | * with true KHz values (e.g. 1266768). To ensure that all | ||
| 370 | * powernow frequencies are available, we must ensure that | ||
| 371 | * ACPI doesn't restrict them, so we round up the MHz value | ||
| 372 | * to ensure that perflib's computed KHz value is greater than | ||
| 373 | * or equal to powernow's KHz value. | ||
| 374 | */ | ||
| 375 | if (speed % 1000 > 0) | ||
| 376 | speed_mhz++; | ||
| 363 | 377 | ||
| 364 | if ((fid_codes[fid] % 10)==5) { | 378 | if ((fid_codes[fid] % 10)==5) { |
| 365 | if (have_a0 == 1) | 379 | if (have_a0 == 1) |
| @@ -368,10 +382,16 @@ static int powernow_acpi_init(void) | |||
| 368 | 382 | ||
| 369 | dprintk (" FID: 0x%x (%d.%dx [%dMHz]) " | 383 | dprintk (" FID: 0x%x (%d.%dx [%dMHz]) " |
| 370 | "VID: 0x%x (%d.%03dV)\n", fid, fid_codes[fid] / 10, | 384 | "VID: 0x%x (%d.%03dV)\n", fid, fid_codes[fid] / 10, |
| 371 | fid_codes[fid] % 10, speed/1000, vid, | 385 | fid_codes[fid] % 10, speed_mhz, vid, |
| 372 | mobile_vid_table[vid]/1000, | 386 | mobile_vid_table[vid]/1000, |
| 373 | mobile_vid_table[vid]%1000); | 387 | mobile_vid_table[vid]%1000); |
| 374 | 388 | ||
| 389 | if (state->core_frequency != speed_mhz) { | ||
| 390 | state->core_frequency = speed_mhz; | ||
| 391 | dprintk(" Corrected ACPI frequency to %d\n", | ||
| 392 | speed_mhz); | ||
| 393 | } | ||
| 394 | |||
| 375 | if (latency < pc.bits.sgtc) | 395 | if (latency < pc.bits.sgtc) |
| 376 | latency = pc.bits.sgtc; | 396 | latency = pc.bits.sgtc; |
| 377 | 397 | ||
| @@ -602,7 +622,7 @@ static int __init powernow_cpu_init (struct cpufreq_policy *policy) | |||
| 602 | result = powernow_acpi_init(); | 622 | result = powernow_acpi_init(); |
| 603 | if (result) { | 623 | if (result) { |
| 604 | printk (KERN_INFO PFX "ACPI and legacy methods failed\n"); | 624 | printk (KERN_INFO PFX "ACPI and legacy methods failed\n"); |
| 605 | printk (KERN_INFO PFX "See http://www.codemonkey.org.uk/projects/cpufreq/powernow-k7.shtml\n"); | 625 | printk (KERN_INFO PFX "See http://www.codemonkey.org.uk/projects/cpufreq/powernow-k7.html\n"); |
| 606 | } | 626 | } |
| 607 | } else { | 627 | } else { |
| 608 | /* SGTC use the bus clock as timer */ | 628 | /* SGTC use the bus clock as timer */ |
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c index 7cf3d207b6b3..4ade55c5f333 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c | |||
| @@ -521,7 +521,7 @@ static int check_supported_cpu(unsigned int cpu) | |||
| 521 | 521 | ||
| 522 | if ((eax & CPUID_XFAM) == CPUID_XFAM_K8) { | 522 | if ((eax & CPUID_XFAM) == CPUID_XFAM_K8) { |
| 523 | if (((eax & CPUID_USE_XFAM_XMOD) != CPUID_USE_XFAM_XMOD) || | 523 | if (((eax & CPUID_USE_XFAM_XMOD) != CPUID_USE_XFAM_XMOD) || |
| 524 | ((eax & CPUID_XMOD) > CPUID_XMOD_REV_G)) { | 524 | ((eax & CPUID_XMOD) > CPUID_XMOD_REV_MASK)) { |
| 525 | printk(KERN_INFO PFX "Processor cpuid %x not supported\n", eax); | 525 | printk(KERN_INFO PFX "Processor cpuid %x not supported\n", eax); |
| 526 | goto out; | 526 | goto out; |
| 527 | } | 527 | } |
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.h b/arch/i386/kernel/cpu/cpufreq/powernow-k8.h index 95be5013c984..b06c812208ca 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.h +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.h | |||
| @@ -46,8 +46,8 @@ struct powernow_k8_data { | |||
| 46 | #define CPUID_XFAM 0x0ff00000 /* extended family */ | 46 | #define CPUID_XFAM 0x0ff00000 /* extended family */ |
| 47 | #define CPUID_XFAM_K8 0 | 47 | #define CPUID_XFAM_K8 0 |
| 48 | #define CPUID_XMOD 0x000f0000 /* extended model */ | 48 | #define CPUID_XMOD 0x000f0000 /* extended model */ |
| 49 | #define CPUID_XMOD_REV_G 0x00060000 | 49 | #define CPUID_XMOD_REV_MASK 0x00080000 |
| 50 | #define CPUID_XFAM_10H 0x00100000 /* family 0x10 */ | 50 | #define CPUID_XFAM_10H 0x00100000 /* family 0x10 */ |
| 51 | #define CPUID_USE_XFAM_XMOD 0x00000f00 | 51 | #define CPUID_USE_XFAM_XMOD 0x00000f00 |
| 52 | #define CPUID_GET_MAX_CAPABILITIES 0x80000000 | 52 | #define CPUID_GET_MAX_CAPABILITIES 0x80000000 |
| 53 | #define CPUID_FREQ_VOLT_CAPABILITIES 0x80000007 | 53 | #define CPUID_FREQ_VOLT_CAPABILITIES 0x80000007 |
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c index 706bda72dc60..c9a7c9835aba 100644 --- a/arch/i386/kernel/smp.c +++ b/arch/i386/kernel/smp.c | |||
| @@ -467,7 +467,7 @@ void flush_tlb_all(void) | |||
| 467 | * it goes straight through and wastes no time serializing | 467 | * it goes straight through and wastes no time serializing |
| 468 | * anything. Worst case is that we lose a reschedule ... | 468 | * anything. Worst case is that we lose a reschedule ... |
| 469 | */ | 469 | */ |
| 470 | void native_smp_send_reschedule(int cpu) | 470 | static void native_smp_send_reschedule(int cpu) |
| 471 | { | 471 | { |
| 472 | WARN_ON(cpu_is_offline(cpu)); | 472 | WARN_ON(cpu_is_offline(cpu)); |
| 473 | send_IPI_mask(cpumask_of_cpu(cpu), RESCHEDULE_VECTOR); | 473 | send_IPI_mask(cpumask_of_cpu(cpu), RESCHEDULE_VECTOR); |
| @@ -546,9 +546,10 @@ static void __smp_call_function(void (*func) (void *info), void *info, | |||
| 546 | * You must not call this function with disabled interrupts or from a | 546 | * You must not call this function with disabled interrupts or from a |
| 547 | * hardware interrupt handler or from a bottom half handler. | 547 | * hardware interrupt handler or from a bottom half handler. |
| 548 | */ | 548 | */ |
| 549 | int native_smp_call_function_mask(cpumask_t mask, | 549 | static int |
| 550 | void (*func)(void *), void *info, | 550 | native_smp_call_function_mask(cpumask_t mask, |
| 551 | int wait) | 551 | void (*func)(void *), void *info, |
| 552 | int wait) | ||
| 552 | { | 553 | { |
| 553 | struct call_data_struct data; | 554 | struct call_data_struct data; |
| 554 | cpumask_t allbutself; | 555 | cpumask_t allbutself; |
| @@ -599,60 +600,6 @@ int native_smp_call_function_mask(cpumask_t mask, | |||
| 599 | return 0; | 600 | return 0; |
| 600 | } | 601 | } |
| 601 | 602 | ||
| 602 | /** | ||
| 603 | * smp_call_function(): Run a function on all other CPUs. | ||
| 604 | * @func: The function to run. This must be fast and non-blocking. | ||
| 605 | * @info: An arbitrary pointer to pass to the function. | ||
| 606 | * @nonatomic: Unused. | ||
| 607 | * @wait: If true, wait (atomically) until function has completed on other CPUs. | ||
| 608 | * | ||
| 609 | * Returns 0 on success, else a negative status code. | ||
| 610 | * | ||
| 611 | * If @wait is true, then returns once @func has returned; otherwise | ||
| 612 | * it returns just before the target cpu calls @func. | ||
| 613 | * | ||
| 614 | * You must not call this function with disabled interrupts or from a | ||
| 615 | * hardware interrupt handler or from a bottom half handler. | ||
| 616 | */ | ||
| 617 | int smp_call_function(void (*func) (void *info), void *info, int nonatomic, | ||
| 618 | int wait) | ||
| 619 | { | ||
| 620 | return smp_call_function_mask(cpu_online_map, func, info, wait); | ||
| 621 | } | ||
| 622 | EXPORT_SYMBOL(smp_call_function); | ||
| 623 | |||
| 624 | /** | ||
| 625 | * smp_call_function_single - Run a function on another CPU | ||
| 626 | * @cpu: The target CPU. Cannot be the calling CPU. | ||
| 627 | * @func: The function to run. This must be fast and non-blocking. | ||
| 628 | * @info: An arbitrary pointer to pass to the function. | ||
| 629 | * @nonatomic: Unused. | ||
| 630 | * @wait: If true, wait until function has completed on other CPUs. | ||
| 631 | * | ||
| 632 | * Returns 0 on success, else a negative status code. | ||
| 633 | * | ||
| 634 | * If @wait is true, then returns once @func has returned; otherwise | ||
| 635 | * it returns just before the target cpu calls @func. | ||
| 636 | */ | ||
| 637 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | ||
| 638 | int nonatomic, int wait) | ||
| 639 | { | ||
| 640 | /* prevent preemption and reschedule on another processor */ | ||
| 641 | int ret; | ||
| 642 | int me = get_cpu(); | ||
| 643 | if (cpu == me) { | ||
| 644 | WARN_ON(1); | ||
| 645 | put_cpu(); | ||
| 646 | return -EBUSY; | ||
| 647 | } | ||
| 648 | |||
| 649 | ret = smp_call_function_mask(cpumask_of_cpu(cpu), func, info, wait); | ||
| 650 | |||
| 651 | put_cpu(); | ||
| 652 | return ret; | ||
| 653 | } | ||
| 654 | EXPORT_SYMBOL(smp_call_function_single); | ||
| 655 | |||
| 656 | static void stop_this_cpu (void * dummy) | 603 | static void stop_this_cpu (void * dummy) |
| 657 | { | 604 | { |
| 658 | local_irq_disable(); | 605 | local_irq_disable(); |
| @@ -670,7 +617,7 @@ static void stop_this_cpu (void * dummy) | |||
| 670 | * this function calls the 'stop' function on all other CPUs in the system. | 617 | * this function calls the 'stop' function on all other CPUs in the system. |
| 671 | */ | 618 | */ |
| 672 | 619 | ||
| 673 | void native_smp_send_stop(void) | 620 | static void native_smp_send_stop(void) |
| 674 | { | 621 | { |
| 675 | /* Don't deadlock on the call lock in panic */ | 622 | /* Don't deadlock on the call lock in panic */ |
| 676 | int nolock = !spin_trylock(&call_lock); | 623 | int nolock = !spin_trylock(&call_lock); |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index b92cc4e8b3bb..08f07a74a9d3 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
| @@ -98,9 +98,6 @@ EXPORT_SYMBOL(x86_cpu_to_apicid); | |||
| 98 | 98 | ||
| 99 | u8 apicid_2_node[MAX_APICID]; | 99 | u8 apicid_2_node[MAX_APICID]; |
| 100 | 100 | ||
| 101 | DEFINE_PER_CPU(unsigned long, this_cpu_off); | ||
| 102 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); | ||
| 103 | |||
| 104 | /* | 101 | /* |
| 105 | * Trampoline 80x86 program as an array. | 102 | * Trampoline 80x86 program as an array. |
| 106 | */ | 103 | */ |
| @@ -763,25 +760,6 @@ static inline struct task_struct * alloc_idle_task(int cpu) | |||
| 763 | #define alloc_idle_task(cpu) fork_idle(cpu) | 760 | #define alloc_idle_task(cpu) fork_idle(cpu) |
| 764 | #endif | 761 | #endif |
| 765 | 762 | ||
| 766 | /* Initialize the CPU's GDT. This is either the boot CPU doing itself | ||
| 767 | (still using the master per-cpu area), or a CPU doing it for a | ||
| 768 | secondary which will soon come up. */ | ||
| 769 | static __cpuinit void init_gdt(int cpu) | ||
| 770 | { | ||
| 771 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); | ||
| 772 | |||
| 773 | pack_descriptor((u32 *)&gdt[GDT_ENTRY_PERCPU].a, | ||
| 774 | (u32 *)&gdt[GDT_ENTRY_PERCPU].b, | ||
| 775 | __per_cpu_offset[cpu], 0xFFFFF, | ||
| 776 | 0x80 | DESCTYPE_S | 0x2, 0x8); | ||
| 777 | |||
| 778 | per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu]; | ||
| 779 | per_cpu(cpu_number, cpu) = cpu; | ||
| 780 | } | ||
| 781 | |||
| 782 | /* Defined in head.S */ | ||
| 783 | extern struct Xgt_desc_struct early_gdt_descr; | ||
| 784 | |||
| 785 | static int __cpuinit do_boot_cpu(int apicid, int cpu) | 763 | static int __cpuinit do_boot_cpu(int apicid, int cpu) |
| 786 | /* | 764 | /* |
| 787 | * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad | 765 | * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad |
diff --git a/arch/i386/kernel/smpcommon.c b/arch/i386/kernel/smpcommon.c new file mode 100644 index 000000000000..1868ae18eb4d --- /dev/null +++ b/arch/i386/kernel/smpcommon.c | |||
| @@ -0,0 +1,79 @@ | |||
| 1 | /* | ||
| 2 | * SMP stuff which is common to all sub-architectures. | ||
| 3 | */ | ||
| 4 | #include <linux/module.h> | ||
| 5 | #include <asm/smp.h> | ||
| 6 | |||
| 7 | DEFINE_PER_CPU(unsigned long, this_cpu_off); | ||
| 8 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); | ||
| 9 | |||
| 10 | /* Initialize the CPU's GDT. This is either the boot CPU doing itself | ||
| 11 | (still using the master per-cpu area), or a CPU doing it for a | ||
| 12 | secondary which will soon come up. */ | ||
| 13 | __cpuinit void init_gdt(int cpu) | ||
| 14 | { | ||
| 15 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); | ||
| 16 | |||
| 17 | pack_descriptor((u32 *)&gdt[GDT_ENTRY_PERCPU].a, | ||
| 18 | (u32 *)&gdt[GDT_ENTRY_PERCPU].b, | ||
| 19 | __per_cpu_offset[cpu], 0xFFFFF, | ||
| 20 | 0x80 | DESCTYPE_S | 0x2, 0x8); | ||
| 21 | |||
| 22 | per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu]; | ||
| 23 | per_cpu(cpu_number, cpu) = cpu; | ||
| 24 | } | ||
| 25 | |||
| 26 | |||
| 27 | /** | ||
| 28 | * smp_call_function(): Run a function on all other CPUs. | ||
| 29 | * @func: The function to run. This must be fast and non-blocking. | ||
| 30 | * @info: An arbitrary pointer to pass to the function. | ||
| 31 | * @nonatomic: Unused. | ||
| 32 | * @wait: If true, wait (atomically) until function has completed on other CPUs. | ||
| 33 | * | ||
| 34 | * Returns 0 on success, else a negative status code. | ||
| 35 | * | ||
| 36 | * If @wait is true, then returns once @func has returned; otherwise | ||
| 37 | * it returns just before the target cpu calls @func. | ||
| 38 | * | ||
| 39 | * You must not call this function with disabled interrupts or from a | ||
| 40 | * hardware interrupt handler or from a bottom half handler. | ||
| 41 | */ | ||
| 42 | int smp_call_function(void (*func) (void *info), void *info, int nonatomic, | ||
| 43 | int wait) | ||
| 44 | { | ||
| 45 | return smp_call_function_mask(cpu_online_map, func, info, wait); | ||
| 46 | } | ||
| 47 | EXPORT_SYMBOL(smp_call_function); | ||
| 48 | |||
| 49 | /** | ||
| 50 | * smp_call_function_single - Run a function on another CPU | ||
| 51 | * @cpu: The target CPU. Cannot be the calling CPU. | ||
| 52 | * @func: The function to run. This must be fast and non-blocking. | ||
| 53 | * @info: An arbitrary pointer to pass to the function. | ||
| 54 | * @nonatomic: Unused. | ||
| 55 | * @wait: If true, wait until function has completed on other CPUs. | ||
| 56 | * | ||
| 57 | * Returns 0 on success, else a negative status code. | ||
| 58 | * | ||
| 59 | * If @wait is true, then returns once @func has returned; otherwise | ||
| 60 | * it returns just before the target cpu calls @func. | ||
| 61 | */ | ||
| 62 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | ||
| 63 | int nonatomic, int wait) | ||
| 64 | { | ||
| 65 | /* prevent preemption and reschedule on another processor */ | ||
| 66 | int ret; | ||
| 67 | int me = get_cpu(); | ||
| 68 | if (cpu == me) { | ||
| 69 | WARN_ON(1); | ||
| 70 | put_cpu(); | ||
| 71 | return -EBUSY; | ||
| 72 | } | ||
| 73 | |||
| 74 | ret = smp_call_function_mask(cpumask_of_cpu(cpu), func, info, wait); | ||
| 75 | |||
| 76 | put_cpu(); | ||
| 77 | return ret; | ||
| 78 | } | ||
| 79 | EXPORT_SYMBOL(smp_call_function_single); | ||
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index c05e7e861b29..90da0575fcff 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
| @@ -733,11 +733,6 @@ static __kprobes void default_do_nmi(struct pt_regs * regs) | |||
| 733 | */ | 733 | */ |
| 734 | if (nmi_watchdog_tick(regs, reason)) | 734 | if (nmi_watchdog_tick(regs, reason)) |
| 735 | return; | 735 | return; |
| 736 | #endif | ||
| 737 | if (notify_die(DIE_NMI_POST, "nmi_post", regs, reason, 2, 0) | ||
| 738 | == NOTIFY_STOP) | ||
| 739 | return; | ||
| 740 | #ifdef CONFIG_X86_LOCAL_APIC | ||
| 741 | if (!do_nmi_callback(regs, smp_processor_id())) | 736 | if (!do_nmi_callback(regs, smp_processor_id())) |
| 742 | #endif | 737 | #endif |
| 743 | unknown_nmi_error(reason, regs); | 738 | unknown_nmi_error(reason, regs); |
diff --git a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c index 50d9c52070b1..b87f8548e75a 100644 --- a/arch/i386/mach-voyager/voyager_smp.c +++ b/arch/i386/mach-voyager/voyager_smp.c | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include <asm/pgalloc.h> | 27 | #include <asm/pgalloc.h> |
| 28 | #include <asm/tlbflush.h> | 28 | #include <asm/tlbflush.h> |
| 29 | #include <asm/arch_hooks.h> | 29 | #include <asm/arch_hooks.h> |
| 30 | #include <asm/pda.h> | ||
| 31 | 30 | ||
| 32 | /* TLB state -- visible externally, indexed physically */ | 31 | /* TLB state -- visible externally, indexed physically */ |
| 33 | DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate) ____cacheline_aligned = { &init_mm, 0 }; | 32 | DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate) ____cacheline_aligned = { &init_mm, 0 }; |
| @@ -422,7 +421,7 @@ find_smp_config(void) | |||
| 422 | VOYAGER_SUS_IN_CONTROL_PORT); | 421 | VOYAGER_SUS_IN_CONTROL_PORT); |
| 423 | 422 | ||
| 424 | current_thread_info()->cpu = boot_cpu_id; | 423 | current_thread_info()->cpu = boot_cpu_id; |
| 425 | write_pda(cpu_number, boot_cpu_id); | 424 | x86_write_percpu(cpu_number, boot_cpu_id); |
| 426 | } | 425 | } |
| 427 | 426 | ||
| 428 | /* | 427 | /* |
| @@ -435,7 +434,7 @@ smp_store_cpu_info(int id) | |||
| 435 | 434 | ||
| 436 | *c = boot_cpu_data; | 435 | *c = boot_cpu_data; |
| 437 | 436 | ||
| 438 | identify_cpu(c); | 437 | identify_secondary_cpu(c); |
| 439 | } | 438 | } |
| 440 | 439 | ||
| 441 | /* set up the trampoline and return the physical address of the code */ | 440 | /* set up the trampoline and return the physical address of the code */ |
| @@ -459,7 +458,7 @@ start_secondary(void *unused) | |||
| 459 | /* external functions not defined in the headers */ | 458 | /* external functions not defined in the headers */ |
| 460 | extern void calibrate_delay(void); | 459 | extern void calibrate_delay(void); |
| 461 | 460 | ||
| 462 | secondary_cpu_init(); | 461 | cpu_init(); |
| 463 | 462 | ||
| 464 | /* OK, we're in the routine */ | 463 | /* OK, we're in the routine */ |
| 465 | ack_CPI(VIC_CPU_BOOT_CPI); | 464 | ack_CPI(VIC_CPU_BOOT_CPI); |
| @@ -572,7 +571,9 @@ do_boot_cpu(__u8 cpu) | |||
| 572 | /* init_tasks (in sched.c) is indexed logically */ | 571 | /* init_tasks (in sched.c) is indexed logically */ |
| 573 | stack_start.esp = (void *) idle->thread.esp; | 572 | stack_start.esp = (void *) idle->thread.esp; |
| 574 | 573 | ||
| 575 | init_gdt(cpu, idle); | 574 | init_gdt(cpu); |
| 575 | per_cpu(current_task, cpu) = idle; | ||
| 576 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); | ||
| 576 | irq_ctx_init(cpu); | 577 | irq_ctx_init(cpu); |
| 577 | 578 | ||
| 578 | /* Note: Don't modify initial ss override */ | 579 | /* Note: Don't modify initial ss override */ |
| @@ -859,8 +860,8 @@ smp_invalidate_interrupt(void) | |||
| 859 | 860 | ||
| 860 | /* This routine is called with a physical cpu mask */ | 861 | /* This routine is called with a physical cpu mask */ |
| 861 | static void | 862 | static void |
| 862 | flush_tlb_others (unsigned long cpumask, struct mm_struct *mm, | 863 | voyager_flush_tlb_others (unsigned long cpumask, struct mm_struct *mm, |
| 863 | unsigned long va) | 864 | unsigned long va) |
| 864 | { | 865 | { |
| 865 | int stuck = 50000; | 866 | int stuck = 50000; |
| 866 | 867 | ||
| @@ -912,7 +913,7 @@ flush_tlb_current_task(void) | |||
| 912 | cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id()); | 913 | cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id()); |
| 913 | local_flush_tlb(); | 914 | local_flush_tlb(); |
| 914 | if (cpu_mask) | 915 | if (cpu_mask) |
| 915 | flush_tlb_others(cpu_mask, mm, FLUSH_ALL); | 916 | voyager_flush_tlb_others(cpu_mask, mm, FLUSH_ALL); |
| 916 | 917 | ||
| 917 | preempt_enable(); | 918 | preempt_enable(); |
| 918 | } | 919 | } |
| @@ -934,7 +935,7 @@ flush_tlb_mm (struct mm_struct * mm) | |||
| 934 | leave_mm(smp_processor_id()); | 935 | leave_mm(smp_processor_id()); |
| 935 | } | 936 | } |
| 936 | if (cpu_mask) | 937 | if (cpu_mask) |
| 937 | flush_tlb_others(cpu_mask, mm, FLUSH_ALL); | 938 | voyager_flush_tlb_others(cpu_mask, mm, FLUSH_ALL); |
| 938 | 939 | ||
| 939 | preempt_enable(); | 940 | preempt_enable(); |
| 940 | } | 941 | } |
| @@ -955,7 +956,7 @@ void flush_tlb_page(struct vm_area_struct * vma, unsigned long va) | |||
| 955 | } | 956 | } |
| 956 | 957 | ||
| 957 | if (cpu_mask) | 958 | if (cpu_mask) |
| 958 | flush_tlb_others(cpu_mask, mm, va); | 959 | voyager_flush_tlb_others(cpu_mask, mm, va); |
| 959 | 960 | ||
| 960 | preempt_enable(); | 961 | preempt_enable(); |
| 961 | } | 962 | } |
| @@ -1044,10 +1045,12 @@ smp_call_function_interrupt(void) | |||
| 1044 | } | 1045 | } |
| 1045 | 1046 | ||
| 1046 | static int | 1047 | static int |
| 1047 | __smp_call_function_mask (void (*func) (void *info), void *info, int retry, | 1048 | voyager_smp_call_function_mask (cpumask_t cpumask, |
| 1048 | int wait, __u32 mask) | 1049 | void (*func) (void *info), void *info, |
| 1050 | int wait) | ||
| 1049 | { | 1051 | { |
| 1050 | struct call_data_struct data; | 1052 | struct call_data_struct data; |
| 1053 | u32 mask = cpus_addr(cpumask)[0]; | ||
| 1051 | 1054 | ||
| 1052 | mask &= ~(1<<smp_processor_id()); | 1055 | mask &= ~(1<<smp_processor_id()); |
| 1053 | 1056 | ||
| @@ -1083,47 +1086,6 @@ __smp_call_function_mask (void (*func) (void *info), void *info, int retry, | |||
| 1083 | return 0; | 1086 | return 0; |
| 1084 | } | 1087 | } |
| 1085 | 1088 | ||
| 1086 | /* Call this function on all CPUs using the function_interrupt above | ||
| 1087 | <func> The function to run. This must be fast and non-blocking. | ||
| 1088 | <info> An arbitrary pointer to pass to the function. | ||
| 1089 | <retry> If true, keep retrying until ready. | ||
| 1090 | <wait> If true, wait until function has completed on other CPUs. | ||
| 1091 | [RETURNS] 0 on success, else a negative status code. Does not return until | ||
| 1092 | remote CPUs are nearly ready to execute <<func>> or are or have executed. | ||
| 1093 | */ | ||
| 1094 | int | ||
| 1095 | smp_call_function(void (*func) (void *info), void *info, int retry, | ||
| 1096 | int wait) | ||
| 1097 | { | ||
| 1098 | __u32 mask = cpus_addr(cpu_online_map)[0]; | ||
| 1099 | |||
| 1100 | return __smp_call_function_mask(func, info, retry, wait, mask); | ||
| 1101 | } | ||
| 1102 | EXPORT_SYMBOL(smp_call_function); | ||
| 1103 | |||
| 1104 | /* | ||
| 1105 | * smp_call_function_single - Run a function on another CPU | ||
| 1106 | * @func: The function to run. This must be fast and non-blocking. | ||
| 1107 | * @info: An arbitrary pointer to pass to the function. | ||
| 1108 | * @nonatomic: Currently unused. | ||
| 1109 | * @wait: If true, wait until function has completed on other CPUs. | ||
| 1110 | * | ||
| 1111 | * Retrurns 0 on success, else a negative status code. | ||
| 1112 | * | ||
| 1113 | * Does not return until the remote CPU is nearly ready to execute <func> | ||
| 1114 | * or is or has executed. | ||
| 1115 | */ | ||
| 1116 | |||
| 1117 | int | ||
| 1118 | smp_call_function_single(int cpu, void (*func) (void *info), void *info, | ||
| 1119 | int nonatomic, int wait) | ||
| 1120 | { | ||
| 1121 | __u32 mask = 1 << cpu; | ||
| 1122 | |||
| 1123 | return __smp_call_function_mask(func, info, nonatomic, wait, mask); | ||
| 1124 | } | ||
| 1125 | EXPORT_SYMBOL(smp_call_function_single); | ||
| 1126 | |||
| 1127 | /* Sorry about the name. In an APIC based system, the APICs | 1089 | /* Sorry about the name. In an APIC based system, the APICs |
| 1128 | * themselves are programmed to send a timer interrupt. This is used | 1090 | * themselves are programmed to send a timer interrupt. This is used |
| 1129 | * by linux to reschedule the processor. Voyager doesn't have this, | 1091 | * by linux to reschedule the processor. Voyager doesn't have this, |
| @@ -1237,8 +1199,8 @@ smp_alloc_memory(void) | |||
| 1237 | } | 1199 | } |
| 1238 | 1200 | ||
| 1239 | /* send a reschedule CPI to one CPU by physical CPU number*/ | 1201 | /* send a reschedule CPI to one CPU by physical CPU number*/ |
| 1240 | void | 1202 | static void |
| 1241 | smp_send_reschedule(int cpu) | 1203 | voyager_smp_send_reschedule(int cpu) |
| 1242 | { | 1204 | { |
| 1243 | send_one_CPI(cpu, VIC_RESCHEDULE_CPI); | 1205 | send_one_CPI(cpu, VIC_RESCHEDULE_CPI); |
| 1244 | } | 1206 | } |
| @@ -1267,8 +1229,8 @@ safe_smp_processor_id(void) | |||
| 1267 | } | 1229 | } |
| 1268 | 1230 | ||
| 1269 | /* broadcast a halt to all other CPUs */ | 1231 | /* broadcast a halt to all other CPUs */ |
| 1270 | void | 1232 | static void |
| 1271 | smp_send_stop(void) | 1233 | voyager_smp_send_stop(void) |
| 1272 | { | 1234 | { |
| 1273 | smp_call_function(smp_stop_cpu_function, NULL, 1, 1); | 1235 | smp_call_function(smp_stop_cpu_function, NULL, 1, 1); |
| 1274 | } | 1236 | } |
| @@ -1930,23 +1892,26 @@ smp_voyager_power_off(void *dummy) | |||
| 1930 | smp_stop_cpu_function(NULL); | 1892 | smp_stop_cpu_function(NULL); |
| 1931 | } | 1893 | } |
| 1932 | 1894 | ||
| 1933 | void __init | 1895 | static void __init |
| 1934 | smp_prepare_cpus(unsigned int max_cpus) | 1896 | voyager_smp_prepare_cpus(unsigned int max_cpus) |
| 1935 | { | 1897 | { |
| 1936 | /* FIXME: ignore max_cpus for now */ | 1898 | /* FIXME: ignore max_cpus for now */ |
| 1937 | smp_boot_cpus(); | 1899 | smp_boot_cpus(); |
| 1938 | } | 1900 | } |
| 1939 | 1901 | ||
| 1940 | void __devinit smp_prepare_boot_cpu(void) | 1902 | static void __devinit voyager_smp_prepare_boot_cpu(void) |
| 1941 | { | 1903 | { |
| 1904 | init_gdt(smp_processor_id()); | ||
| 1905 | switch_to_new_gdt(); | ||
| 1906 | |||
| 1942 | cpu_set(smp_processor_id(), cpu_online_map); | 1907 | cpu_set(smp_processor_id(), cpu_online_map); |
| 1943 | cpu_set(smp_processor_id(), cpu_callout_map); | 1908 | cpu_set(smp_processor_id(), cpu_callout_map); |
| 1944 | cpu_set(smp_processor_id(), cpu_possible_map); | 1909 | cpu_set(smp_processor_id(), cpu_possible_map); |
| 1945 | cpu_set(smp_processor_id(), cpu_present_map); | 1910 | cpu_set(smp_processor_id(), cpu_present_map); |
| 1946 | } | 1911 | } |
| 1947 | 1912 | ||
| 1948 | int __devinit | 1913 | static int __devinit |
| 1949 | __cpu_up(unsigned int cpu) | 1914 | voyager_cpu_up(unsigned int cpu) |
| 1950 | { | 1915 | { |
| 1951 | /* This only works at boot for x86. See "rewrite" above. */ | 1916 | /* This only works at boot for x86. See "rewrite" above. */ |
| 1952 | if (cpu_isset(cpu, smp_commenced_mask)) | 1917 | if (cpu_isset(cpu, smp_commenced_mask)) |
| @@ -1962,8 +1927,8 @@ __cpu_up(unsigned int cpu) | |||
| 1962 | return 0; | 1927 | return 0; |
| 1963 | } | 1928 | } |
| 1964 | 1929 | ||
| 1965 | void __init | 1930 | static void __init |
| 1966 | smp_cpus_done(unsigned int max_cpus) | 1931 | voyager_smp_cpus_done(unsigned int max_cpus) |
| 1967 | { | 1932 | { |
| 1968 | zap_low_mappings(); | 1933 | zap_low_mappings(); |
| 1969 | } | 1934 | } |
| @@ -1972,5 +1937,16 @@ void __init | |||
| 1972 | smp_setup_processor_id(void) | 1937 | smp_setup_processor_id(void) |
| 1973 | { | 1938 | { |
| 1974 | current_thread_info()->cpu = hard_smp_processor_id(); | 1939 | current_thread_info()->cpu = hard_smp_processor_id(); |
| 1975 | write_pda(cpu_number, hard_smp_processor_id()); | 1940 | x86_write_percpu(cpu_number, hard_smp_processor_id()); |
| 1976 | } | 1941 | } |
| 1942 | |||
| 1943 | struct smp_ops smp_ops = { | ||
| 1944 | .smp_prepare_boot_cpu = voyager_smp_prepare_boot_cpu, | ||
| 1945 | .smp_prepare_cpus = voyager_smp_prepare_cpus, | ||
| 1946 | .cpu_up = voyager_cpu_up, | ||
| 1947 | .smp_cpus_done = voyager_smp_cpus_done, | ||
| 1948 | |||
| 1949 | .smp_send_stop = voyager_smp_send_stop, | ||
| 1950 | .smp_send_reschedule = voyager_smp_send_reschedule, | ||
| 1951 | .smp_call_function_mask = voyager_smp_call_function_mask, | ||
| 1952 | }; | ||
diff --git a/arch/i386/mm/discontig.c b/arch/i386/mm/discontig.c index aa58720f6871..860e912a3fbb 100644 --- a/arch/i386/mm/discontig.c +++ b/arch/i386/mm/discontig.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
| 32 | #include <linux/kexec.h> | 32 | #include <linux/kexec.h> |
| 33 | #include <linux/pfn.h> | 33 | #include <linux/pfn.h> |
| 34 | #include <linux/swap.h> | ||
| 34 | 35 | ||
| 35 | #include <asm/e820.h> | 36 | #include <asm/e820.h> |
| 36 | #include <asm/setup.h> | 37 | #include <asm/setup.h> |
| @@ -97,14 +98,8 @@ unsigned long node_memmap_size_bytes(int nid, unsigned long start_pfn, | |||
| 97 | #endif | 98 | #endif |
| 98 | 99 | ||
| 99 | extern unsigned long find_max_low_pfn(void); | 100 | extern unsigned long find_max_low_pfn(void); |
| 100 | extern void find_max_pfn(void); | ||
| 101 | extern void add_one_highpage_init(struct page *, int, int); | 101 | extern void add_one_highpage_init(struct page *, int, int); |
| 102 | |||
| 103 | extern struct e820map e820; | ||
| 104 | extern unsigned long highend_pfn, highstart_pfn; | 102 | extern unsigned long highend_pfn, highstart_pfn; |
| 105 | extern unsigned long max_low_pfn; | ||
| 106 | extern unsigned long totalram_pages; | ||
| 107 | extern unsigned long totalhigh_pages; | ||
| 108 | 103 | ||
| 109 | #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) | 104 | #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) |
| 110 | 105 | ||
| @@ -360,7 +355,9 @@ void __init zone_sizes_init(void) | |||
| 360 | max_zone_pfns[ZONE_DMA] = | 355 | max_zone_pfns[ZONE_DMA] = |
| 361 | virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; | 356 | virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; |
| 362 | max_zone_pfns[ZONE_NORMAL] = max_low_pfn; | 357 | max_zone_pfns[ZONE_NORMAL] = max_low_pfn; |
| 358 | #ifdef CONFIG_HIGHMEM | ||
| 363 | max_zone_pfns[ZONE_HIGHMEM] = highend_pfn; | 359 | max_zone_pfns[ZONE_HIGHMEM] = highend_pfn; |
| 360 | #endif | ||
| 364 | 361 | ||
| 365 | /* If SRAT has not registered memory, register it now */ | 362 | /* If SRAT has not registered memory, register it now */ |
| 366 | if (find_max_pfn_with_active_regions() == 0) { | 363 | if (find_max_pfn_with_active_regions() == 0) { |
diff --git a/arch/m68k/lib/uaccess.c b/arch/m68k/lib/uaccess.c index 865f9fb9e686..13854ed8cd9a 100644 --- a/arch/m68k/lib/uaccess.c +++ b/arch/m68k/lib/uaccess.c | |||
| @@ -181,7 +181,7 @@ EXPORT_SYMBOL(strnlen_user); | |||
| 181 | * Zero Userspace | 181 | * Zero Userspace |
| 182 | */ | 182 | */ |
| 183 | 183 | ||
| 184 | unsigned long clear_user(void __user *to, unsigned long n) | 184 | unsigned long __clear_user(void __user *to, unsigned long n) |
| 185 | { | 185 | { |
| 186 | unsigned long res; | 186 | unsigned long res; |
| 187 | 187 | ||
| @@ -219,4 +219,4 @@ unsigned long clear_user(void __user *to, unsigned long n) | |||
| 219 | 219 | ||
| 220 | return res; | 220 | return res; |
| 221 | } | 221 | } |
| 222 | EXPORT_SYMBOL(clear_user); | 222 | EXPORT_SYMBOL(__clear_user); |
diff --git a/arch/sparc/defconfig b/arch/sparc/defconfig index 79e54894529d..38bd79fe6e75 100644 --- a/arch/sparc/defconfig +++ b/arch/sparc/defconfig | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.20-rc1 | 3 | # Linux kernel version: 2.6.22-rc1 |
| 4 | # Sun Dec 17 14:20:47 2006 | 4 | # Mon May 14 03:25:14 2007 |
| 5 | # | 5 | # |
| 6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
| 7 | CONFIG_HIGHMEM=y | 7 | CONFIG_HIGHMEM=y |
| 8 | CONFIG_ZONE_DMA=y | ||
| 8 | CONFIG_GENERIC_ISA_DMA=y | 9 | CONFIG_GENERIC_ISA_DMA=y |
| 9 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 10 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 10 | 11 | ||
| @@ -23,14 +24,17 @@ CONFIG_LOCALVERSION_AUTO=y | |||
| 23 | CONFIG_SWAP=y | 24 | CONFIG_SWAP=y |
| 24 | CONFIG_SYSVIPC=y | 25 | CONFIG_SYSVIPC=y |
| 25 | # CONFIG_IPC_NS is not set | 26 | # CONFIG_IPC_NS is not set |
| 27 | CONFIG_SYSVIPC_SYSCTL=y | ||
| 26 | CONFIG_POSIX_MQUEUE=y | 28 | CONFIG_POSIX_MQUEUE=y |
| 27 | # CONFIG_BSD_PROCESS_ACCT is not set | 29 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 28 | # CONFIG_TASKSTATS is not set | 30 | # CONFIG_TASKSTATS is not set |
| 29 | # CONFIG_UTS_NS is not set | 31 | # CONFIG_UTS_NS is not set |
| 30 | # CONFIG_AUDIT is not set | 32 | # CONFIG_AUDIT is not set |
| 31 | # CONFIG_IKCONFIG is not set | 33 | # CONFIG_IKCONFIG is not set |
| 34 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 32 | CONFIG_SYSFS_DEPRECATED=y | 35 | CONFIG_SYSFS_DEPRECATED=y |
| 33 | # CONFIG_RELAY is not set | 36 | # CONFIG_RELAY is not set |
| 37 | CONFIG_BLK_DEV_INITRD=y | ||
| 34 | CONFIG_INITRAMFS_SOURCE="" | 38 | CONFIG_INITRAMFS_SOURCE="" |
| 35 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 39 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 36 | CONFIG_SYSCTL=y | 40 | CONFIG_SYSCTL=y |
| @@ -46,14 +50,19 @@ CONFIG_BUG=y | |||
| 46 | CONFIG_ELF_CORE=y | 50 | CONFIG_ELF_CORE=y |
| 47 | CONFIG_BASE_FULL=y | 51 | CONFIG_BASE_FULL=y |
| 48 | CONFIG_FUTEX=y | 52 | CONFIG_FUTEX=y |
| 53 | CONFIG_ANON_INODES=y | ||
| 49 | CONFIG_EPOLL=y | 54 | CONFIG_EPOLL=y |
| 55 | CONFIG_SIGNALFD=y | ||
| 56 | CONFIG_TIMERFD=y | ||
| 57 | CONFIG_EVENTFD=y | ||
| 50 | CONFIG_SHMEM=y | 58 | CONFIG_SHMEM=y |
| 51 | CONFIG_SLAB=y | ||
| 52 | CONFIG_VM_EVENT_COUNTERS=y | 59 | CONFIG_VM_EVENT_COUNTERS=y |
| 60 | CONFIG_SLAB=y | ||
| 61 | # CONFIG_SLUB is not set | ||
| 62 | # CONFIG_SLOB is not set | ||
| 53 | CONFIG_RT_MUTEXES=y | 63 | CONFIG_RT_MUTEXES=y |
| 54 | # CONFIG_TINY_SHMEM is not set | 64 | # CONFIG_TINY_SHMEM is not set |
| 55 | CONFIG_BASE_SMALL=0 | 65 | CONFIG_BASE_SMALL=0 |
| 56 | # CONFIG_SLOB is not set | ||
| 57 | 66 | ||
| 58 | # | 67 | # |
| 59 | # Loadable module support | 68 | # Loadable module support |
| @@ -107,7 +116,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y | |||
| 107 | CONFIG_SUN_PM=y | 116 | CONFIG_SUN_PM=y |
| 108 | # CONFIG_SUN4 is not set | 117 | # CONFIG_SUN4 is not set |
| 109 | CONFIG_PCI=y | 118 | CONFIG_PCI=y |
| 110 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 119 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 111 | # CONFIG_PCI_DEBUG is not set | 120 | # CONFIG_PCI_DEBUG is not set |
| 112 | CONFIG_SUN_OPENPROMFS=m | 121 | CONFIG_SUN_OPENPROMFS=m |
| 113 | # CONFIG_SPARC_LED is not set | 122 | # CONFIG_SPARC_LED is not set |
| @@ -124,6 +133,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
| 124 | # CONFIG_SPARSEMEM_STATIC is not set | 133 | # CONFIG_SPARSEMEM_STATIC is not set |
| 125 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 134 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 126 | # CONFIG_RESOURCES_64BIT is not set | 135 | # CONFIG_RESOURCES_64BIT is not set |
| 136 | CONFIG_ZONE_DMA_FLAG=1 | ||
| 127 | 137 | ||
| 128 | # | 138 | # |
| 129 | # Networking | 139 | # Networking |
| @@ -133,14 +143,15 @@ CONFIG_NET=y | |||
| 133 | # | 143 | # |
| 134 | # Networking options | 144 | # Networking options |
| 135 | # | 145 | # |
| 136 | # CONFIG_NETDEBUG is not set | ||
| 137 | CONFIG_PACKET=y | 146 | CONFIG_PACKET=y |
| 138 | # CONFIG_PACKET_MMAP is not set | 147 | # CONFIG_PACKET_MMAP is not set |
| 139 | CONFIG_UNIX=y | 148 | CONFIG_UNIX=y |
| 140 | CONFIG_XFRM=y | 149 | CONFIG_XFRM=y |
| 141 | CONFIG_XFRM_USER=m | 150 | CONFIG_XFRM_USER=m |
| 142 | # CONFIG_XFRM_SUB_POLICY is not set | 151 | # CONFIG_XFRM_SUB_POLICY is not set |
| 152 | # CONFIG_XFRM_MIGRATE is not set | ||
| 143 | CONFIG_NET_KEY=m | 153 | CONFIG_NET_KEY=m |
| 154 | # CONFIG_NET_KEY_MIGRATE is not set | ||
| 144 | CONFIG_INET=y | 155 | CONFIG_INET=y |
| 145 | # CONFIG_IP_MULTICAST is not set | 156 | # CONFIG_IP_MULTICAST is not set |
| 146 | # CONFIG_IP_ADVANCED_ROUTER is not set | 157 | # CONFIG_IP_ADVANCED_ROUTER is not set |
| @@ -170,6 +181,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 170 | CONFIG_IPV6=m | 181 | CONFIG_IPV6=m |
| 171 | CONFIG_IPV6_PRIVACY=y | 182 | CONFIG_IPV6_PRIVACY=y |
| 172 | # CONFIG_IPV6_ROUTER_PREF is not set | 183 | # CONFIG_IPV6_ROUTER_PREF is not set |
| 184 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
| 173 | CONFIG_INET6_AH=m | 185 | CONFIG_INET6_AH=m |
| 174 | CONFIG_INET6_ESP=m | 186 | CONFIG_INET6_ESP=m |
| 175 | CONFIG_INET6_IPCOMP=m | 187 | CONFIG_INET6_IPCOMP=m |
| @@ -229,7 +241,18 @@ CONFIG_NET_PKTGEN=m | |||
| 229 | # CONFIG_HAMRADIO is not set | 241 | # CONFIG_HAMRADIO is not set |
| 230 | # CONFIG_IRDA is not set | 242 | # CONFIG_IRDA is not set |
| 231 | # CONFIG_BT is not set | 243 | # CONFIG_BT is not set |
| 244 | CONFIG_AF_RXRPC=m | ||
| 245 | # CONFIG_AF_RXRPC_DEBUG is not set | ||
| 246 | # CONFIG_RXKAD is not set | ||
| 247 | |||
| 248 | # | ||
| 249 | # Wireless | ||
| 250 | # | ||
| 251 | # CONFIG_CFG80211 is not set | ||
| 252 | # CONFIG_WIRELESS_EXT is not set | ||
| 253 | # CONFIG_MAC80211 is not set | ||
| 232 | # CONFIG_IEEE80211 is not set | 254 | # CONFIG_IEEE80211 is not set |
| 255 | # CONFIG_RFKILL is not set | ||
| 233 | 256 | ||
| 234 | # | 257 | # |
| 235 | # Device Drivers | 258 | # Device Drivers |
| @@ -242,16 +265,13 @@ CONFIG_STANDALONE=y | |||
| 242 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 265 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
| 243 | # CONFIG_FW_LOADER is not set | 266 | # CONFIG_FW_LOADER is not set |
| 244 | # CONFIG_DEBUG_DRIVER is not set | 267 | # CONFIG_DEBUG_DRIVER is not set |
| 268 | # CONFIG_DEBUG_DEVRES is not set | ||
| 245 | # CONFIG_SYS_HYPERVISOR is not set | 269 | # CONFIG_SYS_HYPERVISOR is not set |
| 246 | 270 | ||
| 247 | # | 271 | # |
| 248 | # Connector - unified userspace <-> kernelspace linker | 272 | # Connector - unified userspace <-> kernelspace linker |
| 249 | # | 273 | # |
| 250 | # CONFIG_CONNECTOR is not set | 274 | # CONFIG_CONNECTOR is not set |
| 251 | |||
| 252 | # | ||
| 253 | # Memory Technology Devices (MTD) | ||
| 254 | # | ||
| 255 | # CONFIG_MTD is not set | 275 | # CONFIG_MTD is not set |
| 256 | 276 | ||
| 257 | # | 277 | # |
| @@ -262,6 +282,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
| 262 | # | 282 | # |
| 263 | # Plug and Play support | 283 | # Plug and Play support |
| 264 | # | 284 | # |
| 285 | # CONFIG_PNPACPI is not set | ||
| 265 | 286 | ||
| 266 | # | 287 | # |
| 267 | # Block devices | 288 | # Block devices |
| @@ -280,15 +301,16 @@ CONFIG_BLK_DEV_RAM=y | |||
| 280 | CONFIG_BLK_DEV_RAM_COUNT=16 | 301 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 281 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 302 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
| 282 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 303 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
| 283 | CONFIG_BLK_DEV_INITRD=y | ||
| 284 | # CONFIG_CDROM_PKTCDVD is not set | 304 | # CONFIG_CDROM_PKTCDVD is not set |
| 285 | # CONFIG_ATA_OVER_ETH is not set | 305 | # CONFIG_ATA_OVER_ETH is not set |
| 286 | 306 | ||
| 287 | # | 307 | # |
| 288 | # Misc devices | 308 | # Misc devices |
| 289 | # | 309 | # |
| 310 | # CONFIG_PHANTOM is not set | ||
| 290 | # CONFIG_SGI_IOC4 is not set | 311 | # CONFIG_SGI_IOC4 is not set |
| 291 | # CONFIG_TIFM_CORE is not set | 312 | # CONFIG_TIFM_CORE is not set |
| 313 | # CONFIG_BLINK is not set | ||
| 292 | 314 | ||
| 293 | # | 315 | # |
| 294 | # ATA/ATAPI/MFM/RLL support | 316 | # ATA/ATAPI/MFM/RLL support |
| @@ -322,11 +344,12 @@ CONFIG_CHR_DEV_SG=m | |||
| 322 | # CONFIG_SCSI_CONSTANTS is not set | 344 | # CONFIG_SCSI_CONSTANTS is not set |
| 323 | # CONFIG_SCSI_LOGGING is not set | 345 | # CONFIG_SCSI_LOGGING is not set |
| 324 | # CONFIG_SCSI_SCAN_ASYNC is not set | 346 | # CONFIG_SCSI_SCAN_ASYNC is not set |
| 347 | CONFIG_SCSI_WAIT_SCAN=m | ||
| 325 | 348 | ||
| 326 | # | 349 | # |
| 327 | # SCSI Transports | 350 | # SCSI Transports |
| 328 | # | 351 | # |
| 329 | CONFIG_SCSI_SPI_ATTRS=m | 352 | CONFIG_SCSI_SPI_ATTRS=y |
| 330 | # CONFIG_SCSI_FC_ATTRS is not set | 353 | # CONFIG_SCSI_FC_ATTRS is not set |
| 331 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 354 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
| 332 | # CONFIG_SCSI_SAS_ATTRS is not set | 355 | # CONFIG_SCSI_SAS_ATTRS is not set |
| @@ -366,12 +389,9 @@ CONFIG_SCSI_QLOGICPTI=m | |||
| 366 | # CONFIG_SCSI_DC390T is not set | 389 | # CONFIG_SCSI_DC390T is not set |
| 367 | # CONFIG_SCSI_NSP32 is not set | 390 | # CONFIG_SCSI_NSP32 is not set |
| 368 | # CONFIG_SCSI_DEBUG is not set | 391 | # CONFIG_SCSI_DEBUG is not set |
| 392 | CONFIG_SCSI_ESP_CORE=y | ||
| 369 | CONFIG_SCSI_SUNESP=y | 393 | CONFIG_SCSI_SUNESP=y |
| 370 | # CONFIG_SCSI_SRP is not set | 394 | # CONFIG_SCSI_SRP is not set |
| 371 | |||
| 372 | # | ||
| 373 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
| 374 | # | ||
| 375 | # CONFIG_ATA is not set | 395 | # CONFIG_ATA is not set |
| 376 | 396 | ||
| 377 | # | 397 | # |
| @@ -390,6 +410,7 @@ CONFIG_SCSI_SUNESP=y | |||
| 390 | # | 410 | # |
| 391 | # IEEE 1394 (FireWire) support | 411 | # IEEE 1394 (FireWire) support |
| 392 | # | 412 | # |
| 413 | # CONFIG_FIREWIRE is not set | ||
| 393 | # CONFIG_IEEE1394 is not set | 414 | # CONFIG_IEEE1394 is not set |
| 394 | 415 | ||
| 395 | # | 416 | # |
| @@ -410,10 +431,6 @@ CONFIG_TUN=m | |||
| 410 | # ARCnet devices | 431 | # ARCnet devices |
| 411 | # | 432 | # |
| 412 | # CONFIG_ARCNET is not set | 433 | # CONFIG_ARCNET is not set |
| 413 | |||
| 414 | # | ||
| 415 | # PHY device support | ||
| 416 | # | ||
| 417 | # CONFIG_PHYLIB is not set | 434 | # CONFIG_PHYLIB is not set |
| 418 | 435 | ||
| 419 | # | 436 | # |
| @@ -435,10 +452,7 @@ CONFIG_SUNQE=m | |||
| 435 | # CONFIG_NET_TULIP is not set | 452 | # CONFIG_NET_TULIP is not set |
| 436 | # CONFIG_HP100 is not set | 453 | # CONFIG_HP100 is not set |
| 437 | # CONFIG_NET_PCI is not set | 454 | # CONFIG_NET_PCI is not set |
| 438 | 455 | CONFIG_NETDEV_1000=y | |
| 439 | # | ||
| 440 | # Ethernet (1000 Mbit) | ||
| 441 | # | ||
| 442 | # CONFIG_ACENIC is not set | 456 | # CONFIG_ACENIC is not set |
| 443 | # CONFIG_DL2K is not set | 457 | # CONFIG_DL2K is not set |
| 444 | # CONFIG_E1000 is not set | 458 | # CONFIG_E1000 is not set |
| @@ -454,15 +468,16 @@ CONFIG_SUNQE=m | |||
| 454 | # CONFIG_TIGON3 is not set | 468 | # CONFIG_TIGON3 is not set |
| 455 | # CONFIG_BNX2 is not set | 469 | # CONFIG_BNX2 is not set |
| 456 | # CONFIG_QLA3XXX is not set | 470 | # CONFIG_QLA3XXX is not set |
| 457 | 471 | # CONFIG_ATL1 is not set | |
| 458 | # | 472 | CONFIG_NETDEV_10000=y |
| 459 | # Ethernet (10000 Mbit) | ||
| 460 | # | ||
| 461 | # CONFIG_CHELSIO_T1 is not set | 473 | # CONFIG_CHELSIO_T1 is not set |
| 474 | # CONFIG_CHELSIO_T3 is not set | ||
| 462 | # CONFIG_IXGB is not set | 475 | # CONFIG_IXGB is not set |
| 463 | # CONFIG_S2IO is not set | 476 | # CONFIG_S2IO is not set |
| 464 | # CONFIG_MYRI10GE is not set | 477 | # CONFIG_MYRI10GE is not set |
| 465 | # CONFIG_NETXEN_NIC is not set | 478 | # CONFIG_NETXEN_NIC is not set |
| 479 | # CONFIG_MLX4_CORE is not set | ||
| 480 | CONFIG_MLX4_DEBUG=y | ||
| 466 | 481 | ||
| 467 | # | 482 | # |
| 468 | # Token Ring devices | 483 | # Token Ring devices |
| @@ -470,13 +485,10 @@ CONFIG_SUNQE=m | |||
| 470 | # CONFIG_TR is not set | 485 | # CONFIG_TR is not set |
| 471 | 486 | ||
| 472 | # | 487 | # |
| 473 | # Wireless LAN (non-hamradio) | 488 | # Wireless LAN |
| 474 | # | ||
| 475 | # CONFIG_NET_RADIO is not set | ||
| 476 | |||
| 477 | # | ||
| 478 | # Wan interfaces | ||
| 479 | # | 489 | # |
| 490 | # CONFIG_WLAN_PRE80211 is not set | ||
| 491 | # CONFIG_WLAN_80211 is not set | ||
| 480 | # CONFIG_WAN is not set | 492 | # CONFIG_WAN is not set |
| 481 | # CONFIG_FDDI is not set | 493 | # CONFIG_FDDI is not set |
| 482 | # CONFIG_HIPPI is not set | 494 | # CONFIG_HIPPI is not set |
| @@ -528,9 +540,17 @@ CONFIG_KEYBOARD_SUNKBD=m | |||
| 528 | # CONFIG_KEYBOARD_STOWAWAY is not set | 540 | # CONFIG_KEYBOARD_STOWAWAY is not set |
| 529 | CONFIG_INPUT_MOUSE=y | 541 | CONFIG_INPUT_MOUSE=y |
| 530 | CONFIG_MOUSE_PS2=m | 542 | CONFIG_MOUSE_PS2=m |
| 543 | CONFIG_MOUSE_PS2_ALPS=y | ||
| 544 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
| 545 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
| 546 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
| 547 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
| 548 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
| 531 | CONFIG_MOUSE_SERIAL=m | 549 | CONFIG_MOUSE_SERIAL=m |
| 550 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
| 532 | # CONFIG_MOUSE_VSXXXAA is not set | 551 | # CONFIG_MOUSE_VSXXXAA is not set |
| 533 | # CONFIG_INPUT_JOYSTICK is not set | 552 | # CONFIG_INPUT_JOYSTICK is not set |
| 553 | # CONFIG_INPUT_TABLET is not set | ||
| 534 | # CONFIG_INPUT_TOUCHSCREEN is not set | 554 | # CONFIG_INPUT_TOUCHSCREEN is not set |
| 535 | # CONFIG_INPUT_MISC is not set | 555 | # CONFIG_INPUT_MISC is not set |
| 536 | 556 | ||
| @@ -578,14 +598,9 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
| 578 | # IPMI | 598 | # IPMI |
| 579 | # | 599 | # |
| 580 | # CONFIG_IPMI_HANDLER is not set | 600 | # CONFIG_IPMI_HANDLER is not set |
| 581 | |||
| 582 | # | ||
| 583 | # Watchdog Cards | ||
| 584 | # | ||
| 585 | # CONFIG_WATCHDOG is not set | 601 | # CONFIG_WATCHDOG is not set |
| 586 | CONFIG_HW_RANDOM=m | 602 | CONFIG_HW_RANDOM=m |
| 587 | CONFIG_RTC=m | 603 | CONFIG_RTC=m |
| 588 | # CONFIG_DTLK is not set | ||
| 589 | # CONFIG_R3964 is not set | 604 | # CONFIG_R3964 is not set |
| 590 | # CONFIG_APPLICOM is not set | 605 | # CONFIG_APPLICOM is not set |
| 591 | # CONFIG_DRM is not set | 606 | # CONFIG_DRM is not set |
| @@ -595,10 +610,7 @@ CONFIG_RTC=m | |||
| 595 | # TPM devices | 610 | # TPM devices |
| 596 | # | 611 | # |
| 597 | # CONFIG_TCG_TPM is not set | 612 | # CONFIG_TCG_TPM is not set |
| 598 | 613 | CONFIG_DEVPORT=y | |
| 599 | # | ||
| 600 | # I2C support | ||
| 601 | # | ||
| 602 | # CONFIG_I2C is not set | 614 | # CONFIG_I2C is not set |
| 603 | 615 | ||
| 604 | # | 616 | # |
| @@ -611,32 +623,39 @@ CONFIG_RTC=m | |||
| 611 | # Dallas's 1-wire bus | 623 | # Dallas's 1-wire bus |
| 612 | # | 624 | # |
| 613 | # CONFIG_W1 is not set | 625 | # CONFIG_W1 is not set |
| 614 | |||
| 615 | # | ||
| 616 | # Hardware Monitoring support | ||
| 617 | # | ||
| 618 | CONFIG_HWMON=y | 626 | CONFIG_HWMON=y |
| 619 | # CONFIG_HWMON_VID is not set | 627 | # CONFIG_HWMON_VID is not set |
| 620 | # CONFIG_SENSORS_ABITUGURU is not set | 628 | # CONFIG_SENSORS_ABITUGURU is not set |
| 621 | # CONFIG_SENSORS_F71805F is not set | 629 | # CONFIG_SENSORS_F71805F is not set |
| 622 | # CONFIG_SENSORS_PC87427 is not set | 630 | # CONFIG_SENSORS_PC87427 is not set |
| 631 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
| 632 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
| 623 | # CONFIG_SENSORS_VT1211 is not set | 633 | # CONFIG_SENSORS_VT1211 is not set |
| 634 | # CONFIG_SENSORS_W83627HF is not set | ||
| 624 | # CONFIG_HWMON_DEBUG_CHIP is not set | 635 | # CONFIG_HWMON_DEBUG_CHIP is not set |
| 625 | 636 | ||
| 626 | # | 637 | # |
| 638 | # Multifunction device drivers | ||
| 639 | # | ||
| 640 | # CONFIG_MFD_SM501 is not set | ||
| 641 | |||
| 642 | # | ||
| 627 | # Multimedia devices | 643 | # Multimedia devices |
| 628 | # | 644 | # |
| 629 | # CONFIG_VIDEO_DEV is not set | 645 | # CONFIG_VIDEO_DEV is not set |
| 646 | # CONFIG_DVB_CORE is not set | ||
| 647 | # CONFIG_DAB is not set | ||
| 630 | 648 | ||
| 631 | # | 649 | # |
| 632 | # Digital Video Broadcasting Devices | 650 | # Graphics support |
| 633 | # | 651 | # |
| 634 | # CONFIG_DVB is not set | 652 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
| 635 | 653 | ||
| 636 | # | 654 | # |
| 637 | # Graphics support | 655 | # Display device support |
| 638 | # | 656 | # |
| 639 | CONFIG_FIRMWARE_EDID=y | 657 | # CONFIG_DISPLAY_SUPPORT is not set |
| 658 | # CONFIG_VGASTATE is not set | ||
| 640 | # CONFIG_FB is not set | 659 | # CONFIG_FB is not set |
| 641 | 660 | ||
| 642 | # | 661 | # |
| @@ -644,7 +663,6 @@ CONFIG_FIRMWARE_EDID=y | |||
| 644 | # | 663 | # |
| 645 | # CONFIG_PROM_CONSOLE is not set | 664 | # CONFIG_PROM_CONSOLE is not set |
| 646 | CONFIG_DUMMY_CONSOLE=y | 665 | CONFIG_DUMMY_CONSOLE=y |
| 647 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 648 | 666 | ||
| 649 | # | 667 | # |
| 650 | # Sound | 668 | # Sound |
| @@ -655,6 +673,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
| 655 | # HID Devices | 673 | # HID Devices |
| 656 | # | 674 | # |
| 657 | CONFIG_HID=y | 675 | CONFIG_HID=y |
| 676 | # CONFIG_HID_DEBUG is not set | ||
| 658 | 677 | ||
| 659 | # | 678 | # |
| 660 | # USB support | 679 | # USB support |
| @@ -672,10 +691,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
| 672 | # USB Gadget Support | 691 | # USB Gadget Support |
| 673 | # | 692 | # |
| 674 | # CONFIG_USB_GADGET is not set | 693 | # CONFIG_USB_GADGET is not set |
| 675 | |||
| 676 | # | ||
| 677 | # MMC/SD Card support | ||
| 678 | # | ||
| 679 | # CONFIG_MMC is not set | 694 | # CONFIG_MMC is not set |
| 680 | 695 | ||
| 681 | # | 696 | # |
| @@ -719,10 +734,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
| 719 | # | 734 | # |
| 720 | 735 | ||
| 721 | # | 736 | # |
| 722 | # Virtualization | ||
| 723 | # | ||
| 724 | |||
| 725 | # | ||
| 726 | # Misc Linux/SPARC drivers | 737 | # Misc Linux/SPARC drivers |
| 727 | # | 738 | # |
| 728 | CONFIG_SUN_OPENPROMIO=m | 739 | CONFIG_SUN_OPENPROMIO=m |
| @@ -801,6 +812,7 @@ CONFIG_RAMFS=y | |||
| 801 | # | 812 | # |
| 802 | # CONFIG_ADFS_FS is not set | 813 | # CONFIG_ADFS_FS is not set |
| 803 | # CONFIG_AFFS_FS is not set | 814 | # CONFIG_AFFS_FS is not set |
| 815 | # CONFIG_ECRYPT_FS is not set | ||
| 804 | # CONFIG_HFS_FS is not set | 816 | # CONFIG_HFS_FS is not set |
| 805 | # CONFIG_HFSPLUS_FS is not set | 817 | # CONFIG_HFSPLUS_FS is not set |
| 806 | CONFIG_BEFS_FS=m | 818 | CONFIG_BEFS_FS=m |
| @@ -827,6 +839,7 @@ CONFIG_LOCKD=y | |||
| 827 | CONFIG_NFS_COMMON=y | 839 | CONFIG_NFS_COMMON=y |
| 828 | CONFIG_SUNRPC=y | 840 | CONFIG_SUNRPC=y |
| 829 | CONFIG_SUNRPC_GSS=m | 841 | CONFIG_SUNRPC_GSS=m |
| 842 | # CONFIG_SUNRPC_BIND34 is not set | ||
| 830 | CONFIG_RPCSEC_GSS_KRB5=m | 843 | CONFIG_RPCSEC_GSS_KRB5=m |
| 831 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 844 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| 832 | # CONFIG_SMB_FS is not set | 845 | # CONFIG_SMB_FS is not set |
| @@ -839,7 +852,7 @@ CONFIG_CIFS=m | |||
| 839 | # CONFIG_NCP_FS is not set | 852 | # CONFIG_NCP_FS is not set |
| 840 | # CONFIG_CODA_FS is not set | 853 | # CONFIG_CODA_FS is not set |
| 841 | CONFIG_AFS_FS=m | 854 | CONFIG_AFS_FS=m |
| 842 | CONFIG_RXRPC=m | 855 | # CONFIG_AFS_DEBUG is not set |
| 843 | # CONFIG_9P_FS is not set | 856 | # CONFIG_9P_FS is not set |
| 844 | 857 | ||
| 845 | # | 858 | # |
| @@ -913,15 +926,14 @@ CONFIG_MAGIC_SYSRQ=y | |||
| 913 | # CONFIG_DEBUG_FS is not set | 926 | # CONFIG_DEBUG_FS is not set |
| 914 | # CONFIG_HEADERS_CHECK is not set | 927 | # CONFIG_HEADERS_CHECK is not set |
| 915 | CONFIG_DEBUG_KERNEL=y | 928 | CONFIG_DEBUG_KERNEL=y |
| 916 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 917 | CONFIG_DETECT_SOFTLOCKUP=y | 929 | CONFIG_DETECT_SOFTLOCKUP=y |
| 918 | # CONFIG_SCHEDSTATS is not set | 930 | # CONFIG_SCHEDSTATS is not set |
| 931 | # CONFIG_TIMER_STATS is not set | ||
| 919 | # CONFIG_DEBUG_SLAB is not set | 932 | # CONFIG_DEBUG_SLAB is not set |
| 920 | # CONFIG_DEBUG_RT_MUTEXES is not set | 933 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 921 | # CONFIG_RT_MUTEX_TESTER is not set | 934 | # CONFIG_RT_MUTEX_TESTER is not set |
| 922 | # CONFIG_DEBUG_SPINLOCK is not set | 935 | # CONFIG_DEBUG_SPINLOCK is not set |
| 923 | # CONFIG_DEBUG_MUTEXES is not set | 936 | # CONFIG_DEBUG_MUTEXES is not set |
| 924 | # CONFIG_DEBUG_RWSEMS is not set | ||
| 925 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 937 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| 926 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 938 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
| 927 | # CONFIG_DEBUG_KOBJECT is not set | 939 | # CONFIG_DEBUG_KOBJECT is not set |
| @@ -932,12 +944,14 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
| 932 | # CONFIG_DEBUG_LIST is not set | 944 | # CONFIG_DEBUG_LIST is not set |
| 933 | CONFIG_FORCED_INLINING=y | 945 | CONFIG_FORCED_INLINING=y |
| 934 | # CONFIG_RCU_TORTURE_TEST is not set | 946 | # CONFIG_RCU_TORTURE_TEST is not set |
| 947 | # CONFIG_FAULT_INJECTION is not set | ||
| 935 | # CONFIG_DEBUG_STACK_USAGE is not set | 948 | # CONFIG_DEBUG_STACK_USAGE is not set |
| 936 | 949 | ||
| 937 | # | 950 | # |
| 938 | # Security options | 951 | # Security options |
| 939 | # | 952 | # |
| 940 | # CONFIG_KEYS is not set | 953 | CONFIG_KEYS=y |
| 954 | # CONFIG_KEYS_DEBUG_PROC_KEYS is not set | ||
| 941 | # CONFIG_SECURITY is not set | 955 | # CONFIG_SECURITY is not set |
| 942 | 956 | ||
| 943 | # | 957 | # |
| @@ -961,8 +975,11 @@ CONFIG_CRYPTO_SHA512=m | |||
| 961 | # CONFIG_CRYPTO_GF128MUL is not set | 975 | # CONFIG_CRYPTO_GF128MUL is not set |
| 962 | CONFIG_CRYPTO_ECB=m | 976 | CONFIG_CRYPTO_ECB=m |
| 963 | CONFIG_CRYPTO_CBC=y | 977 | CONFIG_CRYPTO_CBC=y |
| 978 | CONFIG_CRYPTO_PCBC=m | ||
| 964 | # CONFIG_CRYPTO_LRW is not set | 979 | # CONFIG_CRYPTO_LRW is not set |
| 980 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 965 | CONFIG_CRYPTO_DES=y | 981 | CONFIG_CRYPTO_DES=y |
| 982 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 966 | CONFIG_CRYPTO_BLOWFISH=m | 983 | CONFIG_CRYPTO_BLOWFISH=m |
| 967 | CONFIG_CRYPTO_TWOFISH=m | 984 | CONFIG_CRYPTO_TWOFISH=m |
| 968 | CONFIG_CRYPTO_TWOFISH_COMMON=m | 985 | CONFIG_CRYPTO_TWOFISH_COMMON=m |
| @@ -977,6 +994,7 @@ CONFIG_CRYPTO_ARC4=m | |||
| 977 | CONFIG_CRYPTO_DEFLATE=y | 994 | CONFIG_CRYPTO_DEFLATE=y |
| 978 | CONFIG_CRYPTO_MICHAEL_MIC=m | 995 | CONFIG_CRYPTO_MICHAEL_MIC=m |
| 979 | CONFIG_CRYPTO_CRC32C=m | 996 | CONFIG_CRYPTO_CRC32C=m |
| 997 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 980 | # CONFIG_CRYPTO_TEST is not set | 998 | # CONFIG_CRYPTO_TEST is not set |
| 981 | 999 | ||
| 982 | # | 1000 | # |
| @@ -989,9 +1007,12 @@ CONFIG_CRYPTO_CRC32C=m | |||
| 989 | CONFIG_BITREVERSE=y | 1007 | CONFIG_BITREVERSE=y |
| 990 | # CONFIG_CRC_CCITT is not set | 1008 | # CONFIG_CRC_CCITT is not set |
| 991 | # CONFIG_CRC16 is not set | 1009 | # CONFIG_CRC16 is not set |
| 1010 | # CONFIG_CRC_ITU_T is not set | ||
| 992 | CONFIG_CRC32=y | 1011 | CONFIG_CRC32=y |
| 993 | CONFIG_LIBCRC32C=m | 1012 | CONFIG_LIBCRC32C=m |
| 994 | CONFIG_ZLIB_INFLATE=y | 1013 | CONFIG_ZLIB_INFLATE=y |
| 995 | CONFIG_ZLIB_DEFLATE=y | 1014 | CONFIG_ZLIB_DEFLATE=y |
| 996 | CONFIG_PLIST=y | 1015 | CONFIG_PLIST=y |
| 997 | CONFIG_IOMAP_COPY=y | 1016 | CONFIG_HAS_IOMEM=y |
| 1017 | CONFIG_HAS_IOPORT=y | ||
| 1018 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S index 97da13c52563..9a219e8b5ddb 100644 --- a/arch/sparc/kernel/head.S +++ b/arch/sparc/kernel/head.S | |||
| @@ -19,7 +19,7 @@ | |||
| 19 | #include <asm/ptrace.h> | 19 | #include <asm/ptrace.h> |
| 20 | #include <asm/psr.h> | 20 | #include <asm/psr.h> |
| 21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
| 22 | #include <linux/kdebug.h> | 22 | #include <asm/kdebug.h> |
| 23 | #include <asm/winmacro.h> | 23 | #include <asm/winmacro.h> |
| 24 | #include <asm/thread_info.h> /* TI_UWINMASK */ | 24 | #include <asm/thread_info.h> /* TI_UWINMASK */ |
| 25 | #include <asm/errno.h> | 25 | #include <asm/errno.h> |
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index 585ef4fb7591..65840a62bb9c 100644 --- a/arch/sparc64/defconfig +++ b/arch/sparc64/defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.21 | 3 | # Linux kernel version: 2.6.22-rc1 |
| 4 | # Fri May 11 14:31:45 2007 | 4 | # Mon May 14 04:17:48 2007 |
| 5 | # | 5 | # |
| 6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
| 7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
| @@ -508,10 +508,6 @@ CONFIG_ISCSI_TCP=m | |||
| 508 | # CONFIG_SCSI_ESP_CORE is not set | 508 | # CONFIG_SCSI_ESP_CORE is not set |
| 509 | # CONFIG_SCSI_SUNESP is not set | 509 | # CONFIG_SCSI_SUNESP is not set |
| 510 | # CONFIG_SCSI_SRP is not set | 510 | # CONFIG_SCSI_SRP is not set |
| 511 | |||
| 512 | # | ||
| 513 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
| 514 | # | ||
| 515 | # CONFIG_ATA is not set | 511 | # CONFIG_ATA is not set |
| 516 | 512 | ||
| 517 | # | 513 | # |
| @@ -568,10 +564,6 @@ CONFIG_DUMMY=m | |||
| 568 | # ARCnet devices | 564 | # ARCnet devices |
| 569 | # | 565 | # |
| 570 | # CONFIG_ARCNET is not set | 566 | # CONFIG_ARCNET is not set |
| 571 | |||
| 572 | # | ||
| 573 | # PHY device support | ||
| 574 | # | ||
| 575 | # CONFIG_PHYLIB is not set | 567 | # CONFIG_PHYLIB is not set |
| 576 | 568 | ||
| 577 | # | 569 | # |
| @@ -611,10 +603,7 @@ CONFIG_NET_PCI=y | |||
| 611 | # CONFIG_SUNDANCE is not set | 603 | # CONFIG_SUNDANCE is not set |
| 612 | # CONFIG_VIA_RHINE is not set | 604 | # CONFIG_VIA_RHINE is not set |
| 613 | # CONFIG_SC92031 is not set | 605 | # CONFIG_SC92031 is not set |
| 614 | 606 | CONFIG_NETDEV_1000=y | |
| 615 | # | ||
| 616 | # Ethernet (1000 Mbit) | ||
| 617 | # | ||
| 618 | # CONFIG_ACENIC is not set | 607 | # CONFIG_ACENIC is not set |
| 619 | # CONFIG_DL2K is not set | 608 | # CONFIG_DL2K is not set |
| 620 | CONFIG_E1000=m | 609 | CONFIG_E1000=m |
| @@ -634,10 +623,7 @@ CONFIG_TIGON3=m | |||
| 634 | CONFIG_BNX2=m | 623 | CONFIG_BNX2=m |
| 635 | # CONFIG_QLA3XXX is not set | 624 | # CONFIG_QLA3XXX is not set |
| 636 | # CONFIG_ATL1 is not set | 625 | # CONFIG_ATL1 is not set |
| 637 | 626 | CONFIG_NETDEV_10000=y | |
| 638 | # | ||
| 639 | # Ethernet (10000 Mbit) | ||
| 640 | # | ||
| 641 | # CONFIG_CHELSIO_T1 is not set | 627 | # CONFIG_CHELSIO_T1 is not set |
| 642 | # CONFIG_CHELSIO_T3 is not set | 628 | # CONFIG_CHELSIO_T3 is not set |
| 643 | # CONFIG_IXGB is not set | 629 | # CONFIG_IXGB is not set |
| @@ -667,10 +653,6 @@ CONFIG_MLX4_DEBUG=y | |||
| 667 | # CONFIG_USB_RTL8150 is not set | 653 | # CONFIG_USB_RTL8150 is not set |
| 668 | # CONFIG_USB_USBNET_MII is not set | 654 | # CONFIG_USB_USBNET_MII is not set |
| 669 | # CONFIG_USB_USBNET is not set | 655 | # CONFIG_USB_USBNET is not set |
| 670 | |||
| 671 | # | ||
| 672 | # Wan interfaces | ||
| 673 | # | ||
| 674 | # CONFIG_WAN is not set | 656 | # CONFIG_WAN is not set |
| 675 | # CONFIG_FDDI is not set | 657 | # CONFIG_FDDI is not set |
| 676 | # CONFIG_HIPPI is not set | 658 | # CONFIG_HIPPI is not set |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 7455f5d05519..16cc46a71872 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
| @@ -537,6 +537,13 @@ static int __init build_one_resource(struct device_node *parent, | |||
| 537 | return 0; | 537 | return 0; |
| 538 | } | 538 | } |
| 539 | 539 | ||
| 540 | /* When we miss an I/O space match on PCI, just pass it up | ||
| 541 | * to the next PCI bridge and/or controller. | ||
| 542 | */ | ||
| 543 | if (!strcmp(bus->name, "pci") && | ||
| 544 | (addr[0] & 0x03000000) == 0x01000000) | ||
| 545 | return 0; | ||
| 546 | |||
| 540 | return 1; | 547 | return 1; |
| 541 | } | 548 | } |
| 542 | 549 | ||
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 8087d67a0cf8..24fdf1d0adc5 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
| @@ -561,6 +561,9 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t | |||
| 561 | unsigned long flags, status; | 561 | unsigned long flags, status; |
| 562 | int cnt, retries, this_cpu, prev_sent, i; | 562 | int cnt, retries, this_cpu, prev_sent, i; |
| 563 | 563 | ||
| 564 | if (cpus_empty(mask)) | ||
| 565 | return; | ||
| 566 | |||
| 564 | /* We have to do this whole thing with interrupts fully disabled. | 567 | /* We have to do this whole thing with interrupts fully disabled. |
| 565 | * Otherwise if we send an xcall from interrupt context it will | 568 | * Otherwise if we send an xcall from interrupt context it will |
| 566 | * corrupt both our mondo block and cpu list state. | 569 | * corrupt both our mondo block and cpu list state. |
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index d28f01379b9b..cb29fb96948d 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
| @@ -776,9 +776,6 @@ asmlinkage __kprobes void default_do_nmi(struct pt_regs *regs) | |||
| 776 | */ | 776 | */ |
| 777 | if (nmi_watchdog_tick(regs,reason)) | 777 | if (nmi_watchdog_tick(regs,reason)) |
| 778 | return; | 778 | return; |
| 779 | if (notify_die(DIE_NMI_POST, "nmi_post", regs, reason, 2, 0) | ||
| 780 | == NOTIFY_STOP) | ||
| 781 | return; | ||
| 782 | if (!do_nmi_callback(regs,cpu)) | 779 | if (!do_nmi_callback(regs,cpu)) |
| 783 | unknown_nmi_error(reason, regs); | 780 | unknown_nmi_error(reason, regs); |
| 784 | 781 | ||
