diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-12-17 07:07:48 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-12-17 07:07:48 -0500 |
| commit | 1f3f424a6bee9de4d839be9951f4296333fac014 (patch) | |
| tree | 95de90dfdb4a9f64fe470709b82176243537c952 /arch | |
| parent | c8cae544bba6aee0f5cb0756dbab1a71d2c68737 (diff) | |
| parent | 1bda71282ded6a2e09a2db7c8884542fb46bfd4f (diff) | |
Merge branch 'linus' into cpus4096
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/common/sa1111.c | 2 | ||||
| -rw-r--r-- | arch/arm/kernel/armksyms.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/traps.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/include/mach/reset.h | 5 | ||||
| -rw-r--r-- | arch/arm/mm/fault.c | 1 | ||||
| -rw-r--r-- | arch/ia64/hp/sim/Kconfig | 1 | ||||
| -rw-r--r-- | arch/powerpc/kernel/misc_32.S | 3 | ||||
| -rw-r--r-- | arch/powerpc/mm/hugetlbpage.c | 3 | ||||
| -rw-r--r-- | arch/powerpc/mm/numa.c | 16 | ||||
| -rw-r--r-- | arch/powerpc/platforms/cell/axon_msi.c | 3 | ||||
| -rw-r--r-- | arch/sh/Kconfig | 2 | ||||
| -rw-r--r-- | arch/x86/include/asm/vmi.h | 8 | ||||
| -rw-r--r-- | arch/x86/kernel/setup.c | 12 | ||||
| -rw-r--r-- | arch/x86/kernel/smpboot.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/vmi_32.c | 16 |
15 files changed, 53 insertions, 26 deletions
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index 47ccec95f3e8..ef12794c3c68 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
| @@ -630,7 +630,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) | |||
| 630 | return -ENOMEM; | 630 | return -ENOMEM; |
| 631 | 631 | ||
| 632 | sachip->clk = clk_get(me, "SA1111_CLK"); | 632 | sachip->clk = clk_get(me, "SA1111_CLK"); |
| 633 | if (!sachip->clk) { | 633 | if (IS_ERR(sachip->clk)) { |
| 634 | ret = PTR_ERR(sachip->clk); | 634 | ret = PTR_ERR(sachip->clk); |
| 635 | goto err_free; | 635 | goto err_free; |
| 636 | } | 636 | } |
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index c74f766ffc12..23af3c972c9a 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
| @@ -115,6 +115,8 @@ EXPORT_SYMBOL(__strnlen_user); | |||
| 115 | EXPORT_SYMBOL(__strncpy_from_user); | 115 | EXPORT_SYMBOL(__strncpy_from_user); |
| 116 | 116 | ||
| 117 | #ifdef CONFIG_MMU | 117 | #ifdef CONFIG_MMU |
| 118 | EXPORT_SYMBOL(copy_page); | ||
| 119 | |||
| 118 | EXPORT_SYMBOL(__copy_from_user); | 120 | EXPORT_SYMBOL(__copy_from_user); |
| 119 | EXPORT_SYMBOL(__copy_to_user); | 121 | EXPORT_SYMBOL(__copy_to_user); |
| 120 | EXPORT_SYMBOL(__clear_user); | 122 | EXPORT_SYMBOL(__clear_user); |
| @@ -181,8 +183,6 @@ EXPORT_SYMBOL(_find_first_bit_be); | |||
| 181 | EXPORT_SYMBOL(_find_next_bit_be); | 183 | EXPORT_SYMBOL(_find_next_bit_be); |
| 182 | #endif | 184 | #endif |
| 183 | 185 | ||
| 184 | EXPORT_SYMBOL(copy_page); | ||
| 185 | |||
| 186 | #ifdef CONFIG_FUNCTION_TRACER | 186 | #ifdef CONFIG_FUNCTION_TRACER |
| 187 | EXPORT_SYMBOL(mcount); | 187 | EXPORT_SYMBOL(mcount); |
| 188 | #endif | 188 | #endif |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 57e6874d0b80..79abc4ddc0cf 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include <linux/personality.h> | 18 | #include <linux/personality.h> |
| 19 | #include <linux/kallsyms.h> | 19 | #include <linux/kallsyms.h> |
| 20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
| 21 | #include <linux/hardirq.h> | ||
| 21 | #include <linux/init.h> | 22 | #include <linux/init.h> |
| 22 | #include <linux/uaccess.h> | 23 | #include <linux/uaccess.h> |
| 23 | 24 | ||
diff --git a/arch/arm/mach-pxa/include/mach/reset.h b/arch/arm/mach-pxa/include/mach/reset.h index 7b8842cfa5fc..31e6a7b6ad80 100644 --- a/arch/arm/mach-pxa/include/mach/reset.h +++ b/arch/arm/mach-pxa/include/mach/reset.h | |||
| @@ -12,9 +12,8 @@ extern void clear_reset_status(unsigned int mask); | |||
| 12 | 12 | ||
| 13 | /** | 13 | /** |
| 14 | * init_gpio_reset() - register GPIO as reset generator | 14 | * init_gpio_reset() - register GPIO as reset generator |
| 15 | * | 15 | * @gpio: gpio nr |
| 16 | * @gpio - gpio nr | 16 | * @output: set gpio as out/low instead of input during normal work |
| 17 | * @output - set gpio as out/low instead of input during normal work | ||
| 18 | */ | 17 | */ |
| 19 | extern int init_gpio_reset(int gpio, int output); | 18 | extern int init_gpio_reset(int gpio, int output); |
| 20 | 19 | ||
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 2df8d9facf57..22c9530e91e2 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
| 12 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
| 13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
| 14 | #include <linux/hardirq.h> | ||
| 14 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 15 | #include <linux/kprobes.h> | 16 | #include <linux/kprobes.h> |
| 16 | #include <linux/uaccess.h> | 17 | #include <linux/uaccess.h> |
diff --git a/arch/ia64/hp/sim/Kconfig b/arch/ia64/hp/sim/Kconfig index f92306bbedb8..8d513a8c5266 100644 --- a/arch/ia64/hp/sim/Kconfig +++ b/arch/ia64/hp/sim/Kconfig | |||
| @@ -4,6 +4,7 @@ menu "HP Simulator drivers" | |||
| 4 | 4 | ||
| 5 | config HP_SIMETH | 5 | config HP_SIMETH |
| 6 | bool "Simulated Ethernet " | 6 | bool "Simulated Ethernet " |
| 7 | depends on NET | ||
| 7 | 8 | ||
| 8 | config HP_SIMSERIAL | 9 | config HP_SIMSERIAL |
| 9 | bool "Simulated serial driver support" | 10 | bool "Simulated serial driver support" |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index bdc8b0e860e5..d108715129e2 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
| @@ -479,6 +479,8 @@ _GLOBAL(_tlbil_pid) | |||
| 479 | * (no broadcast) | 479 | * (no broadcast) |
| 480 | */ | 480 | */ |
| 481 | _GLOBAL(_tlbil_va) | 481 | _GLOBAL(_tlbil_va) |
| 482 | mfmsr r10 | ||
| 483 | wrteei 0 | ||
| 482 | slwi r4,r4,16 | 484 | slwi r4,r4,16 |
| 483 | mtspr SPRN_MAS6,r4 /* assume AS=0 for now */ | 485 | mtspr SPRN_MAS6,r4 /* assume AS=0 for now */ |
| 484 | tlbsx 0,r3 | 486 | tlbsx 0,r3 |
| @@ -490,6 +492,7 @@ _GLOBAL(_tlbil_va) | |||
| 490 | tlbwe | 492 | tlbwe |
| 491 | msync | 493 | msync |
| 492 | isync | 494 | isync |
| 495 | wrtee r10 | ||
| 493 | blr | 496 | blr |
| 494 | #endif /* CONFIG_FSL_BOOKE */ | 497 | #endif /* CONFIG_FSL_BOOKE */ |
| 495 | 498 | ||
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index 7bbf4e4ed430..f0c3b88d50fa 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c | |||
| @@ -507,6 +507,9 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, | |||
| 507 | { | 507 | { |
| 508 | struct hstate *hstate = hstate_file(file); | 508 | struct hstate *hstate = hstate_file(file); |
| 509 | int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate)); | 509 | int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate)); |
| 510 | |||
| 511 | if (!mmu_huge_psizes[mmu_psize]) | ||
| 512 | return -EINVAL; | ||
| 510 | return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); | 513 | return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); |
| 511 | } | 514 | } |
| 512 | 515 | ||
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index a8397bbad3d4..cf81049e1e51 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
| @@ -901,10 +901,17 @@ static void mark_reserved_regions_for_nid(int nid) | |||
| 901 | if (end_pfn > node_ar.end_pfn) | 901 | if (end_pfn > node_ar.end_pfn) |
| 902 | reserve_size = (node_ar.end_pfn << PAGE_SHIFT) | 902 | reserve_size = (node_ar.end_pfn << PAGE_SHIFT) |
| 903 | - (start_pfn << PAGE_SHIFT); | 903 | - (start_pfn << PAGE_SHIFT); |
| 904 | dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, | 904 | /* |
| 905 | reserve_size, node_ar.nid); | 905 | * Only worry about *this* node, others may not |
| 906 | reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, | 906 | * yet have valid NODE_DATA(). |
| 907 | reserve_size, BOOTMEM_DEFAULT); | 907 | */ |
| 908 | if (node_ar.nid == nid) { | ||
| 909 | dbg("reserve_bootmem %lx %lx nid=%d\n", | ||
| 910 | physbase, reserve_size, node_ar.nid); | ||
| 911 | reserve_bootmem_node(NODE_DATA(node_ar.nid), | ||
| 912 | physbase, reserve_size, | ||
| 913 | BOOTMEM_DEFAULT); | ||
| 914 | } | ||
| 908 | /* | 915 | /* |
| 909 | * if reserved region is contained in the active region | 916 | * if reserved region is contained in the active region |
| 910 | * then done. | 917 | * then done. |
| @@ -929,7 +936,6 @@ static void mark_reserved_regions_for_nid(int nid) | |||
| 929 | void __init do_init_bootmem(void) | 936 | void __init do_init_bootmem(void) |
| 930 | { | 937 | { |
| 931 | int nid; | 938 | int nid; |
| 932 | unsigned int i; | ||
| 933 | 939 | ||
| 934 | min_low_pfn = 0; | 940 | min_low_pfn = 0; |
| 935 | max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; | 941 | max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; |
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c index 442cf36aa172..0ce45c2b42f8 100644 --- a/arch/powerpc/platforms/cell/axon_msi.c +++ b/arch/powerpc/platforms/cell/axon_msi.c | |||
| @@ -413,6 +413,9 @@ static int axon_msi_probe(struct of_device *device, | |||
| 413 | MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE | | 413 | MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE | |
| 414 | MSIC_CTRL_FIFO_SIZE); | 414 | MSIC_CTRL_FIFO_SIZE); |
| 415 | 415 | ||
| 416 | msic->read_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG) | ||
| 417 | & MSIC_FIFO_SIZE_MASK; | ||
| 418 | |||
| 416 | device->dev.platform_data = msic; | 419 | device->dev.platform_data = msic; |
| 417 | 420 | ||
| 418 | ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs; | 421 | ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs; |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 80119b3398e7..5c9cbfc14c4d 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
| @@ -55,6 +55,8 @@ config GENERIC_HARDIRQS | |||
| 55 | 55 | ||
| 56 | config GENERIC_HARDIRQS_NO__DO_IRQ | 56 | config GENERIC_HARDIRQS_NO__DO_IRQ |
| 57 | def_bool y | 57 | def_bool y |
| 58 | depends on SUPERH32 && (!SH_DREAMCAST && !SH_SH4202_MICRODEV && \ | ||
| 59 | !SH_7751_SYSTEMH && !HD64461) | ||
| 58 | 60 | ||
| 59 | config GENERIC_IRQ_PROBE | 61 | config GENERIC_IRQ_PROBE |
| 60 | def_bool y | 62 | def_bool y |
diff --git a/arch/x86/include/asm/vmi.h b/arch/x86/include/asm/vmi.h index b7c0dea119fe..61e08c0a2907 100644 --- a/arch/x86/include/asm/vmi.h +++ b/arch/x86/include/asm/vmi.h | |||
| @@ -223,9 +223,15 @@ struct pci_header { | |||
| 223 | } __attribute__((packed)); | 223 | } __attribute__((packed)); |
| 224 | 224 | ||
| 225 | /* Function prototypes for bootstrapping */ | 225 | /* Function prototypes for bootstrapping */ |
| 226 | #ifdef CONFIG_VMI | ||
| 226 | extern void vmi_init(void); | 227 | extern void vmi_init(void); |
| 228 | extern void vmi_activate(void); | ||
| 227 | extern void vmi_bringup(void); | 229 | extern void vmi_bringup(void); |
| 228 | extern void vmi_apply_boot_page_allocations(void); | 230 | #else |
| 231 | static inline void vmi_init(void) {} | ||
| 232 | static inline void vmi_activate(void) {} | ||
| 233 | static inline void vmi_bringup(void) {} | ||
| 234 | #endif | ||
| 229 | 235 | ||
| 230 | /* State needed to start an application processor in an SMP system. */ | 236 | /* State needed to start an application processor in an SMP system. */ |
| 231 | struct vmi_ap_state { | 237 | struct vmi_ap_state { |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index b9018955a04f..32fe42f26e79 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
| @@ -807,6 +807,9 @@ void __init setup_arch(char **cmdline_p) | |||
| 807 | printk(KERN_INFO "Command line: %s\n", boot_command_line); | 807 | printk(KERN_INFO "Command line: %s\n", boot_command_line); |
| 808 | #endif | 808 | #endif |
| 809 | 809 | ||
| 810 | /* VMI may relocate the fixmap; do this before touching ioremap area */ | ||
| 811 | vmi_init(); | ||
| 812 | |||
| 810 | early_cpu_init(); | 813 | early_cpu_init(); |
| 811 | early_ioremap_init(); | 814 | early_ioremap_init(); |
| 812 | 815 | ||
| @@ -893,13 +896,8 @@ void __init setup_arch(char **cmdline_p) | |||
| 893 | check_efer(); | 896 | check_efer(); |
| 894 | #endif | 897 | #endif |
| 895 | 898 | ||
| 896 | #if defined(CONFIG_VMI) && defined(CONFIG_X86_32) | 899 | /* Must be before kernel pagetables are setup */ |
| 897 | /* | 900 | vmi_activate(); |
| 898 | * Must be before kernel pagetables are setup | ||
| 899 | * or fixmap area is touched. | ||
| 900 | */ | ||
| 901 | vmi_init(); | ||
| 902 | #endif | ||
| 903 | 901 | ||
| 904 | /* after early param, so could get panic from serial */ | 902 | /* after early param, so could get panic from serial */ |
| 905 | reserve_early_setup_data(); | 903 | reserve_early_setup_data(); |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 9d58134e0231..199dcbb73d37 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
| @@ -289,9 +289,7 @@ static void __cpuinit start_secondary(void *unused) | |||
| 289 | * fragile that we want to limit the things done here to the | 289 | * fragile that we want to limit the things done here to the |
| 290 | * most necessary things. | 290 | * most necessary things. |
| 291 | */ | 291 | */ |
| 292 | #ifdef CONFIG_VMI | ||
| 293 | vmi_bringup(); | 292 | vmi_bringup(); |
| 294 | #endif | ||
| 295 | cpu_init(); | 293 | cpu_init(); |
| 296 | preempt_disable(); | 294 | preempt_disable(); |
| 297 | smp_callin(); | 295 | smp_callin(); |
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c index 8b6c393ab9fd..22fd6577156a 100644 --- a/arch/x86/kernel/vmi_32.c +++ b/arch/x86/kernel/vmi_32.c | |||
| @@ -960,8 +960,6 @@ static inline int __init activate_vmi(void) | |||
| 960 | 960 | ||
| 961 | void __init vmi_init(void) | 961 | void __init vmi_init(void) |
| 962 | { | 962 | { |
| 963 | unsigned long flags; | ||
| 964 | |||
| 965 | if (!vmi_rom) | 963 | if (!vmi_rom) |
| 966 | probe_vmi_rom(); | 964 | probe_vmi_rom(); |
| 967 | else | 965 | else |
| @@ -973,13 +971,21 @@ void __init vmi_init(void) | |||
| 973 | 971 | ||
| 974 | reserve_top_address(-vmi_rom->virtual_top); | 972 | reserve_top_address(-vmi_rom->virtual_top); |
| 975 | 973 | ||
| 976 | local_irq_save(flags); | ||
| 977 | activate_vmi(); | ||
| 978 | |||
| 979 | #ifdef CONFIG_X86_IO_APIC | 974 | #ifdef CONFIG_X86_IO_APIC |
| 980 | /* This is virtual hardware; timer routing is wired correctly */ | 975 | /* This is virtual hardware; timer routing is wired correctly */ |
| 981 | no_timer_check = 1; | 976 | no_timer_check = 1; |
| 982 | #endif | 977 | #endif |
| 978 | } | ||
| 979 | |||
| 980 | void vmi_activate(void) | ||
| 981 | { | ||
| 982 | unsigned long flags; | ||
| 983 | |||
| 984 | if (!vmi_rom) | ||
| 985 | return; | ||
| 986 | |||
| 987 | local_irq_save(flags); | ||
| 988 | activate_vmi(); | ||
| 983 | local_irq_restore(flags & X86_EFLAGS_IF); | 989 | local_irq_restore(flags & X86_EFLAGS_IF); |
| 984 | } | 990 | } |
| 985 | 991 | ||
