diff options
| -rw-r--r-- | arch/arm/boot/compressed/head.S | 6 | ||||
| -rw-r--r-- | arch/arm/kernel/devtree.c | 3 | ||||
| -rw-r--r-- | arch/arm/kernel/entry-armv.S | 6 | ||||
| -rw-r--r-- | arch/arm/kernel/entry-common.S | 2 | ||||
| -rw-r--r-- | arch/arm/kernel/traps.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/devices-da8xx.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/devices.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/gpio.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-footbridge/dc21285-timer.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-footbridge/include/mach/debug-macro.S | 5 | ||||
| -rw-r--r-- | arch/arm/mach-mxs/ocotp.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-u300/clock.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-u300/include/mach/u300-regs.h | 22 | ||||
| -rw-r--r-- | arch/arm/mach-u300/timer.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 15 | ||||
| -rw-r--r-- | arch/arm/mm/context.c | 17 | ||||
| -rw-r--r-- | arch/arm/mm/init.c | 12 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm7tdmi.S | 2 | ||||
| -rw-r--r-- | arch/arm/mm/proc-arm9tdmi.S | 2 | ||||
| -rw-r--r-- | arch/arm/mm/proc-v7.S | 10 | ||||
| -rw-r--r-- | arch/arm/plat-mxc/devices/platform-imx-dma.c | 6 | ||||
| -rw-r--r-- | drivers/mmc/host/mmci.c | 12 |
22 files changed, 86 insertions, 57 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index f9da41921c52..942fad97e447 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -691,9 +691,9 @@ proc_types: | |||
| 691 | 691 | ||
| 692 | .word 0x41069260 @ ARM926EJ-S (v5TEJ) | 692 | .word 0x41069260 @ ARM926EJ-S (v5TEJ) |
| 693 | .word 0xff0ffff0 | 693 | .word 0xff0ffff0 |
| 694 | b __arm926ejs_mmu_cache_on | 694 | W(b) __arm926ejs_mmu_cache_on |
| 695 | b __armv4_mmu_cache_off | 695 | W(b) __armv4_mmu_cache_off |
| 696 | b __armv5tej_mmu_cache_flush | 696 | W(b) __armv5tej_mmu_cache_flush |
| 697 | 697 | ||
| 698 | .word 0x00007000 @ ARM7 IDs | 698 | .word 0x00007000 @ ARM7 IDs |
| 699 | .word 0x0000f000 | 699 | .word 0x0000f000 |
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index a701e4226a6c..0cdd7b456cb2 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c | |||
| @@ -76,6 +76,9 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) | |||
| 76 | unsigned long dt_root; | 76 | unsigned long dt_root; |
| 77 | const char *model; | 77 | const char *model; |
| 78 | 78 | ||
| 79 | if (!dt_phys) | ||
| 80 | return NULL; | ||
| 81 | |||
| 79 | devtree = phys_to_virt(dt_phys); | 82 | devtree = phys_to_virt(dt_phys); |
| 80 | 83 | ||
| 81 | /* check device tree validity */ | 84 | /* check device tree validity */ |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e8d885676807..90c62cd51ca9 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
| @@ -435,6 +435,10 @@ __irq_usr: | |||
| 435 | usr_entry | 435 | usr_entry |
| 436 | kuser_cmpxchg_check | 436 | kuser_cmpxchg_check |
| 437 | 437 | ||
| 438 | #ifdef CONFIG_IRQSOFF_TRACER | ||
| 439 | bl trace_hardirqs_off | ||
| 440 | #endif | ||
| 441 | |||
| 438 | get_thread_info tsk | 442 | get_thread_info tsk |
| 439 | #ifdef CONFIG_PREEMPT | 443 | #ifdef CONFIG_PREEMPT |
| 440 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count | 444 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count |
| @@ -453,7 +457,7 @@ __irq_usr: | |||
| 453 | #endif | 457 | #endif |
| 454 | 458 | ||
| 455 | mov why, #0 | 459 | mov why, #0 |
| 456 | b ret_to_user | 460 | b ret_to_user_from_irq |
| 457 | UNWIND(.fnend ) | 461 | UNWIND(.fnend ) |
| 458 | ENDPROC(__irq_usr) | 462 | ENDPROC(__irq_usr) |
| 459 | 463 | ||
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 1e7b04a40a31..b2a27b6b0046 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -64,6 +64,7 @@ work_resched: | |||
| 64 | ENTRY(ret_to_user) | 64 | ENTRY(ret_to_user) |
| 65 | ret_slow_syscall: | 65 | ret_slow_syscall: |
| 66 | disable_irq @ disable interrupts | 66 | disable_irq @ disable interrupts |
| 67 | ENTRY(ret_to_user_from_irq) | ||
| 67 | ldr r1, [tsk, #TI_FLAGS] | 68 | ldr r1, [tsk, #TI_FLAGS] |
| 68 | tst r1, #_TIF_WORK_MASK | 69 | tst r1, #_TIF_WORK_MASK |
| 69 | bne work_pending | 70 | bne work_pending |
| @@ -75,6 +76,7 @@ no_work_pending: | |||
| 75 | arch_ret_to_user r1, lr | 76 | arch_ret_to_user r1, lr |
| 76 | 77 | ||
| 77 | restore_user_regs fast = 0, offset = 0 | 78 | restore_user_regs fast = 0, offset = 0 |
| 79 | ENDPROC(ret_to_user_from_irq) | ||
| 78 | ENDPROC(ret_to_user) | 80 | ENDPROC(ret_to_user) |
| 79 | 81 | ||
| 80 | /* | 82 | /* |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index d52eec268b47..6807cb1e76dd 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
| @@ -139,7 +139,7 @@ static void dump_instr(const char *lvl, struct pt_regs *regs) | |||
| 139 | fs = get_fs(); | 139 | fs = get_fs(); |
| 140 | set_fs(KERNEL_DS); | 140 | set_fs(KERNEL_DS); |
| 141 | 141 | ||
| 142 | for (i = -4; i < 1; i++) { | 142 | for (i = -4; i < 1 + !!thumb; i++) { |
| 143 | unsigned int val, bad; | 143 | unsigned int val, bad; |
| 144 | 144 | ||
| 145 | if (thumb) | 145 | if (thumb) |
| @@ -563,7 +563,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) | |||
| 563 | if (!pmd_present(*pmd)) | 563 | if (!pmd_present(*pmd)) |
| 564 | goto bad_access; | 564 | goto bad_access; |
| 565 | pte = pte_offset_map_lock(mm, pmd, addr, &ptl); | 565 | pte = pte_offset_map_lock(mm, pmd, addr, &ptl); |
| 566 | if (!pte_present(*pte) || !pte_dirty(*pte)) { | 566 | if (!pte_present(*pte) || !pte_write(*pte) || !pte_dirty(*pte)) { |
| 567 | pte_unmap_unlock(pte, ptl); | 567 | pte_unmap_unlock(pte, ptl); |
| 568 | goto bad_access; | 568 | goto bad_access; |
| 569 | } | 569 | } |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index 4e66881c7aee..fc4e98ea7543 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
| @@ -494,7 +494,7 @@ static struct platform_device da850_mcasp_device = { | |||
| 494 | .resource = da850_mcasp_resources, | 494 | .resource = da850_mcasp_resources, |
| 495 | }; | 495 | }; |
| 496 | 496 | ||
| 497 | struct platform_device davinci_pcm_device = { | 497 | static struct platform_device davinci_pcm_device = { |
| 498 | .name = "davinci-pcm-audio", | 498 | .name = "davinci-pcm-audio", |
| 499 | .id = -1, | 499 | .id = -1, |
| 500 | }; | 500 | }; |
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c index 8f4f736aa267..806a2f02b980 100644 --- a/arch/arm/mach-davinci/devices.c +++ b/arch/arm/mach-davinci/devices.c | |||
| @@ -298,7 +298,7 @@ static void davinci_init_wdt(void) | |||
| 298 | 298 | ||
| 299 | /*-------------------------------------------------------------------------*/ | 299 | /*-------------------------------------------------------------------------*/ |
| 300 | 300 | ||
| 301 | struct platform_device davinci_pcm_device = { | 301 | static struct platform_device davinci_pcm_device = { |
| 302 | .name = "davinci-pcm-audio", | 302 | .name = "davinci-pcm-audio", |
| 303 | .id = -1, | 303 | .id = -1, |
| 304 | }; | 304 | }; |
diff --git a/arch/arm/mach-davinci/gpio.c b/arch/arm/mach-davinci/gpio.c index a0b838894ac9..e7221398e5af 100644 --- a/arch/arm/mach-davinci/gpio.c +++ b/arch/arm/mach-davinci/gpio.c | |||
| @@ -252,9 +252,11 @@ static struct irq_chip gpio_irqchip = { | |||
| 252 | static void | 252 | static void |
| 253 | gpio_irq_handler(unsigned irq, struct irq_desc *desc) | 253 | gpio_irq_handler(unsigned irq, struct irq_desc *desc) |
| 254 | { | 254 | { |
| 255 | struct davinci_gpio_regs __iomem *g = irq2regs(irq); | 255 | struct davinci_gpio_regs __iomem *g; |
| 256 | u32 mask = 0xffff; | 256 | u32 mask = 0xffff; |
| 257 | 257 | ||
| 258 | g = (__force struct davinci_gpio_regs __iomem *) irq_desc_get_handler_data(desc); | ||
| 259 | |||
| 258 | /* we only care about one bank */ | 260 | /* we only care about one bank */ |
| 259 | if (irq & 1) | 261 | if (irq & 1) |
| 260 | mask <<= 16; | 262 | mask <<= 16; |
| @@ -422,8 +424,7 @@ static int __init davinci_gpio_irq_setup(void) | |||
| 422 | 424 | ||
| 423 | /* set up all irqs in this bank */ | 425 | /* set up all irqs in this bank */ |
| 424 | irq_set_chained_handler(bank_irq, gpio_irq_handler); | 426 | irq_set_chained_handler(bank_irq, gpio_irq_handler); |
| 425 | irq_set_chip_data(bank_irq, (__force void *)g); | 427 | irq_set_handler_data(bank_irq, (__force void *)g); |
| 426 | irq_set_handler_data(bank_irq, (void *)irq); | ||
| 427 | 428 | ||
| 428 | for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) { | 429 | for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) { |
| 429 | irq_set_chip(irq, &gpio_irqchip); | 430 | irq_set_chip(irq, &gpio_irqchip); |
diff --git a/arch/arm/mach-footbridge/dc21285-timer.c b/arch/arm/mach-footbridge/dc21285-timer.c index 5f1f9867fc70..121ad1d4fa39 100644 --- a/arch/arm/mach-footbridge/dc21285-timer.c +++ b/arch/arm/mach-footbridge/dc21285-timer.c | |||
