diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-03-20 11:58:09 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-03-20 11:58:09 -0500 |
| commit | fd4a0b92db6a57cba8d03efbe1cebf91f9124ce0 (patch) | |
| tree | 5886a08bfa1132058b06074f4666a36dc5ddd2a1 /arch/mips/kernel | |
| parent | 88274815f7477dc7550439413ab87c5ce4c5a623 (diff) | |
| parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'arch/mips/kernel')
| -rw-r--r-- | arch/mips/kernel/irq-mv6434x.c | 8 | ||||
| -rw-r--r-- | arch/mips/kernel/time.c | 6 | ||||
| -rw-r--r-- | arch/mips/kernel/vmlinux.lds.S | 4 |
3 files changed, 12 insertions, 6 deletions
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c index 0ac067f45cf5..0613f1f36b1b 100644 --- a/arch/mips/kernel/irq-mv6434x.c +++ b/arch/mips/kernel/irq-mv6434x.c | |||
| @@ -11,12 +11,14 @@ | |||
| 11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
| 12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
| 13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
| 14 | #include <asm/ptrace.h> | ||
| 15 | #include <linux/sched.h> | ||
| 16 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
| 15 | #include <linux/mv643xx.h> | ||
| 16 | #include <linux/sched.h> | ||
| 17 | |||
| 18 | #include <asm/ptrace.h> | ||
| 17 | #include <asm/io.h> | 19 | #include <asm/io.h> |
| 18 | #include <asm/irq.h> | 20 | #include <asm/irq.h> |
| 19 | #include <linux/mv643xx.h> | 21 | #include <asm/marvell.h> |
| 20 | 22 | ||
| 21 | static unsigned int irq_base; | 23 | static unsigned int irq_base; |
| 22 | 24 | ||
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 42c94c771afb..51273b7297a7 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
| @@ -424,6 +424,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 424 | unsigned long j; | 424 | unsigned long j; |
| 425 | unsigned int count; | 425 | unsigned int count; |
| 426 | 426 | ||
| 427 | write_seqlock(&xtime_lock); | ||
| 428 | |||
| 427 | count = mips_hpt_read(); | 429 | count = mips_hpt_read(); |
| 428 | mips_timer_ack(); | 430 | mips_timer_ack(); |
| 429 | 431 | ||
| @@ -441,7 +443,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 441 | * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be | 443 | * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be |
| 442 | * called as close as possible to 500 ms before the new second starts. | 444 | * called as close as possible to 500 ms before the new second starts. |
| 443 | */ | 445 | */ |
| 444 | write_seqlock(&xtime_lock); | ||
| 445 | if (ntp_synced() && | 446 | if (ntp_synced() && |
| 446 | xtime.tv_sec > last_rtc_update + 660 && | 447 | xtime.tv_sec > last_rtc_update + 660 && |
| 447 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | 448 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && |
| @@ -453,7 +454,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 453 | last_rtc_update = xtime.tv_sec - 600; | 454 | last_rtc_update = xtime.tv_sec - 600; |
| 454 | } | 455 | } |
| 455 | } | 456 | } |
| 456 | write_sequnlock(&xtime_lock); | ||
| 457 | 457 | ||
| 458 | /* | 458 | /* |
| 459 | * If jiffies has overflown in this timer_interrupt, we must | 459 | * If jiffies has overflown in this timer_interrupt, we must |
| @@ -496,6 +496,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 496 | } | 496 | } |
| 497 | } | 497 | } |
| 498 | 498 | ||
| 499 | write_sequnlock(&xtime_lock); | ||
| 500 | |||
| 499 | /* | 501 | /* |
| 500 | * In UP mode, we call local_timer_interrupt() to do profiling | 502 | * In UP mode, we call local_timer_interrupt() to do profiling |
| 501 | * and process accouting. | 503 | * and process accouting. |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index ff699dbb99f7..2ad0cedf29fe 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
| @@ -106,6 +106,9 @@ SECTIONS | |||
| 106 | .con_initcall.init : { *(.con_initcall.init) } | 106 | .con_initcall.init : { *(.con_initcall.init) } |
| 107 | __con_initcall_end = .; | 107 | __con_initcall_end = .; |
| 108 | SECURITY_INIT | 108 | SECURITY_INIT |
| 109 | /* .exit.text is discarded at runtime, not link time, to deal with | ||
| 110 | references from .rodata */ | ||
| 111 | .exit.text : { *(.exit.text) } | ||
| 109 | . = ALIGN(_PAGE_SIZE); | 112 | . = ALIGN(_PAGE_SIZE); |
| 110 | __initramfs_start = .; | 113 | __initramfs_start = .; |
| 111 | .init.ramfs : { *(.init.ramfs) } | 114 | .init.ramfs : { *(.init.ramfs) } |
| @@ -133,7 +136,6 @@ SECTIONS | |||
| 133 | 136 | ||
| 134 | /* Sections to be discarded */ | 137 | /* Sections to be discarded */ |
| 135 | /DISCARD/ : { | 138 | /DISCARD/ : { |
| 136 | *(.exit.text) | ||
| 137 | *(.exit.data) | 139 | *(.exit.data) |
| 138 | *(.exitcall.exit) | 140 | *(.exitcall.exit) |
| 139 | 141 | ||
