diff options
Diffstat (limited to 'arch')
33 files changed, 89 insertions, 93 deletions
diff --git a/arch/alpha/kernel/head.S b/arch/alpha/kernel/head.S index e27d23c74ba8..7ac1f1372c36 100644 --- a/arch/alpha/kernel/head.S +++ b/arch/alpha/kernel/head.S | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <asm/system.h> | 10 | #include <asm/system.h> |
11 | #include <asm/asm-offsets.h> | 11 | #include <asm/asm-offsets.h> |
12 | 12 | ||
13 | .section .text.head, "ax" | ||
13 | .globl swapper_pg_dir | 14 | .globl swapper_pg_dir |
14 | .globl _stext | 15 | .globl _stext |
15 | swapper_pg_dir=SWAPPER_PGD | 16 | swapper_pg_dir=SWAPPER_PGD |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index ab642a4f08de..9dc1cee43265 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
@@ -195,7 +195,7 @@ pcibios_init(void) | |||
195 | 195 | ||
196 | subsys_initcall(pcibios_init); | 196 | subsys_initcall(pcibios_init); |
197 | 197 | ||
198 | char * __init | 198 | char * __devinit |
199 | pcibios_setup(char *str) | 199 | pcibios_setup(char *str) |
200 | { | 200 | { |
201 | return str; | 201 | return str; |
@@ -204,7 +204,7 @@ pcibios_setup(char *str) | |||
204 | #ifdef ALPHA_RESTORE_SRM_SETUP | 204 | #ifdef ALPHA_RESTORE_SRM_SETUP |
205 | static struct pdev_srm_saved_conf *srm_saved_configs; | 205 | static struct pdev_srm_saved_conf *srm_saved_configs; |
206 | 206 | ||
207 | void __init | 207 | void __devinit |
208 | pdev_save_srm_config(struct pci_dev *dev) | 208 | pdev_save_srm_config(struct pci_dev *dev) |
209 | { | 209 | { |
210 | struct pdev_srm_saved_conf *tmp; | 210 | struct pdev_srm_saved_conf *tmp; |
@@ -247,14 +247,14 @@ pci_restore_srm_config(void) | |||
247 | } | 247 | } |
248 | #endif | 248 | #endif |
249 | 249 | ||
250 | void __init | 250 | void __devinit |
251 | pcibios_fixup_resource(struct resource *res, struct resource *root) | 251 | pcibios_fixup_resource(struct resource *res, struct resource *root) |
252 | { | 252 | { |
253 | res->start += root->start; | 253 | res->start += root->start; |
254 | res->end += root->start; | 254 | res->end += root->start; |
255 | } | 255 | } |
256 | 256 | ||
257 | void __init | 257 | void __devinit |
258 | pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus) | 258 | pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus) |
259 | { | 259 | { |
260 | /* Update device resources. */ | 260 | /* Update device resources. */ |
@@ -273,7 +273,7 @@ pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus) | |||
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | void __init | 276 | void __devinit |
277 | pcibios_fixup_bus(struct pci_bus *bus) | 277 | pcibios_fixup_bus(struct pci_bus *bus) |
278 | { | 278 | { |
279 | /* Propagate hose info into the subordinate devices. */ | 279 | /* Propagate hose info into the subordinate devices. */ |
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index 6b07f89a72c7..e1c470752ebc 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -58,7 +58,7 @@ size_for_memory(unsigned long max) | |||
58 | return max; | 58 | return max; |
59 | } | 59 | } |
60 | 60 | ||
61 | struct pci_iommu_arena * | 61 | struct pci_iommu_arena * __init |
62 | iommu_arena_new_node(int nid, struct pci_controller *hose, dma_addr_t base, | 62 | iommu_arena_new_node(int nid, struct pci_controller *hose, dma_addr_t base, |
63 | unsigned long window_size, unsigned long align) | 63 | unsigned long window_size, unsigned long align) |
64 | { | 64 | { |
@@ -117,7 +117,7 @@ iommu_arena_new_node(int nid, struct pci_controller *hose, dma_addr_t base, | |||
117 | return arena; | 117 | return arena; |
118 | } | 118 | } |
119 | 119 | ||
120 | struct pci_iommu_arena * | 120 | struct pci_iommu_arena * __init |
121 | iommu_arena_new(struct pci_controller *hose, dma_addr_t base, | 121 | iommu_arena_new(struct pci_controller *hose, dma_addr_t base, |
122 | unsigned long window_size, unsigned long align) | 122 | unsigned long window_size, unsigned long align) |
123 | { | 123 | { |
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index b28731437c31..0804b6abe203 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -358,7 +358,7 @@ secondary_cpu_start(int cpuid, struct task_struct *idle) | |||
358 | /* | 358 | /* |
359 | * Bring one cpu online. | 359 | * Bring one cpu online. |
360 | */ | 360 | */ |
361 | static int __devinit | 361 | static int __cpuinit |
362 | smp_boot_one_cpu(int cpuid) | 362 | smp_boot_one_cpu(int cpuid) |
363 | { | 363 | { |
364 | struct task_struct *idle; | 364 | struct task_struct *idle; |
@@ -487,7 +487,7 @@ smp_prepare_boot_cpu(void) | |||
487 | { | 487 | { |
488 | } | 488 | } |
489 | 489 | ||
490 | int __devinit | 490 | int __cpuinit |
491 | __cpu_up(unsigned int cpu) | 491 | __cpu_up(unsigned int cpu) |
492 | { | 492 | { |
493 | smp_boot_one_cpu(cpu); | 493 | smp_boot_one_cpu(cpu); |
@@ -541,7 +541,7 @@ smp_percpu_timer_interrupt(struct pt_regs *regs) | |||
541 | set_irq_regs(old_regs); | 541 | set_irq_regs(old_regs); |
542 | } | 542 | } |
543 | 543 | ||
544 | int __init | 544 | int |
545 | setup_profiling_timer(unsigned int multiplier) | 545 | setup_profiling_timer(unsigned int multiplier) |
546 | { | 546 | { |
547 | return -EINVAL; | 547 | return -EINVAL; |
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index fe13daa5cb2c..7af07d3ad5f0 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
@@ -15,6 +15,7 @@ SECTIONS | |||
15 | 15 | ||
16 | _text = .; /* Text and read-only data */ | 16 | _text = .; /* Text and read-only data */ |
17 | .text : { | 17 | .text : { |
18 | *(.text.head) | ||
18 | TEXT_TEXT | 19 | TEXT_TEXT |
19 | SCHED_TEXT | 20 | SCHED_TEXT |
20 | LOCK_TEXT | 21 | LOCK_TEXT |
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index c3750c2c4113..c85598acb8fd 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -430,22 +430,12 @@ void __init alternative_instructions(void) | |||
430 | * And on the local CPU you need to be protected again NMI or MCE handlers | 430 | * And on the local CPU you need to be protected again NMI or MCE handlers |
431 | * seeing an inconsistent instruction while you patch. | 431 | * seeing an inconsistent instruction while you patch. |
432 | */ | 432 | */ |
433 | void __kprobes text_poke(void *oaddr, unsigned char *opcode, int len) | 433 | void __kprobes text_poke(void *addr, unsigned char *opcode, int len) |
434 | { | 434 | { |
435 | u8 *addr = oaddr; | ||
436 | if (!pte_write(*lookup_address((unsigned long)addr))) { | ||
437 | struct page *p[2] = { virt_to_page(addr), virt_to_page(addr+PAGE_SIZE) }; | ||
438 | addr = vmap(p, 2, VM_MAP, PAGE_KERNEL); | ||
439 | if (!addr) | ||
440 | return; | ||
441 | addr += ((unsigned long)oaddr) % PAGE_SIZE; | ||
442 | } | ||
443 | memcpy(addr, opcode, len); | 435 | memcpy(addr, opcode, len); |
444 | sync_core(); | 436 | sync_core(); |
445 | /* Not strictly needed, but can speed CPU recovery up. Ignore cross cacheline | 437 | /* Not strictly needed, but can speed CPU recovery up. Ignore cross cacheline |
446 | case. */ | 438 | case. */ |
447 | if (cpu_has_clflush) | 439 | if (cpu_has_clflush) |
448 | asm("clflush (%0) " :: "r" (oaddr) : "memory"); | 440 | asm("clflush (%0) " :: "r" (addr) : "memory"); |
449 | if (addr != oaddr) | ||
450 | vunmap(addr); | ||
451 | } | 441 | } |
diff --git a/arch/i386/kernel/cpu/cpufreq/Kconfig b/arch/i386/kernel/cpu/cpufreq/Kconfig index 094118ba00da..d8c6f132dc7a 100644 --- a/arch/i386/kernel/cpu/cpufreq/Kconfig +++ b/arch/i386/kernel/cpu/cpufreq/Kconfig | |||
@@ -92,7 +92,7 @@ config X86_POWERNOW_K8 | |||
92 | config X86_POWERNOW_K8_ACPI | 92 | config X86_POWERNOW_K8_ACPI |
93 | bool "ACPI Support" | 93 | bool "ACPI Support" |
94 | select ACPI_PROCESSOR | 94 | select ACPI_PROCESSOR |
95 | depends on X86_POWERNOW_K8 | 95 | depends on ACPI && X86_POWERNOW_K8 |
96 | default y | 96 | default y |
97 | help | 97 | help |
98 | This provides access to the K8s Processor Performance States via ACPI. | 98 | This provides access to the K8s Processor Performance States via ACPI. |
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index 1b1a1e66d099..4c4809f13cb1 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c | |||
@@ -800,9 +800,17 @@ void mark_rodata_ro(void) | |||
800 | unsigned long start = PFN_ALIGN(_text); | 800 | unsigned long start = PFN_ALIGN(_text); |
801 | unsigned long size = PFN_ALIGN(_etext) - start; | 801 | unsigned long size = PFN_ALIGN(_etext) - start; |
802 | 802 | ||
803 | change_page_attr(virt_to_page(start), | 803 | #ifndef CONFIG_KPROBES |
804 | size >> PAGE_SHIFT, PAGE_KERNEL_RX); | 804 | #ifdef CONFIG_HOTPLUG_CPU |
805 | printk("Write protecting the kernel text: %luk\n", size >> 10); | 805 | /* It must still be possible to apply SMP alternatives. */ |
806 | if (num_possible_cpus() <= 1) | ||
807 | #endif | ||
808 | { | ||
809 | change_page_attr(virt_to_page(start), | ||
810 | size >> PAGE_SHIFT, PAGE_KERNEL_RX); | ||
811 | printk("Write protecting the kernel text: %luk\n", size >> 10); | ||
812 | } | ||
813 | #endif | ||
806 | start += size; | 814 | start += size; |
807 | size = (unsigned long)__end_rodata - start; | 815 | size = (unsigned long)__end_rodata - start; |
808 | change_page_attr(virt_to_page(start), | 816 | change_page_attr(virt_to_page(start), |
diff --git a/arch/ia64/kernel/cyclone.c b/arch/ia64/kernel/cyclone.c index 2fd96d9062a1..790ef0d87e12 100644 --- a/arch/ia64/kernel/cyclone.c +++ b/arch/ia64/kernel/cyclone.c | |||
@@ -38,11 +38,11 @@ static struct clocksource clocksource_cyclone = { | |||
38 | 38 | ||
39 | int __init init_cyclone_clock(void) | 39 | int __init init_cyclone_clock(void) |
40 | { | 40 | { |
41 | u64* reg; | 41 | u64 __iomem *reg; |
42 | u64 base; /* saved cyclone base address */ | 42 | u64 base; /* saved cyclone base address */ |
43 | u64 offset; /* offset from pageaddr to cyclone_timer register */ | 43 | u64 offset; /* offset from pageaddr to cyclone_timer register */ |
44 | int i; | 44 | int i; |
45 | u32* volatile cyclone_timer; /* Cyclone MPMC0 register */ | 45 | u32 __iomem *cyclone_timer; /* Cyclone MPMC0 register */ |
46 | 46 | ||
47 | if (!use_cyclone) | 47 | if (!use_cyclone) |
48 | return 0; | 48 | return 0; |
@@ -51,7 +51,7 @@ int __init init_cyclone_clock(void) | |||
51 | 51 | ||
52 | /* find base address */ | 52 | /* find base address */ |
53 | offset = (CYCLONE_CBAR_ADDR); | 53 | offset = (CYCLONE_CBAR_ADDR); |
54 | reg = (u64*)ioremap_nocache(offset, sizeof(u64)); | 54 | reg = ioremap_nocache(offset, sizeof(u64)); |
55 | if(!reg){ | 55 | if(!reg){ |
56 | printk(KERN_ERR "Summit chipset: Could not find valid CBAR" | 56 | printk(KERN_ERR "Summit chipset: Could not find valid CBAR" |
57 | " register.\n"); | 57 | " register.\n"); |
@@ -69,7 +69,7 @@ int __init init_cyclone_clock(void) | |||
69 | 69 | ||
70 | /* setup PMCC */ | 70 | /* setup PMCC */ |
71 | offset = (base + CYCLONE_PMCC_OFFSET); | 71 | offset = (base + CYCLONE_PMCC_OFFSET); |
72 | reg = (u64*)ioremap_nocache(offset, sizeof(u64)); | 72 | reg = ioremap_nocache(offset, sizeof(u64)); |
73 | if(!reg){ | 73 | if(!reg){ |
74 | printk(KERN_ERR "Summit chipset: Could not find valid PMCC" | 74 | printk(KERN_ERR "Summit chipset: Could not find valid PMCC" |
75 | " register.\n"); | 75 | " register.\n"); |
@@ -81,7 +81,7 @@ int __init init_cyclone_clock(void) | |||
81 | 81 | ||
82 | /* setup MPCS */ | 82 | /* setup MPCS */ |
83 | offset = (base + CYCLONE_MPCS_OFFSET); | 83 | offset = (base + CYCLONE_MPCS_OFFSET); |
84 | reg = (u64*)ioremap_nocache(offset, sizeof(u64)); | 84 | reg = ioremap_nocache(offset, sizeof(u64)); |
85 | if(!reg){ | 85 | if(!reg){ |
86 | printk(KERN_ERR "Summit chipset: Could not find valid MPCS" | 86 | printk(KERN_ERR "Summit chipset: Could not find valid MPCS" |
87 | " register.\n"); | 87 | " register.\n"); |
@@ -93,7 +93,7 @@ int __init init_cyclone_clock(void) | |||
93 | 93 | ||
94 | /* map in cyclone_timer */ | 94 | /* map in cyclone_timer */ |
95 | offset = (base + CYCLONE_MPMC_OFFSET); | 95 | offset = (base + CYCLONE_MPMC_OFFSET); |
96 | cyclone_timer = (u32*)ioremap_nocache(offset, sizeof(u32)); | 96 | cyclone_timer = ioremap_nocache(offset, sizeof(u32)); |
97 | if(!cyclone_timer){ | 97 | if(!cyclone_timer){ |
98 | printk(KERN_ERR "Summit chipset: Could not find valid MPMC" | 98 | printk(KERN_ERR "Summit chipset: Could not find valid MPMC" |
99 | " register.\n"); | 99 | " register.\n"); |
@@ -110,7 +110,7 @@ int __init init_cyclone_clock(void) | |||
110 | printk(KERN_ERR "Summit chipset: Counter not counting!" | 110 | printk(KERN_ERR "Summit chipset: Counter not counting!" |
111 | " DISABLED\n"); | 111 | " DISABLED\n"); |
112 | iounmap(cyclone_timer); | 112 | iounmap(cyclone_timer); |
113 | cyclone_timer = 0; | 113 | cyclone_timer = NULL; |
114 | use_cyclone = 0; | 114 | use_cyclone = 0; |
115 | return -ENODEV; | 115 | return -ENODEV; |
116 | } | 116 | } |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 627785c48ea9..6c0e9e2e1b82 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -52,7 +52,7 @@ static struct clocksource clocksource_itc = { | |||
52 | .name = "itc", | 52 | .name = "itc", |
53 | .rating = 350, | 53 | .rating = 350, |
54 | .read = itc_get_cycles, | 54 | .read = itc_get_cycles, |
55 | .mask = 0xffffffffffffffff, | 55 | .mask = CLOCKSOURCE_MASK(64), |
56 | .mult = 0, /*to be caluclated*/ | 56 | .mult = 0, /*to be caluclated*/ |
57 | .shift = 16, | 57 | .shift = 16, |
58 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 58 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
@@ -255,7 +255,7 @@ ia64_init_itm (void) | |||
255 | } | 255 | } |
256 | } | 256 | } |
257 | 257 | ||
258 | static cycle_t itc_get_cycles() | 258 | static cycle_t itc_get_cycles(void) |
259 | { | 259 | { |
260 | u64 lcycle, now, ret; | 260 | u64 lcycle, now, ret; |
261 | 261 | ||
diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c index 6b2d77da0683..fe73c9ec611f 100644 --- a/arch/m32r/kernel/setup_mappi.c +++ b/arch/m32r/kernel/setup_mappi.c | |||
@@ -45,7 +45,8 @@ static void mask_and_ack_mappi(unsigned int irq) | |||
45 | 45 | ||
46 | static void end_mappi_irq(unsigned int irq) | 46 | static void end_mappi_irq(unsigned int irq) |
47 | { | 47 | { |
48 | enable_mappi_irq(irq); | 48 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) |
49 | enable_mappi_irq(irq); | ||
49 | } | 50 | } |
50 | 51 | ||
51 | static unsigned int startup_mappi_irq(unsigned int irq) | 52 | static unsigned int startup_mappi_irq(unsigned int irq) |
@@ -88,7 +89,7 @@ void __init init_IRQ(void) | |||
88 | irq_desc[M32R_IRQ_INT0].chip = &mappi_irq_type; | 89 | irq_desc[M32R_IRQ_INT0].chip = &mappi_irq_type; |
89 | irq_desc[M32R_IRQ_INT0].action = NULL; | 90 | irq_desc[M32R_IRQ_INT0].action = NULL; |
90 | irq_desc[M32R_IRQ_INT0].depth = 1; | 91 | irq_desc[M32R_IRQ_INT0].depth = 1; |
91 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 92 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD11; |
92 | disable_mappi_irq(M32R_IRQ_INT0); | 93 | disable_mappi_irq(M32R_IRQ_INT0); |
93 | #endif /* CONFIG_M32R_NE2000 */ | 94 | #endif /* CONFIG_M32R_NE2000 */ |
94 | 95 | ||
diff --git a/arch/m68knommu/kernel/setup.c b/arch/m68knommu/kernel/setup.c index a5ac0d40fbec..3f86ade3a22a 100644 --- a/arch/m68knommu/kernel/setup.c +++ b/arch/m68knommu/kernel/setup.c | |||
@@ -42,8 +42,6 @@ EXPORT_SYMBOL(memory_end); | |||
42 | 42 | ||
43 | char __initdata command_line[COMMAND_LINE_SIZE]; | 43 | char __initdata command_line[COMMAND_LINE_SIZE]; |
44 | 44 | ||
45 | void (*mach_trap_init)(void); | ||
46 | |||
47 | /* machine dependent timer functions */ | 45 | /* machine dependent timer functions */ |
48 | void (*mach_sched_init)(irq_handler_t handler); | 46 | void (*mach_sched_init)(irq_handler_t handler); |
49 | void (*mach_tick)(void); | 47 | void (*mach_tick)(void); |
diff --git a/arch/m68knommu/platform/5206/config.c b/arch/m68knommu/platform/5206/config.c index d265ed4e5afc..d0f2dc5cb5a1 100644 --- a/arch/m68knommu/platform/5206/config.c +++ b/arch/m68knommu/platform/5206/config.c | |||
@@ -28,7 +28,6 @@ | |||
28 | void coldfire_tick(void); | 28 | void coldfire_tick(void); |
29 | void coldfire_timer_init(irq_handler_t handler); | 29 | void coldfire_timer_init(irq_handler_t handler); |
30 | unsigned long coldfire_timer_offset(void); | 30 | unsigned long coldfire_timer_offset(void); |
31 | void coldfire_trap_init(void); | ||
32 | void coldfire_reset(void); | 31 | void coldfire_reset(void); |
33 | 32 | ||
34 | /***************************************************************************/ | 33 | /***************************************************************************/ |
@@ -101,7 +100,6 @@ void config_BSP(char *commandp, int size) | |||
101 | mach_sched_init = coldfire_timer_init; | 100 | mach_sched_init = coldfire_timer_init; |
102 | mach_tick = coldfire_tick; | 101 | mach_tick = coldfire_tick; |
103 | mach_gettimeoffset = coldfire_timer_offset; | 102 | mach_gettimeoffset = coldfire_timer_offset; |
104 | mach_trap_init = coldfire_trap_init; | ||
105 | mach_reset = coldfire_reset; | 103 | mach_reset = coldfire_reset; |
106 | } | 104 | } |
107 | 105 | ||
diff --git a/arch/m68knommu/platform/5206e/config.c b/arch/m68knommu/platform/5206e/config.c index 7fa5e8254c31..4ab614f1ecda 100644 --- a/arch/m68knommu/platform/5206e/config.c +++ b/arch/m68knommu/platform/5206e/config.c | |||
@@ -27,7 +27,6 @@ | |||
27 | void coldfire_tick(void); | 27 | void coldfire_tick(void); |
28 | void coldfire_timer_init(irq_handler_t handler); | 28 | void coldfire_timer_init(irq_handler_t handler); |
29 | unsigned long coldfire_timer_offset(void); | 29 | unsigned long coldfire_timer_offset(void); |
30 | void coldfire_trap_init(void); | ||
31 | void coldfire_reset(void); | 30 | void coldfire_reset(void); |
32 | 31 | ||
33 | /***************************************************************************/ | 32 | /***************************************************************************/ |
@@ -107,7 +106,6 @@ void config_BSP(char *commandp, int size) | |||
107 | mach_sched_init = coldfire_timer_init; | 106 | mach_sched_init = coldfire_timer_init; |
108 | mach_tick = coldfire_tick; | 107 | mach_tick = coldfire_tick; |
109 | mach_gettimeoffset = coldfire_timer_offset; | 108 | mach_gettimeoffset = coldfire_timer_offset; |
110 | mach_trap_init = coldfire_trap_init; | ||
111 | mach_reset = coldfire_reset; | 109 | mach_reset = coldfire_reset; |
112 | } | 110 | } |
113 | 111 | ||
diff --git a/arch/m68knommu/platform/520x/config.c b/arch/m68knommu/platform/520x/config.c index 85830f9882f3..a2c95bebd004 100644 --- a/arch/m68knommu/platform/520x/config.c +++ b/arch/m68knommu/platform/520x/config.c | |||
@@ -30,7 +30,6 @@ unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | |||
30 | void coldfire_pit_tick(void); | 30 | void coldfire_pit_tick(void); |
31 | void coldfire_pit_init(irq_handler_t handler); | 31 | void coldfire_pit_init(irq_handler_t handler); |
32 | unsigned long coldfire_pit_offset(void); | 32 | unsigned long coldfire_pit_offset(void); |
33 | void coldfire_trap_init(void); | ||
34 | void coldfire_reset(void); | 33 | void coldfire_reset(void); |
35 | 34 | ||
36 | /***************************************************************************/ | 35 | /***************************************************************************/ |
@@ -51,7 +50,6 @@ void config_BSP(char *commandp, int size) | |||
51 | mach_sched_init = coldfire_pit_init; | 50 | mach_sched_init = coldfire_pit_init; |
52 | mach_tick = coldfire_pit_tick; | 51 | mach_tick = coldfire_pit_tick; |
53 | mach_gettimeoffset = coldfire_pit_offset; | 52 | mach_gettimeoffset = coldfire_pit_offset; |
54 | mach_trap_init = coldfire_trap_init; | ||
55 | mach_reset = coldfire_reset; | 53 | mach_reset = coldfire_reset; |
56 | } | 54 | } |
57 | 55 | ||
diff --git a/arch/m68knommu/platform/523x/config.c b/arch/m68knommu/platform/523x/config.c index c0157e110035..0a3af05a434b 100644 --- a/arch/m68knommu/platform/523x/config.c +++ b/arch/m68knommu/platform/523x/config.c | |||
@@ -29,7 +29,6 @@ | |||
29 | void coldfire_pit_tick(void); | 29 | void coldfire_pit_tick(void); |
30 | void coldfire_pit_init(irq_handler_t handler); | 30 | void coldfire_pit_init(irq_handler_t handler); |
31 | unsigned long coldfire_pit_offset(void); | 31 | unsigned long coldfire_pit_offset(void); |
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | 32 | void coldfire_reset(void); |
34 | 33 | ||
35 | /***************************************************************************/ | 34 | /***************************************************************************/ |
@@ -66,7 +65,6 @@ void config_BSP(char *commandp, int size) | |||
66 | mach_sched_init = coldfire_pit_init; | 65 | mach_sched_init = coldfire_pit_init; |
67 | mach_tick = coldfire_pit_tick; | 66 | mach_tick = coldfire_pit_tick; |
68 | mach_gettimeoffset = coldfire_pit_offset; | 67 | mach_gettimeoffset = coldfire_pit_offset; |
69 | mach_trap_init = coldfire_trap_init; | ||
70 | mach_reset = coldfire_reset; | 68 | mach_reset = coldfire_reset; |
71 | } | 69 | } |
72 | 70 | ||
diff --git a/arch/m68knommu/platform/5249/config.c b/arch/m68knommu/platform/5249/config.c index 4cdeb719512d..dc2c362590c2 100644 --- a/arch/m68knommu/platform/5249/config.c +++ b/arch/m68knommu/platform/5249/config.c | |||
@@ -27,7 +27,6 @@ | |||
27 | void coldfire_tick(void); | 27 | void coldfire_tick(void); |
28 | void coldfire_timer_init(irq_handler_t handler); | 28 | void coldfire_timer_init(irq_handler_t handler); |
29 | unsigned long coldfire_timer_offset(void); | 29 | unsigned long coldfire_timer_offset(void); |
30 | void coldfire_trap_init(void); | ||
31 | void coldfire_reset(void); | 30 | void coldfire_reset(void); |
32 | 31 | ||
33 | /***************************************************************************/ | 32 | /***************************************************************************/ |
@@ -99,7 +98,6 @@ void config_BSP(char *commandp, int size) | |||
99 | mach_sched_init = coldfire_timer_init; | 98 | mach_sched_init = coldfire_timer_init; |
100 | mach_tick = coldfire_tick; | 99 | mach_tick = coldfire_tick; |
101 | mach_gettimeoffset = coldfire_timer_offset; | 100 | mach_gettimeoffset = coldfire_timer_offset; |
102 | mach_trap_init = coldfire_trap_init; | ||
103 | mach_reset = coldfire_reset; | 101 | mach_reset = coldfire_reset; |
104 | } | 102 | } |
105 | 103 | ||
diff --git a/arch/m68knommu/platform/5272/config.c b/arch/m68knommu/platform/5272/config.c index 609b10e4b9b9..1365a8300d5d 100644 --- a/arch/m68knommu/platform/5272/config.c +++ b/arch/m68knommu/platform/5272/config.c | |||
@@ -28,7 +28,6 @@ | |||
28 | void coldfire_tick(void); | 28 | void coldfire_tick(void); |
29 | void coldfire_timer_init(irq_handler_t handler); | 29 | void coldfire_timer_init(irq_handler_t handler); |
30 | unsigned long coldfire_timer_offset(void); | 30 | unsigned long coldfire_timer_offset(void); |
31 | void coldfire_trap_init(void); | ||
32 | void coldfire_reset(void); | 31 | void coldfire_reset(void); |
33 | 32 | ||
34 | extern unsigned int mcf_timervector; | 33 | extern unsigned int mcf_timervector; |
@@ -132,7 +131,6 @@ void config_BSP(char *commandp, int size) | |||
132 | mach_sched_init = coldfire_timer_init; | 131 | mach_sched_init = coldfire_timer_init; |
133 | mach_tick = coldfire_tick; | 132 | mach_tick = coldfire_tick; |
134 | mach_gettimeoffset = coldfire_timer_offset; | 133 | mach_gettimeoffset = coldfire_timer_offset; |
135 | mach_trap_init = coldfire_trap_init; | ||
136 | mach_reset = coldfire_reset; | 134 | mach_reset = coldfire_reset; |
137 | } | 135 | } |
138 | 136 | ||
diff --git a/arch/m68knommu/platform/527x/config.c b/arch/m68knommu/platform/527x/config.c index 126dac066482..1b820441419a 100644 --- a/arch/m68knommu/platform/527x/config.c +++ b/arch/m68knommu/platform/527x/config.c | |||
@@ -29,7 +29,6 @@ | |||
29 | void coldfire_pit_tick(void); | 29 | void coldfire_pit_tick(void); |
30 | void coldfire_pit_init(irq_handler_t handler); | 30 | void coldfire_pit_init(irq_handler_t handler); |
31 | unsigned long coldfire_pit_offset(void); | 31 | unsigned long coldfire_pit_offset(void); |
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | 32 | void coldfire_reset(void); |
34 | 33 | ||
35 | /***************************************************************************/ | 34 | /***************************************************************************/ |
@@ -66,7 +65,6 @@ void config_BSP(char *commandp, int size) | |||
66 | mach_sched_init = coldfire_pit_init; | 65 | mach_sched_init = coldfire_pit_init; |
67 | mach_tick = coldfire_pit_tick; | 66 | mach_tick = coldfire_pit_tick; |
68 | mach_gettimeoffset = coldfire_pit_offset; | 67 | mach_gettimeoffset = coldfire_pit_offset; |
69 | mach_trap_init = coldfire_trap_init; | ||
70 | mach_reset = coldfire_reset; | 68 | mach_reset = coldfire_reset; |
71 | } | 69 | } |
72 | 70 | ||
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c index aab1ef0c1f78..a089e9513699 100644 --- a/arch/m68knommu/platform/528x/config.c +++ b/arch/m68knommu/platform/528x/config.c | |||
@@ -29,7 +29,6 @@ | |||
29 | void coldfire_pit_tick(void); | 29 | void coldfire_pit_tick(void); |
30 | void coldfire_pit_init(irq_handler_t handler); | 30 | void coldfire_pit_init(irq_handler_t handler); |
31 | unsigned long coldfire_pit_offset(void); | 31 | unsigned long coldfire_pit_offset(void); |
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | 32 | void coldfire_reset(void); |
34 | 33 | ||
35 | /***************************************************************************/ | 34 | /***************************************************************************/ |
@@ -66,7 +65,6 @@ void config_BSP(char *commandp, int size) | |||
66 | mach_sched_init = coldfire_pit_init; | 65 | mach_sched_init = coldfire_pit_init; |
67 | mach_tick = coldfire_pit_tick; | 66 | mach_tick = coldfire_pit_tick; |
68 | mach_gettimeoffset = coldfire_pit_offset; | 67 | mach_gettimeoffset = coldfire_pit_offset; |
69 | mach_trap_init = coldfire_trap_init; | ||
70 | mach_reset = coldfire_reset; | 68 | mach_reset = coldfire_reset; |
71 | } | 69 | } |
72 | 70 | ||
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c index 1f10e941b87c..e3461619fd65 100644 --- a/arch/m68knommu/platform/5307/config.c +++ b/arch/m68knommu/platform/5307/config.c | |||
@@ -29,7 +29,6 @@ | |||
29 | void coldfire_tick(void); | 29 | void coldfire_tick(void); |
30 | void coldfire_timer_init(irq_handler_t handler); | 30 | void coldfire_timer_init(irq_handler_t handler); |
31 | unsigned long coldfire_timer_offset(void); | 31 | unsigned long coldfire_timer_offset(void); |
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | 32 | void coldfire_reset(void); |
34 | 33 | ||
35 | extern unsigned int mcf_timervector; | 34 | extern unsigned int mcf_timervector; |
@@ -126,7 +125,6 @@ void config_BSP(char *commandp, int size) | |||
126 | mach_sched_init = coldfire_timer_init; | 125 | mach_sched_init = coldfire_timer_init; |
127 | mach_tick = coldfire_tick; | 126 | mach_tick = coldfire_tick; |
128 | mach_gettimeoffset = coldfire_timer_offset; | 127 | mach_gettimeoffset = coldfire_timer_offset; |
129 | mach_trap_init = coldfire_trap_init; | ||
130 | mach_reset = coldfire_reset; | 128 | mach_reset = coldfire_reset; |
131 | 129 | ||
132 | #ifdef MCF_BDM_DISABLE | 130 | #ifdef MCF_BDM_DISABLE |
diff --git a/arch/m68knommu/platform/5307/pit.c b/arch/m68knommu/platform/5307/pit.c index aa15beeb36ca..e53c446d10e4 100644 --- a/arch/m68knommu/platform/5307/pit.c +++ b/arch/m68knommu/platform/5307/pit.c | |||
@@ -5,9 +5,8 @@ | |||
5 | * hardware timer only exists in the Freescale ColdFire | 5 | * hardware timer only exists in the Freescale ColdFire |
6 | * 5270/5271, 5282 and other CPUs. | 6 | * 5270/5271, 5282 and other CPUs. |
7 | * | 7 | * |
8 | * Copyright (C) 1999-2006, Greg Ungerer (gerg@snapgear.com) | 8 | * Copyright (C) 1999-2007, Greg Ungerer (gerg@snapgear.com) |
9 | * Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com) | 9 | * Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com) |
10 | * | ||
11 | */ | 10 | */ |
12 | 11 | ||
13 | /***************************************************************************/ | 12 | /***************************************************************************/ |
@@ -17,8 +16,8 @@ | |||
17 | #include <linux/param.h> | 16 | #include <linux/param.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/irq.h> | ||
20 | #include <asm/io.h> | 20 | #include <asm/io.h> |
21 | #include <asm/irq.h> | ||
22 | #include <asm/coldfire.h> | 21 | #include <asm/coldfire.h> |
23 | #include <asm/mcfpit.h> | 22 | #include <asm/mcfpit.h> |
24 | #include <asm/mcfsim.h> | 23 | #include <asm/mcfsim.h> |
@@ -43,13 +42,18 @@ void coldfire_pit_tick(void) | |||
43 | 42 | ||
44 | /***************************************************************************/ | 43 | /***************************************************************************/ |
45 | 44 | ||
45 | static struct irqaction coldfire_pit_irq = { | ||
46 | .name = "timer", | ||
47 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
48 | }; | ||
49 | |||
46 | void coldfire_pit_init(irq_handler_t handler) | 50 | void coldfire_pit_init(irq_handler_t handler) |
47 | { | 51 | { |
48 | volatile unsigned char *icrp; | 52 | volatile unsigned char *icrp; |
49 | volatile unsigned long *imrp; | 53 | volatile unsigned long *imrp; |
50 | 54 | ||
51 | request_irq(MCFINT_VECBASE + MCFINT_PIT1, handler, IRQF_DISABLED, | 55 | coldfire_pit_irq.handler = handler; |
52 | "ColdFire Timer", NULL); | 56 | setup_irq(MCFINT_VECBASE + MCFINT_PIT1, &coldfire_pit_irq); |
53 | 57 | ||
54 | icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 + | 58 | icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 + |
55 | MCFINTC_ICR0 + MCFINT_PIT1); | 59 | MCFINTC_ICR0 + MCFINT_PIT1); |
diff --git a/arch/m68knommu/platform/5307/timers.c b/arch/m68knommu/platform/5307/timers.c index fb66eadd5896..64bd0ff9029e 100644 --- a/arch/m68knommu/platform/5307/timers.c +++ b/arch/m68knommu/platform/5307/timers.c | |||
@@ -3,7 +3,7 @@ | |||
3 | /* | 3 | /* |
4 | * timers.c -- generic ColdFire hardware timer support. | 4 | * timers.c -- generic ColdFire hardware timer support. |
5 | * | 5 | * |
6 | * Copyright (C) 1999-2006, Greg Ungerer (gerg@snapgear.com) | 6 | * Copyright (C) 1999-2007, Greg Ungerer (gerg@snapgear.com) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | /***************************************************************************/ | 9 | /***************************************************************************/ |
@@ -13,8 +13,8 @@ | |||
13 | #include <linux/param.h> | 13 | #include <linux/param.h> |
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/irq.h> | ||
16 | #include <asm/io.h> | 17 | #include <asm/io.h> |
17 | #include <asm/irq.h> | ||
18 | #include <asm/traps.h> | 18 | #include <asm/traps.h> |
19 | #include <asm/machdep.h> | 19 | #include <asm/machdep.h> |
20 | #include <asm/coldfire.h> | 20 | #include <asm/coldfire.h> |
@@ -62,17 +62,24 @@ void coldfire_tick(void) | |||
62 | 62 | ||
63 | /***************************************************************************/ | 63 | /***************************************************************************/ |
64 | 64 | ||
65 | static struct irqaction coldfire_timer_irq = { | ||
66 | .name = "timer", | ||
67 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
68 | }; | ||
69 | |||
65 | static int ticks_per_intr; | 70 | static int ticks_per_intr; |
66 | 71 | ||
67 | void coldfire_timer_init(irq_handler_t handler) | 72 | void coldfire_timer_init(irq_handler_t handler) |
68 | { | 73 | { |
74 | coldfire_timer_irq.handler = handler; | ||
75 | setup_irq(mcf_timervector, &coldfire_timer_irq); | ||
76 | |||
69 | __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); | 77 | __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); |
70 | ticks_per_intr = (MCF_BUSCLK / 16) / HZ; | 78 | ticks_per_intr = (MCF_BUSCLK / 16) / HZ; |
71 | __raw_writetrr(ticks_per_intr - 1, TA(MCFTIMER_TRR)); | 79 | __raw_writetrr(ticks_per_intr - 1, TA(MCFTIMER_TRR)); |
72 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | 80 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | |
73 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); | 81 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); |
74 | 82 | ||
75 | request_irq(mcf_timervector, handler, IRQF_DISABLED, "timer", NULL); | ||
76 | mcf_settimericr(1, mcf_timerlevel); | 83 | mcf_settimericr(1, mcf_timerlevel); |
77 | 84 | ||
78 | #ifdef CONFIG_HIGHPROFILE | 85 | #ifdef CONFIG_HIGHPROFILE |
diff --git a/arch/m68knommu/platform/532x/config.c b/arch/m68knommu/platform/532x/config.c index dc39c466e33f..b32c6425f821 100644 --- a/arch/m68knommu/platform/532x/config.c +++ b/arch/m68knommu/platform/532x/config.c | |||
@@ -37,7 +37,6 @@ | |||
37 | void coldfire_tick(void); | 37 | void coldfire_tick(void); |
38 | void coldfire_timer_init(irq_handler_t handler); | 38 | void coldfire_timer_init(irq_handler_t handler); |
39 | unsigned long coldfire_timer_offset(void); | 39 | unsigned long coldfire_timer_offset(void); |
40 | void coldfire_trap_init(void); | ||
41 | void coldfire_reset(void); | 40 | void coldfire_reset(void); |
42 | 41 | ||
43 | extern unsigned int mcf_timervector; | 42 | extern unsigned int mcf_timervector; |
@@ -108,7 +107,6 @@ void config_BSP(char *commandp, int size) | |||
108 | mach_sched_init = coldfire_timer_init; | 107 | mach_sched_init = coldfire_timer_init; |
109 | mach_tick = coldfire_tick; | 108 | mach_tick = coldfire_tick; |
110 | mach_gettimeoffset = coldfire_timer_offset; | 109 | mach_gettimeoffset = coldfire_timer_offset; |
111 | mach_trap_init = coldfire_trap_init; | ||
112 | mach_reset = coldfire_reset; | 110 | mach_reset = coldfire_reset; |
113 | 111 | ||
114 | #ifdef MCF_BDM_DISABLE | 112 | #ifdef MCF_BDM_DISABLE |
diff --git a/arch/m68knommu/platform/5407/config.c b/arch/m68knommu/platform/5407/config.c index fde417fdd650..e692536817d8 100644 --- a/arch/m68knommu/platform/5407/config.c +++ b/arch/m68knommu/platform/5407/config.c | |||
@@ -28,7 +28,6 @@ | |||
28 | void coldfire_tick(void); | 28 | void coldfire_tick(void); |
29 | void coldfire_timer_init(irq_handler_t handler); | 29 | void coldfire_timer_init(irq_handler_t handler); |
30 | unsigned long coldfire_timer_offset(void); | 30 | unsigned long coldfire_timer_offset(void); |
31 | void coldfire_trap_init(void); | ||
32 | void coldfire_reset(void); | 31 | void coldfire_reset(void); |
33 | 32 | ||
34 | extern unsigned int mcf_timervector; | 33 | extern unsigned int mcf_timervector; |
@@ -112,7 +111,6 @@ void config_BSP(char *commandp, int size) | |||
112 | mach_sched_init = coldfire_timer_init; | 111 | mach_sched_init = coldfire_timer_init; |
113 | mach_tick = coldfire_tick; | 112 | mach_tick = coldfire_tick; |
114 | mach_gettimeoffset = coldfire_timer_offset; | 113 | mach_gettimeoffset = coldfire_timer_offset; |
115 | mach_trap_init = coldfire_trap_init; | ||
116 | mach_reset = coldfire_reset; | 114 | mach_reset = coldfire_reset; |
117 | } | 115 | } |
118 | 116 | ||
diff --git a/arch/m68knommu/platform/68328/timers.c b/arch/m68knommu/platform/68328/timers.c index ef067f4c3cd4..0396476f955d 100644 --- a/arch/m68knommu/platform/68328/timers.c +++ b/arch/m68knommu/platform/68328/timers.c | |||
@@ -18,10 +18,10 @@ | |||
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/irq.h> | ||
21 | #include <asm/setup.h> | 22 | #include <asm/setup.h> |
22 | #include <asm/system.h> | 23 | #include <asm/system.h> |
23 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
24 | #include <asm/irq.h> | ||
25 | #include <asm/machdep.h> | 25 | #include <asm/machdep.h> |
26 | #include <asm/MC68VZ328.h> | 26 | #include <asm/MC68VZ328.h> |
27 | 27 | ||
@@ -53,14 +53,19 @@ | |||
53 | 53 | ||
54 | /***************************************************************************/ | 54 | /***************************************************************************/ |
55 | 55 | ||
56 | static struct irqaction m68328_timer_irq = { | ||
57 | .name = "timer", | ||
58 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
59 | }; | ||
60 | |||
56 | void m68328_timer_init(irq_handler_t timer_routine) | 61 | void m68328_timer_init(irq_handler_t timer_routine) |
57 | { | 62 | { |
58 | /* disable timer 1 */ | 63 | /* disable timer 1 */ |
59 | TCTL = 0; | 64 | TCTL = 0; |
60 | 65 | ||
61 | /* set ISR */ | 66 | /* set ISR */ |
62 | if (request_irq(TMR_IRQ_NUM, timer_routine, IRQ_FLG_LOCK, "timer", NULL)) | 67 | m68328_timer_irq.handler = timer_routine; |
63 | panic("Unable to attach timer interrupt\n"); | 68 | setup_irq(TMR_IRQ_NUM, &m68328_timer_irq); |
64 | 69 | ||
65 | /* Restart mode, Enable int, Set clock source */ | 70 | /* Restart mode, Enable int, Set clock source */ |
66 | TCTL = TCTL_OM | TCTL_IRQEN | CLOCK_SOURCE; | 71 | TCTL = TCTL_OM | TCTL_IRQEN | CLOCK_SOURCE; |
diff --git a/arch/m68knommu/platform/68360/config.c b/arch/m68knommu/platform/68360/config.c index 4ff13bd51ffd..155b72fe2607 100644 --- a/arch/m68knommu/platform/68360/config.c +++ b/arch/m68knommu/platform/68360/config.c | |||
@@ -17,11 +17,11 @@ | |||
17 | #include <linux/tty.h> | 17 | #include <linux/tty.h> |
18 | #include <linux/console.h> | 18 | #include <linux/console.h> |
19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
20 | #include <linux/irq.h> | ||
20 | 21 | ||
21 | #include <asm/setup.h> | 22 | #include <asm/setup.h> |
22 | #include <asm/system.h> | 23 | #include <asm/system.h> |
23 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
24 | #include <asm/irq.h> | ||
25 | #include <asm/machdep.h> | 25 | #include <asm/machdep.h> |
26 | #include <asm/m68360.h> | 26 | #include <asm/m68360.h> |
27 | 27 | ||
@@ -51,11 +51,15 @@ extern unsigned long int system_clock; //In kernel setup.c | |||
51 | 51 | ||
52 | extern void config_M68360_irq(void); | 52 | extern void config_M68360_irq(void); |
53 | 53 | ||
54 | static struct irqaction m68360_timer_irq = { | ||
55 | .name = "timer", | ||
56 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
57 | }; | ||
58 | |||
54 | void BSP_sched_init(irq_handler_t timer_routine) | 59 | void BSP_sched_init(irq_handler_t timer_routine) |
55 | { | 60 | { |
56 | unsigned char prescaler; | 61 | unsigned char prescaler; |
57 | unsigned short tgcr_save; | 62 | unsigned short tgcr_save; |
58 | int return_value; | ||
59 | 63 | ||
60 | #if 0 | 64 | #if 0 |
61 | /* Restart mode, Enable int, 32KHz, Enable timer */ | 65 | /* Restart mode, Enable int, 32KHz, Enable timer */ |
@@ -86,10 +90,8 @@ void BSP_sched_init(irq_handler_t timer_routine) | |||
86 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ | 90 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ |
87 | 91 | ||
88 | /* enable timer 1 interrupt in CIMR */ | 92 | /* enable timer 1 interrupt in CIMR */ |
89 | // request_irq(IRQ_MACHSPEC | CPMVEC_TIMER1, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | 93 | m68360_timer_irq.handler = timer_routine; |
90 | //return_value = request_irq( CPMVEC_TIMER1, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | 94 | setup_irq(CPMVEC_TIMER1, &m68360_timer_irq); |
91 | return_value = request_irq(CPMVEC_TIMER1 , timer_routine, IRQ_FLG_LOCK, | ||
92 | "Timer", NULL); | ||
93 | 95 | ||
94 | /* Start timer 1: */ | 96 | /* Start timer 1: */ |
95 | tgcr_save = (pquicc->timer_tgcr & 0xfff0) | 0x0001; | 97 | tgcr_save = (pquicc->timer_tgcr & 0xfff0) | 0x0001; |
diff --git a/arch/sparc64/kernel/viohs.c b/arch/sparc64/kernel/viohs.c index 09126fc338ba..708fa1705fbe 100644 --- a/arch/sparc64/kernel/viohs.c +++ b/arch/sparc64/kernel/viohs.c | |||
@@ -702,7 +702,7 @@ u32 vio_send_sid(struct vio_driver_state *vio) | |||
702 | } | 702 | } |
703 | EXPORT_SYMBOL(vio_send_sid); | 703 | EXPORT_SYMBOL(vio_send_sid); |
704 | 704 | ||
705 | extern int vio_ldc_alloc(struct vio_driver_state *vio, | 705 | int vio_ldc_alloc(struct vio_driver_state *vio, |
706 | struct ldc_channel_config *base_cfg, | 706 | struct ldc_channel_config *base_cfg, |
707 | void *event_arg) | 707 | void *event_arg) |
708 | { | 708 | { |
diff --git a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c index b70f3e7cf06c..dffd2ac72747 100644 --- a/arch/x86_64/ia32/ia32_binfmt.c +++ b/arch/x86_64/ia32/ia32_binfmt.c | |||
@@ -41,8 +41,9 @@ int sysctl_vsyscall32 = 1; | |||
41 | #undef ARCH_DLINFO | 41 | #undef ARCH_DLINFO |
42 | #define ARCH_DLINFO do { \ | 42 | #define ARCH_DLINFO do { \ |
43 | if (sysctl_vsyscall32) { \ | 43 | if (sysctl_vsyscall32) { \ |
44 | NEW_AUX_ENT(AT_SYSINFO, (u32)(u64)VSYSCALL32_VSYSCALL); \ | 44 | current->mm->context.vdso = (void *)VSYSCALL32_BASE; \ |
45 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL32_BASE); \ | 45 | NEW_AUX_ENT(AT_SYSINFO, (u32)(u64)VSYSCALL32_VSYSCALL); \ |
46 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL32_BASE); \ | ||
46 | } \ | 47 | } \ |
47 | } while(0) | 48 | } while(0) |
48 | 49 | ||
diff --git a/arch/x86_64/ia32/syscall32.c b/arch/x86_64/ia32/syscall32.c index fc4419ff0355..15013bac181c 100644 --- a/arch/x86_64/ia32/syscall32.c +++ b/arch/x86_64/ia32/syscall32.c | |||
@@ -49,14 +49,6 @@ int syscall32_setup_pages(struct linux_binprm *bprm, int exstack) | |||
49 | return ret; | 49 | return ret; |
50 | } | 50 | } |
51 | 51 | ||
52 | const char *arch_vma_name(struct vm_area_struct *vma) | ||
53 | { | ||
54 | if (vma->vm_start == VSYSCALL32_BASE && | ||
55 | vma->vm_mm && vma->vm_mm->task_size == IA32_PAGE_OFFSET) | ||
56 | return "[vdso]"; | ||
57 | return NULL; | ||
58 | } | ||
59 | |||
60 | static int __init init_syscall32(void) | 52 | static int __init init_syscall32(void) |
61 | { | 53 | { |
62 | char *syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); | 54 | char *syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); |
diff --git a/arch/x86_64/kernel/tce.c b/arch/x86_64/kernel/tce.c index 3aeae2fa2e24..821527e7faa3 100644 --- a/arch/x86_64/kernel/tce.c +++ b/arch/x86_64/kernel/tce.c | |||
@@ -165,7 +165,7 @@ done: | |||
165 | return ret; | 165 | return ret; |
166 | } | 166 | } |
167 | 167 | ||
168 | void* alloc_tce_table(void) | 168 | void * __init alloc_tce_table(void) |
169 | { | 169 | { |
170 | unsigned int size; | 170 | unsigned int size; |
171 | 171 | ||
@@ -175,7 +175,7 @@ void* alloc_tce_table(void) | |||
175 | return __alloc_bootmem_low(size, size, 0); | 175 | return __alloc_bootmem_low(size, size, 0); |
176 | } | 176 | } |
177 | 177 | ||
178 | void free_tce_table(void *tbl) | 178 | void __init free_tce_table(void *tbl) |
179 | { | 179 | { |
180 | unsigned int size; | 180 | unsigned int size; |
181 | 181 | ||
diff --git a/arch/x86_64/kernel/tsc.c b/arch/x86_64/kernel/tsc.c index 9b76b03d0600..2a59bde663f2 100644 --- a/arch/x86_64/kernel/tsc.c +++ b/arch/x86_64/kernel/tsc.c | |||
@@ -118,8 +118,6 @@ core_initcall(cpufreq_tsc); | |||
118 | 118 | ||
119 | #endif | 119 | #endif |
120 | 120 | ||
121 | static int tsc_unstable = 0; | ||
122 | |||
123 | /* | 121 | /* |
124 | * Make an educated guess if the TSC is trustworthy and synchronized | 122 | * Make an educated guess if the TSC is trustworthy and synchronized |
125 | * over all CPUs. | 123 | * over all CPUs. |
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 38f5d6368006..458893b376f8 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -600,6 +600,16 @@ void mark_rodata_ro(void) | |||
600 | { | 600 | { |
601 | unsigned long start = (unsigned long)_stext, end; | 601 | unsigned long start = (unsigned long)_stext, end; |
602 | 602 | ||
603 | #ifdef CONFIG_HOTPLUG_CPU | ||
604 | /* It must still be possible to apply SMP alternatives. */ | ||
605 | if (num_possible_cpus() > 1) | ||
606 | start = (unsigned long)_etext; | ||
607 | #endif | ||
608 | |||
609 | #ifdef CONFIG_KPROBES | ||
610 | start = (unsigned long)__start_rodata; | ||
611 | #endif | ||
612 | |||
603 | end = (unsigned long)__end_rodata; | 613 | end = (unsigned long)__end_rodata; |
604 | start = (start + PAGE_SIZE - 1) & PAGE_MASK; | 614 | start = (start + PAGE_SIZE - 1) & PAGE_MASK; |
605 | end &= PAGE_MASK; | 615 | end &= PAGE_MASK; |