diff options
Diffstat (limited to 'arch/avr32/kernel')
| -rw-r--r-- | arch/avr32/kernel/entry-avr32b.S | 3 | ||||
| -rw-r--r-- | arch/avr32/kernel/head.S | 20 | ||||
| -rw-r--r-- | arch/avr32/kernel/time.c | 2 |
3 files changed, 3 insertions, 22 deletions
diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S index 9899d3cc6f03..7301f4806bbe 100644 --- a/arch/avr32/kernel/entry-avr32b.S +++ b/arch/avr32/kernel/entry-avr32b.S | |||
| @@ -401,9 +401,10 @@ handle_critical: | |||
| 401 | /* We should never get here... */ | 401 | /* We should never get here... */ |
| 402 | bad_return: | 402 | bad_return: |
| 403 | sub r12, pc, (. - 1f) | 403 | sub r12, pc, (. - 1f) |
| 404 | bral panic | 404 | lddpc pc, 2f |
| 405 | .align 2 | 405 | .align 2 |
| 406 | 1: .asciz "Return from critical exception!" | 406 | 1: .asciz "Return from critical exception!" |
| 407 | 2: .long panic | ||
| 407 | 408 | ||
| 408 | .align 1 | 409 | .align 1 |
| 409 | do_bus_error_write: | 410 | do_bus_error_write: |
diff --git a/arch/avr32/kernel/head.S b/arch/avr32/kernel/head.S index 6163bd0acb95..59eae6dfbed2 100644 --- a/arch/avr32/kernel/head.S +++ b/arch/avr32/kernel/head.S | |||
| @@ -10,33 +10,13 @@ | |||
| 10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
| 11 | 11 | ||
| 12 | #include <asm/page.h> | 12 | #include <asm/page.h> |
| 13 | #include <asm/thread_info.h> | ||
| 14 | #include <asm/sysreg.h> | ||
| 15 | 13 | ||
| 16 | .section .init.text,"ax" | 14 | .section .init.text,"ax" |
| 17 | .global kernel_entry | 15 | .global kernel_entry |
| 18 | kernel_entry: | 16 | kernel_entry: |
| 19 | /* Initialize status register */ | ||
| 20 | lddpc r0, init_sr | ||
| 21 | mtsr SYSREG_SR, r0 | ||
| 22 | |||
| 23 | /* Set initial stack pointer */ | ||
| 24 | lddpc sp, stack_addr | ||
| 25 | sub sp, -THREAD_SIZE | ||
| 26 | |||
| 27 | #ifdef CONFIG_FRAME_POINTER | ||
| 28 | /* Mark last stack frame */ | ||
| 29 | mov lr, 0 | ||
| 30 | mov r7, 0 | ||
| 31 | #endif | ||
| 32 | |||
| 33 | /* Start the show */ | 17 | /* Start the show */ |
| 34 | lddpc pc, kernel_start_addr | 18 | lddpc pc, kernel_start_addr |
| 35 | 19 | ||
| 36 | .align 2 | 20 | .align 2 |
| 37 | init_sr: | ||
| 38 | .long 0x007f0000 /* Supervisor mode, everything masked */ | ||
| 39 | stack_addr: | ||
| 40 | .long init_thread_union | ||
| 41 | kernel_start_addr: | 21 | kernel_start_addr: |
| 42 | .long start_kernel | 22 | .long start_kernel |
diff --git a/arch/avr32/kernel/time.c b/arch/avr32/kernel/time.c index 12f828ad5058..d0f771be9e96 100644 --- a/arch/avr32/kernel/time.c +++ b/arch/avr32/kernel/time.c | |||
| @@ -59,7 +59,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id) | |||
| 59 | static struct irqaction timer_irqaction = { | 59 | static struct irqaction timer_irqaction = { |
| 60 | .handler = timer_interrupt, | 60 | .handler = timer_interrupt, |
| 61 | /* Oprofile uses the same irq as the timer, so allow it to be shared */ | 61 | /* Oprofile uses the same irq as the timer, so allow it to be shared */ |
| 62 | .flags = IRQF_TIMER | IRQF_DISABLED | IRQF_SHARED, | 62 | .flags = IRQF_TIMER | IRQF_SHARED, |
| 63 | .name = "avr32_comparator", | 63 | .name = "avr32_comparator", |
| 64 | }; | 64 | }; |
| 65 | 65 | ||
