diff options
| author | David S. Miller <davem@davemloft.net> | 2009-12-01 18:46:35 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-12-01 18:46:35 -0500 |
| commit | 7e8f44f8d4fa9bb35e32c161fbcdbd6b9e6400e3 (patch) | |
| tree | cf6d526a070a06b365ab0ceb4e1c3ca9ad94666e /arch | |
| parent | 138f3c8518976953563a1316d7e0420c72d4ab96 (diff) | |
| parent | 2127816366e0ffbc1426fa69e7b9b2bebd2e2288 (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'arch')
52 files changed, 360 insertions, 98 deletions
diff --git a/arch/alpha/include/asm/thread_info.h b/arch/alpha/include/asm/thread_info.h index 815680b585ed..b3e888638bb7 100644 --- a/arch/alpha/include/asm/thread_info.h +++ b/arch/alpha/include/asm/thread_info.h | |||
| @@ -61,21 +61,24 @@ register struct thread_info *__current_thread_info __asm__("$8"); | |||
| 61 | /* | 61 | /* |
| 62 | * Thread information flags: | 62 | * Thread information flags: |
| 63 | * - these are process state flags and used from assembly | 63 | * - these are process state flags and used from assembly |
| 64 | * - pending work-to-be-done flags come first to fit in and immediate operand. | 64 | * - pending work-to-be-done flags come first and must be assigned to be |
| 65 | * within bits 0 to 7 to fit in and immediate operand. | ||
| 66 | * - ALPHA_UAC_SHIFT below must be kept consistent with the unaligned | ||
| 67 | * control flags. | ||
| 65 | * | 68 | * |
| 66 | * TIF_SYSCALL_TRACE is known to be 0 via blbs. | 69 | * TIF_SYSCALL_TRACE is known to be 0 via blbs. |
| 67 | */ | 70 | */ |
| 68 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | 71 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ |
| 69 | #define TIF_SIGPENDING 1 /* signal pending */ | 72 | #define TIF_NOTIFY_RESUME 1 /* callback before returning to user */ |
| 70 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ | 73 | #define TIF_SIGPENDING 2 /* signal pending */ |
| 71 | #define TIF_POLLING_NRFLAG 3 /* poll_idle is polling NEED_RESCHED */ | 74 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
| 72 | #define TIF_DIE_IF_KERNEL 4 /* dik recursion lock */ | 75 | #define TIF_POLLING_NRFLAG 8 /* poll_idle is polling NEED_RESCHED */ |
| 73 | #define TIF_UAC_NOPRINT 5 /* see sysinfo.h */ | 76 | #define TIF_DIE_IF_KERNEL 9 /* dik recursion lock */ |
| 74 | #define TIF_UAC_NOFIX 6 | 77 | #define TIF_UAC_NOPRINT 10 /* see sysinfo.h */ |
| 75 | #define TIF_UAC_SIGBUS 7 | 78 | #define TIF_UAC_NOFIX 11 |
| 76 | #define TIF_MEMDIE 8 | 79 | #define TIF_UAC_SIGBUS 12 |
| 77 | #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal */ | 80 | #define TIF_MEMDIE 13 |
| 78 | #define TIF_NOTIFY_RESUME 10 /* callback before returning to user */ | 81 | #define TIF_RESTORE_SIGMASK 14 /* restore signal mask in do_signal */ |
| 79 | #define TIF_FREEZE 16 /* is freezing for suspend */ | 82 | #define TIF_FREEZE 16 /* is freezing for suspend */ |
| 80 | 83 | ||
| 81 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 84 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
| @@ -94,7 +97,7 @@ register struct thread_info *__current_thread_info __asm__("$8"); | |||
| 94 | #define _TIF_ALLWORK_MASK (_TIF_WORK_MASK \ | 97 | #define _TIF_ALLWORK_MASK (_TIF_WORK_MASK \ |
| 95 | | _TIF_SYSCALL_TRACE) | 98 | | _TIF_SYSCALL_TRACE) |
| 96 | 99 | ||
| 97 | #define ALPHA_UAC_SHIFT 6 | 100 | #define ALPHA_UAC_SHIFT 10 |
| 98 | #define ALPHA_UAC_MASK (1 << TIF_UAC_NOPRINT | 1 << TIF_UAC_NOFIX | \ | 101 | #define ALPHA_UAC_MASK (1 << TIF_UAC_NOPRINT | 1 << TIF_UAC_NOFIX | \ |
| 99 | 1 << TIF_UAC_SIGBUS) | 102 | 1 << TIF_UAC_SIGBUS) |
| 100 | 103 | ||
diff --git a/arch/alpha/kernel/core_marvel.c b/arch/alpha/kernel/core_marvel.c index 8e059e58b0ac..53dd2f1a53aa 100644 --- a/arch/alpha/kernel/core_marvel.c +++ b/arch/alpha/kernel/core_marvel.c | |||
| @@ -1103,6 +1103,8 @@ marvel_agp_info(void) | |||
| 1103 | * Allocate the info structure. | 1103 | * Allocate the info structure. |
| 1104 | */ | 1104 | */ |
| 1105 | agp = kmalloc(sizeof(*agp), GFP_KERNEL); | 1105 | agp = kmalloc(sizeof(*agp), GFP_KERNEL); |
| 1106 | if (!agp) | ||
| 1107 | return NULL; | ||
| 1106 | 1108 | ||
| 1107 | /* | 1109 | /* |
| 1108 | * Fill it in. | 1110 | * Fill it in. |
diff --git a/arch/alpha/kernel/core_titan.c b/arch/alpha/kernel/core_titan.c index 76686497b1e2..219bf271c0ba 100644 --- a/arch/alpha/kernel/core_titan.c +++ b/arch/alpha/kernel/core_titan.c | |||
| @@ -757,6 +757,8 @@ titan_agp_info(void) | |||
| 757 | * Allocate the info structure. | 757 | * Allocate the info structure. |
| 758 | */ | 758 | */ |
| 759 | agp = kmalloc(sizeof(*agp), GFP_KERNEL); | 759 | agp = kmalloc(sizeof(*agp), GFP_KERNEL); |
| 760 | if (!agp) | ||
| 761 | return NULL; | ||
| 760 | 762 | ||
| 761 | /* | 763 | /* |
| 762 | * Fill it in. | 764 | * Fill it in. |
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index cc7834661427..c0de072b8305 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c | |||
| @@ -92,7 +92,7 @@ show_interrupts(struct seq_file *p, void *v) | |||
| 92 | for_each_online_cpu(j) | 92 | for_each_online_cpu(j) |
| 93 | seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j)); | 93 | seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j)); |
| 94 | #endif | 94 | #endif |
| 95 | seq_printf(p, " %14s", irq_desc[irq].chip->typename); | 95 | seq_printf(p, " %14s", irq_desc[irq].chip->name); |
| 96 | seq_printf(p, " %c%s", | 96 | seq_printf(p, " %c%s", |
| 97 | (action->flags & IRQF_DISABLED)?'+':' ', | 97 | (action->flags & IRQF_DISABLED)?'+':' ', |
| 98 | action->name); | 98 | action->name); |
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c index 38c805dfc544..cfde865b78e0 100644 --- a/arch/alpha/kernel/irq_alpha.c +++ b/arch/alpha/kernel/irq_alpha.c | |||
| @@ -228,7 +228,7 @@ struct irqaction timer_irqaction = { | |||
| 228 | }; | 228 | }; |
| 229 | 229 | ||
| 230 | static struct irq_chip rtc_irq_type = { | 230 | static struct irq_chip rtc_irq_type = { |
| 231 | .typename = "RTC", | 231 | .name = "RTC", |
| 232 | .startup = rtc_startup, | 232 | .startup = rtc_startup, |
| 233 | .shutdown = rtc_enable_disable, | 233 | .shutdown = rtc_enable_disable, |
| 234 | .enable = rtc_enable_disable, | 234 | .enable = rtc_enable_disable, |
diff --git a/arch/alpha/kernel/irq_i8259.c b/arch/alpha/kernel/irq_i8259.c index 50bfec9b588f..83a9ac280890 100644 --- a/arch/alpha/kernel/irq_i8259.c +++ b/arch/alpha/kernel/irq_i8259.c | |||
| @@ -84,7 +84,7 @@ i8259a_end_irq(unsigned int irq) | |||
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | struct irq_chip i8259a_irq_type = { | 86 | struct irq_chip i8259a_irq_type = { |
| 87 | .typename = "XT-PIC", | 87 | .name = "XT-PIC", |
| 88 | .startup = i8259a_startup_irq, | 88 | .startup = i8259a_startup_irq, |
| 89 | .shutdown = i8259a_disable_irq, | 89 | .shutdown = i8259a_disable_irq, |
| 90 | .enable = i8259a_enable_irq, | 90 | .enable = i8259a_enable_irq, |
diff --git a/arch/alpha/kernel/irq_pyxis.c b/arch/alpha/kernel/irq_pyxis.c index 69199a76ec4a..989ce46a0cf3 100644 --- a/arch/alpha/kernel/irq_pyxis.c +++ b/arch/alpha/kernel/irq_pyxis.c | |||
| @@ -71,7 +71,7 @@ pyxis_mask_and_ack_irq(unsigned int irq) | |||
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | static struct irq_chip pyxis_irq_type = { | 73 | static struct irq_chip pyxis_irq_type = { |
| 74 | .typename = "PYXIS", | 74 | .name = "PYXIS", |
| 75 | .startup = pyxis_startup_irq, | 75 | .startup = pyxis_startup_irq, |
| 76 | .shutdown = pyxis_disable_irq, | 76 | .shutdown = pyxis_disable_irq, |
| 77 | .enable = pyxis_enable_irq, | 77 | .enable = pyxis_enable_irq, |
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c index 85229369a1f8..d63e93e1e8bf 100644 --- a/arch/alpha/kernel/irq_srm.c +++ b/arch/alpha/kernel/irq_srm.c | |||
| @@ -49,7 +49,7 @@ srm_end_irq(unsigned int irq) | |||
| 49 | 49 | ||
| 50 | /* Handle interrupts from the SRM, assuming no additional weirdness. */ | 50 | /* Handle interrupts from the SRM, assuming no additional weirdness. */ |
| 51 | static struct irq_chip srm_irq_type = { | 51 | static struct irq_chip srm_irq_type = { |
| 52 | .typename = "SRM", | 52 | .name = "SRM", |
| 53 | .startup = srm_startup_irq, | 53 | .startup = srm_startup_irq, |
| 54 | .shutdown = srm_disable_irq, | 54 | .shutdown = srm_disable_irq, |
| 55 | .enable = srm_enable_irq, | 55 | .enable = srm_enable_irq, |
diff --git a/arch/alpha/kernel/sys_alcor.c b/arch/alpha/kernel/sys_alcor.c index 382035ef7394..20a30b8b9655 100644 --- a/arch/alpha/kernel/sys_alcor.c +++ b/arch/alpha/kernel/sys_alcor.c | |||
| @@ -90,7 +90,7 @@ alcor_end_irq(unsigned int irq) | |||
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | static struct irq_chip alcor_irq_type = { | 92 | static struct irq_chip alcor_irq_type = { |
| 93 | .typename = "ALCOR", | 93 | .name = "ALCOR", |
| 94 | .startup = alcor_startup_irq, | 94 | .startup = alcor_startup_irq, |
| 95 | .shutdown = alcor_disable_irq, | 95 | .shutdown = alcor_disable_irq, |
| 96 | .enable = alcor_enable_irq, | 96 | .enable = alcor_enable_irq, |
diff --git a/arch/alpha/kernel/sys_cabriolet.c b/arch/alpha/kernel/sys_cabriolet.c index ed349436732b..affd0f3f25df 100644 --- a/arch/alpha/kernel/sys_cabriolet.c +++ b/arch/alpha/kernel/sys_cabriolet.c | |||
| @@ -72,7 +72,7 @@ cabriolet_end_irq(unsigned int irq) | |||
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | static struct irq_chip cabriolet_irq_type = { | 74 | static struct irq_chip cabriolet_irq_type = { |
| 75 | .typename = "CABRIOLET", | 75 | .name = "CABRIOLET", |
| 76 | .startup = cabriolet_startup_irq, | 76 | .startup = cabriolet_startup_irq, |
| 77 | .shutdown = cabriolet_disable_irq, | 77 | .shutdown = cabriolet_disable_irq, |
| 78 | .enable = cabriolet_enable_irq, | 78 | .enable = cabriolet_enable_irq, |
diff --git a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c index 46e70ece5176..d64e1e497e76 100644 --- a/arch/alpha/kernel/sys_dp264.c +++ b/arch/alpha/kernel/sys_dp264.c | |||
| @@ -199,7 +199,7 @@ clipper_set_affinity(unsigned int irq, const struct cpumask *affinity) | |||
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | static struct irq_chip dp264_irq_type = { | 201 | static struct irq_chip dp264_irq_type = { |
| 202 | .typename = "DP264", | 202 | .name = "DP264", |
| 203 | .startup = dp264_startup_irq, | 203 | .startup = dp264_startup_irq, |
| 204 | .shutdown = dp264_disable_irq, | 204 | .shutdown = dp264_disable_irq, |
| 205 | .enable = dp264_enable_irq, | 205 | .enable = dp264_enable_irq, |
| @@ -210,7 +210,7 @@ static struct irq_chip dp264_irq_type = { | |||
| 210 | }; | 210 | }; |
| 211 | 211 | ||
| 212 | static struct irq_chip clipper_irq_type = { | 212 | static struct irq_chip clipper_irq_type = { |
| 213 | .typename = "CLIPPER", | 213 | .name = "CLIPPER", |
| 214 | .startup = clipper_startup_irq, | 214 | .startup = clipper_startup_irq, |
| 215 | .shutdown = clipper_disable_irq, | 215 | .shutdown = clipper_disable_irq, |
| 216 | .enable = clipper_enable_irq, | 216 | .enable = clipper_enable_irq, |
diff --git a/arch/alpha/kernel/sys_eb64p.c b/arch/alpha/kernel/sys_eb64p.c index 660c23ef661f..df2090ce5e7f 100644 --- a/arch/alpha/kernel/sys_eb64p.c +++ b/arch/alpha/kernel/sys_eb64p.c | |||
| @@ -70,7 +70,7 @@ eb64p_end_irq(unsigned int irq) | |||
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | static struct irq_chip eb64p_irq_type = { | 72 | static struct irq_chip eb64p_irq_type = { |
| 73 | .typename = "EB64P", | 73 | .name = "EB64P", |
| 74 | .startup = eb64p_startup_irq, | 74 | .startup = eb64p_startup_irq, |
| 75 | .shutdown = eb64p_disable_irq, | 75 | .shutdown = eb64p_disable_irq, |
| 76 | .enable = eb64p_enable_irq, | 76 | .enable = eb64p_enable_irq, |
diff --git a/arch/alpha/kernel/sys_eiger.c b/arch/alpha/kernel/sys_eiger.c index b99ea488d844..3ca1dbcf4044 100644 --- a/arch/alpha/kernel/sys_eiger.c +++ b/arch/alpha/kernel/sys_eiger.c | |||
| @@ -81,7 +81,7 @@ eiger_end_irq(unsigned int irq) | |||
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | static struct irq_chip eiger_irq_type = { | 83 | static struct irq_chip eiger_irq_type = { |
| 84 | .typename = "EIGER", | 84 | .name = "EIGER", |
| 85 | .startup = eiger_startup_irq, | 85 | .startup = eiger_startup_irq, |
| 86 | .shutdown = eiger_disable_irq, | 86 | .shutdown = eiger_disable_irq, |
| 87 | .enable = eiger_enable_irq, | 87 | .enable = eiger_enable_irq, |
diff --git a/arch/alpha/kernel/sys_jensen.c b/arch/alpha/kernel/sys_jensen.c index ef0b83a070ac..7a7ae36fff91 100644 --- a/arch/alpha/kernel/sys_jensen.c +++ b/arch/alpha/kernel/sys_jensen.c | |||
| @@ -119,7 +119,7 @@ jensen_local_end(unsigned int irq) | |||
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | static struct irq_chip jensen_local_irq_type = { | 121 | static struct irq_chip jensen_local_irq_type = { |
| 122 | .typename = "LOCAL", | 122 | .name = "LOCAL", |
| 123 | .startup = jensen_local_startup, | 123 | .startup = jensen_local_startup, |
| 124 | .shutdown = jensen_local_shutdown, | 124 | .shutdown = jensen_local_shutdown, |
| 125 | .enable = jensen_local_enable, | 125 | .enable = jensen_local_enable, |
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c index bbfc4f20ca72..0bb3b5c4f693 100644 --- a/arch/alpha/kernel/sys_marvel.c +++ b/arch/alpha/kernel/sys_marvel.c | |||
| @@ -170,7 +170,7 @@ marvel_irq_noop_return(unsigned int irq) | |||
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | static struct irq_chip marvel_legacy_irq_type = { | 172 | static struct irq_chip marvel_legacy_irq_type = { |
| 173 | .typename = "LEGACY", | 173 | .name = "LEGACY", |
| 174 | .startup = marvel_irq_noop_return, | 174 | .startup = marvel_irq_noop_return, |
| 175 | .shutdown = marvel_irq_noop, | 175 | .shutdown = marvel_irq_noop, |
| 176 | .enable = marvel_irq_noop, | 176 | .enable = marvel_irq_noop, |
| @@ -180,7 +180,7 @@ static struct irq_chip marvel_legacy_irq_type = { | |||
| 180 | }; | 180 | }; |
| 181 | 181 | ||
| 182 | static struct irq_chip io7_lsi_irq_type = { | 182 | static struct irq_chip io7_lsi_irq_type = { |
| 183 | .typename = "LSI", | 183 | .name = "LSI", |
| 184 | .startup = io7_startup_irq, | 184 | .startup = io7_startup_irq, |
| 185 | .shutdown = io7_disable_irq, | 185 | .shutdown = io7_disable_irq, |
| 186 | .enable = io7_enable_irq, | 186 | .enable = io7_enable_irq, |
| @@ -190,7 +190,7 @@ static struct irq_chip io7_lsi_irq_type = { | |||
| 190 | }; | 190 | }; |
| 191 | 191 | ||
| 192 | static struct irq_chip io7_msi_irq_type = { | 192 | static struct irq_chip io7_msi_irq_type = { |
| 193 | .typename = "MSI", | 193 | .name = "MSI", |
| 194 | .startup = io7_startup_irq, | 194 | .startup = io7_startup_irq, |
| 195 | .shutdown = io7_disable_irq, | 195 | .shutdown = io7_disable_irq, |
| 196 | .enable = io7_enable_irq, | 196 | .enable = io7_enable_irq, |
diff --git a/arch/alpha/kernel/sys_mikasa.c b/arch/alpha/kernel/sys_mikasa.c index 4e366641a08e..ee8865169811 100644 --- a/arch/alpha/kernel/sys_mikasa.c +++ b/arch/alpha/kernel/sys_mikasa.c | |||
| @@ -69,7 +69,7 @@ mikasa_end_irq(unsigned int irq) | |||
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | static struct irq_chip mikasa_irq_type = { | 71 | static struct irq_chip mikasa_irq_type = { |
| 72 | .typename = "MIKASA", | 72 | .name = "MIKASA", |
| 73 | .startup = mikasa_startup_irq, | 73 | .startup = mikasa_startup_irq, |
| 74 | .shutdown = mikasa_disable_irq, | 74 | .shutdown = mikasa_disable_irq, |
| 75 | .enable = mikasa_enable_irq, | 75 | .enable = mikasa_enable_irq, |
diff --git a/arch/alpha/kernel/sys_noritake.c b/arch/alpha/kernel/sys_noritake.c index 35753a173bac..86503fe73a88 100644 --- a/arch/alpha/kernel/sys_noritake.c +++ b/arch/alpha/kernel/sys_noritake.c | |||
| @@ -74,7 +74,7 @@ noritake_end_irq(unsigned int irq) | |||
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | static struct irq_chip noritake_irq_type = { | 76 | static struct irq_chip noritake_irq_type = { |
| 77 | .typename = "NORITAKE", | 77 | .name = "NORITAKE", |
| 78 | .startup = noritake_startup_irq, | 78 | .startup = noritake_startup_irq, |
| 79 | .shutdown = noritake_disable_irq, | 79 | .shutdown = noritake_disable_irq, |
| 80 | .enable = noritake_enable_irq, | 80 | .enable = noritake_enable_irq, |
diff --git a/arch/alpha/kernel/sys_rawhide.c b/arch/alpha/kernel/sys_rawhide.c index f3aec7e085c8..26c322bf89ee 100644 --- a/arch/alpha/kernel/sys_rawhide.c +++ b/arch/alpha/kernel/sys_rawhide.c | |||
| @@ -136,7 +136,7 @@ rawhide_end_irq(unsigned int irq) | |||
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | static struct irq_chip rawhide_irq_type = { | 138 | static struct irq_chip rawhide_irq_type = { |
| 139 | .typename = "RAWHIDE", | 139 | .name = "RAWHIDE", |
| 140 | .startup = rawhide_startup_irq, | 140 | .startup = rawhide_startup_irq, |
| 141 | .shutdown = rawhide_disable_irq, | 141 | .shutdown = rawhide_disable_irq, |
| 142 | .enable = rawhide_enable_irq, | 142 | .enable = rawhide_enable_irq, |
diff --git a/arch/alpha/kernel/sys_ruffian.c b/arch/alpha/kernel/sys_ruffian.c index d9f9cfeb9931..8de1046fe91e 100644 --- a/arch/alpha/kernel/sys_ruffian.c +++ b/arch/alpha/kernel/sys_ruffian.c | |||
| @@ -66,7 +66,7 @@ ruffian_init_irq(void) | |||
| 66 | common_init_isa_dma(); | 66 | common_init_isa_dma(); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | #define RUFFIAN_LATCH ((PIT_TICK_RATE + HZ / 2) / HZ) | 69 | #define RUFFIAN_LATCH DIV_ROUND_CLOSEST(PIT_TICK_RATE, HZ) |
| 70 | 70 | ||
| 71 | static void __init | 71 | static void __init |
| 72 | ruffian_init_rtc(void) | 72 | ruffian_init_rtc(void) |
diff --git a/arch/alpha/kernel/sys_rx164.c b/arch/alpha/kernel/sys_rx164.c index fc9246373452..be161129eab9 100644 --- a/arch/alpha/kernel/sys_rx164.c +++ b/arch/alpha/kernel/sys_rx164.c | |||
| @@ -73,7 +73,7 @@ rx164_end_irq(unsigned int irq) | |||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | static struct irq_chip rx164_irq_type = { | 75 | static struct irq_chip rx164_irq_type = { |
| 76 | .typename = "RX164", | 76 | .name = "RX164", |
| 77 | .startup = rx164_startup_irq, | 77 | .startup = rx164_startup_irq, |
| 78 | .shutdown = rx164_disable_irq, | 78 | .shutdown = rx164_disable_irq, |
| 79 | .enable = rx164_enable_irq, | 79 | .enable = rx164_enable_irq, |
diff --git a/arch/alpha/kernel/sys_sable.c b/arch/alpha/kernel/sys_sable.c index 426eb6906d01..b2abe27a23cf 100644 --- a/arch/alpha/kernel/sys_sable.c +++ b/arch/alpha/kernel/sys_sable.c | |||
| @@ -502,7 +502,7 @@ sable_lynx_mask_and_ack_irq(unsigned int irq) | |||
| 502 | } | 502 | } |
| 503 | 503 | ||
| 504 | static struct irq_chip sable_lynx_irq_type = { | 504 | static struct irq_chip sable_lynx_irq_type = { |
| 505 | .typename = "SABLE/LYNX", | 505 | .name = "SABLE/LYNX", |
| 506 | .startup = sable_lynx_startup_irq, | 506 | .startup = sable_lynx_startup_irq, |
| 507 | .shutdown = sable_lynx_disable_irq, | 507 | .shutdown = sable_lynx_disable_irq, |
| 508 | .enable = sable_lynx_enable_irq, | 508 | .enable = sable_lynx_enable_irq, |
diff --git a/arch/alpha/kernel/sys_takara.c b/arch/alpha/kernel/sys_takara.c index 830318c21661..230464885b5c 100644 --- a/arch/alpha/kernel/sys_takara.c +++ b/arch/alpha/kernel/sys_takara.c | |||
| @@ -75,7 +75,7 @@ takara_end_irq(unsigned int irq) | |||
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | static struct irq_chip takara_irq_type = { | 77 | static struct irq_chip takara_irq_type = { |
| 78 | .typename = "TAKARA", | 78 | .name = "TAKARA", |
| 79 | .startup = takara_startup_irq, | 79 | .startup = takara_startup_irq, |
| 80 | .shutdown = takara_disable_irq, | 80 | .shutdown = takara_disable_irq, |
| 81 | .enable = takara_enable_irq, | 81 | .enable = takara_enable_irq, |
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index 88978fc60f83..288053342c83 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
| @@ -195,7 +195,7 @@ init_titan_irqs(struct irq_chip * ops, int imin, int imax) | |||
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | static struct irq_chip titan_irq_type = { | 197 | static struct irq_chip titan_irq_type = { |
| 198 | .typename = "TITAN", | 198 | .name = "TITAN", |
| 199 | .startup = titan_startup_irq, | 199 | .startup = titan_startup_irq, |
| 200 | .shutdown = titan_disable_irq, | 200 | .shutdown = titan_disable_irq, |
| 201 | .enable = titan_enable_irq, | 201 | .enable = titan_enable_irq, |
diff --git a/arch/alpha/kernel/sys_wildfire.c b/arch/alpha/kernel/sys_wildfire.c index e91b4c3838a8..62fd972e18ef 100644 --- a/arch/alpha/kernel/sys_wildfire.c +++ b/arch/alpha/kernel/sys_wildfire.c | |||
| @@ -158,7 +158,7 @@ wildfire_end_irq(unsigned int irq) | |||
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | static struct irq_chip wildfire_irq_type = { | 160 | static struct irq_chip wildfire_irq_type = { |
| 161 | .typename = "WILDFIRE", | 161 | .name = "WILDFIRE", |
| 162 | .startup = wildfire_startup_irq, | 162 | .startup = wildfire_startup_irq, |
| 163 | .shutdown = wildfire_disable_irq, | 163 | .shutdown = wildfire_disable_irq, |
| 164 | .enable = wildfire_enable_irq, | 164 | .enable = wildfire_enable_irq, |
diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h index d16ec97ec9a9..c019949a5189 100644 --- a/arch/arm/include/asm/kmap_types.h +++ b/arch/arm/include/asm/kmap_types.h | |||
| @@ -22,4 +22,10 @@ enum km_type { | |||
| 22 | KM_TYPE_NR | 22 | KM_TYPE_NR |
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | #ifdef CONFIG_DEBUG_HIGHMEM | ||
| 26 | #define KM_NMI (-1) | ||
| 27 | #define KM_NMI_PTE (-1) | ||
| 28 | #define KM_IRQ_PTE (-1) | ||
| 29 | #endif | ||
| 30 | |||
| 25 | #endif | 31 | #endif |
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 2a573d4fea24..e7714f367eb8 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
| @@ -662,8 +662,12 @@ static void do_signal(struct pt_regs *regs, int syscall) | |||
| 662 | regs->ARM_sp -= 4; | 662 | regs->ARM_sp -= 4; |
| 663 | usp = (u32 __user *)regs->ARM_sp; | 663 | usp = (u32 __user *)regs->ARM_sp; |
| 664 | 664 | ||
| 665 | put_user(regs->ARM_pc, usp); | 665 | if (put_user(regs->ARM_pc, usp) == 0) { |
| 666 | regs->ARM_pc = KERN_RESTART_CODE; | 666 | regs->ARM_pc = KERN_RESTART_CODE; |
| 667 | } else { | ||
| 668 | regs->ARM_sp += 4; | ||
| 669 | force_sigsegv(0, current); | ||
| 670 | } | ||
| 667 | #endif | 671 | #endif |
| 668 | } | 672 | } |
| 669 | } | 673 | } |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa2xx.c b/arch/arm/mach-pxa/cpufreq-pxa2xx.c index 983cc8c20081..9e4d9816726a 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa2xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa2xx.c | |||
| @@ -447,6 +447,7 @@ static __init int pxa_cpufreq_init(struct cpufreq_policy *policy) | |||
| 447 | pxa27x_freq_table[i].frequency = freq; | 447 | pxa27x_freq_table[i].frequency = freq; |
| 448 | pxa27x_freq_table[i].index = i; | 448 | pxa27x_freq_table[i].index = i; |
| 449 | } | 449 | } |
| 450 | pxa27x_freq_table[i].index = i; | ||
| 450 | pxa27x_freq_table[i].frequency = CPUFREQ_TABLE_END; | 451 | pxa27x_freq_table[i].frequency = CPUFREQ_TABLE_END; |
| 451 | 452 | ||
| 452 | /* | 453 | /* |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa3xx.c b/arch/arm/mach-pxa/cpufreq-pxa3xx.c index 67f34a8d8e60..149cdd9aee4d 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa3xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa3xx.c | |||
| @@ -102,7 +102,7 @@ static int setup_freqs_table(struct cpufreq_policy *policy, | |||
| 102 | table[i].index = i; | 102 | table[i].index = i; |
| 103 | table[i].frequency = freqs[i].cpufreq_mhz * 1000; | 103 | table[i].frequency = freqs[i].cpufreq_mhz * 1000; |
| 104 | } | 104 | } |
| 105 | table[num].frequency = i; | 105 | table[num].index = i; |
| 106 | table[num].frequency = CPUFREQ_TABLE_END; | 106 | table[num].frequency = CPUFREQ_TABLE_END; |
| 107 | 107 | ||
| 108 | pxa3xx_freqs = freqs; | 108 | pxa3xx_freqs = freqs; |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 3da45d051743..d98023f55503 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
| @@ -802,10 +802,12 @@ static void __init spitz_init(void) | |||
| 802 | { | 802 | { |
| 803 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; | 803 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; |
| 804 | 804 | ||
| 805 | #ifdef CONFIG_MACH_BORZOI | ||
| 805 | if (machine_is_borzoi()) { | 806 | if (machine_is_borzoi()) { |
| 806 | sharpsl_nand_platform_data.badblock_pattern = &sharpsl_akita_bbt; | 807 | sharpsl_nand_platform_data.badblock_pattern = &sharpsl_akita_bbt; |
| 807 | sharpsl_nand_platform_data.ecc_layout = &akita_oobinfo; | 808 | sharpsl_nand_platform_data.ecc_layout = &akita_oobinfo; |
| 808 | } | 809 | } |
| 810 | #endif | ||
| 809 | 811 | ||
| 810 | platform_scoop_config = &spitz_pcmcia_config; | 812 | platform_scoop_config = &spitz_pcmcia_config; |
| 811 | 813 | ||
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 94be7bb6cb9a..07b976da6174 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | # | 12 | # |
| 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
| 14 | # | 14 | # |
| 15 | # Last update: Fri Sep 18 21:42:00 2009 | 15 | # Last update: Wed Nov 25 22:14:58 2009 |
| 16 | # | 16 | # |
| 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
| 18 | # | 18 | # |
| @@ -928,7 +928,7 @@ palmt5 MACH_PALMT5 PALMT5 917 | |||
| 928 | palmtc MACH_PALMTC PALMTC 918 | 928 | palmtc MACH_PALMTC PALMTC 918 |
| 929 | omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919 | 929 | omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919 |
| 930 | mxc30030evb MACH_MXC30030EVB MXC30030EVB 920 | 930 | mxc30030evb MACH_MXC30030EVB MXC30030EVB 920 |
| 931 | rea_2d MACH_REA_2D REA_2D 921 | 931 | rea_cpu2 MACH_REA_2D REA_2D 921 |
| 932 | eti3e524 MACH_TI3E524 TI3E524 922 | 932 | eti3e524 MACH_TI3E524 TI3E524 922 |
| 933 | ateb9200 MACH_ATEB9200 ATEB9200 923 | 933 | ateb9200 MACH_ATEB9200 ATEB9200 923 |
| 934 | auckland MACH_AUCKLAND AUCKLAND 924 | 934 | auckland MACH_AUCKLAND AUCKLAND 924 |
| @@ -2421,3 +2421,118 @@ liberty MACH_LIBERTY LIBERTY 2434 | |||
| 2421 | mh355 MACH_MH355 MH355 2435 | 2421 | mh355 MACH_MH355 MH355 2435 |
| 2422 | pc7802 MACH_PC7802 PC7802 2436 | 2422 | pc7802 MACH_PC7802 PC7802 2436 |
| 2423 | gnet_sgc MACH_GNET_SGC GNET_SGC 2437 | 2423 | gnet_sgc MACH_GNET_SGC GNET_SGC 2437 |
| 2424 | einstein15 MACH_EINSTEIN15 EINSTEIN15 2438 | ||
| 2425 | cmpd MACH_CMPD CMPD 2439 | ||
| 2426 | davinci_hase1 MACH_DAVINCI_HASE1 DAVINCI_HASE1 2440 | ||
| 2427 | lgeincitephone MACH_LGEINCITEPHONE LGEINCITEPHONE 2441 | ||
| 2428 | ea313x MACH_EA313X EA313X 2442 | ||
| 2429 | fwbd_39064 MACH_FWBD_39064 FWBD_39064 2443 | ||
| 2430 | fwbd_390128 MACH_FWBD_390128 FWBD_390128 2444 | ||
| 2431 | pelco_moe MACH_PELCO_MOE PELCO_MOE 2445 | ||
| 2432 | minimix27 MACH_MINIMIX27 MINIMIX27 2446 | ||
| 2433 | omap3_thunder MACH_OMAP3_THUNDER OMAP3_THUNDER 2447 | ||
| 2434 | passionc MACH_PASSIONC PASSIONC 2448 | ||
| 2435 | mx27amata MACH_MX27AMATA MX27AMATA 2449 | ||
| 2436 | bgat1 MACH_BGAT1 BGAT1 2450 | ||
| 2437 | buzz MACH_BUZZ BUZZ 2451 | ||
| 2438 | mb9g20 MACH_MB9G20 MB9G20 2452 | ||
| 2439 | yushan MACH_YUSHAN YUSHAN 2453 | ||
| 2440 | lizard MACH_LIZARD LIZARD 2454 | ||
| 2441 | omap3polycom MACH_OMAP3POLYCOM OMAP3POLYCOM 2455 | ||
| 2442 | smdkv210 MACH_SMDKV210 SMDKV210 2456 | ||
| 2443 | bravo MACH_BRAVO BRAVO 2457 | ||
| 2444 | siogentoo1 MACH_SIOGENTOO1 SIOGENTOO1 2458 | ||
| 2445 | siogentoo2 MACH_SIOGENTOO2 SIOGENTOO2 2459 | ||
| 2446 | sm3k MACH_SM3K SM3K 2460 | ||
| 2447 | acer_tempo_f900 MACH_ACER_TEMPO_F900 ACER_TEMPO_F900 2461 | ||
| 2448 | sst61vc010_dev MACH_SST61VC010_DEV SST61VC010_DEV 2462 | ||
| 2449 | glittertind MACH_GLITTERTIND GLITTERTIND 2463 | ||
| 2450 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 | ||
| 2451 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 | ||
| 2452 | cybook2440 MACH_CYBOOK2440 CYBOOK2440 2466 | ||
| 2453 | torino_s MACH_TORINO_S TORINO_S 2467 | ||
| 2454 | havana MACH_HAVANA HAVANA 2468 | ||
| 2455 | beaumont_11 MACH_BEAUMONT_11 BEAUMONT_11 2469 | ||
| 2456 | vanguard MACH_VANGUARD VANGUARD 2470 | ||
| 2457 | s5pc110_draco MACH_S5PC110_DRACO S5PC110_DRACO 2471 | ||
| 2458 | cartesio_two MACH_CARTESIO_TWO CARTESIO_TWO 2472 | ||
| 2459 | aster MACH_ASTER ASTER 2473 | ||
| 2460 | voguesv210 MACH_VOGUESV210 VOGUESV210 2474 | ||
| 2461 | acm500x MACH_ACM500X ACM500X 2475 | ||
| 2462 | km9260 MACH_KM9260 KM9260 2476 | ||
| 2463 | nideflexg1 MACH_NIDEFLEXG1 NIDEFLEXG1 2477 | ||
| 2464 | ctera_plug_io MACH_CTERA_PLUG_IO CTERA_PLUG_IO 2478 | ||
| 2465 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 | ||
| 2466 | at91sam9g10ek2 MACH_AT91SAM9G10EK2 AT91SAM9G10EK2 2480 | ||
| 2467 | asusp527 MACH_ASUSP527 ASUSP527 2481 | ||
| 2468 | at91sam9g20mpm2 MACH_AT91SAM9G20MPM2 AT91SAM9G20MPM2 2482 | ||
| 2469 | topasa900 MACH_TOPASA900 TOPASA900 2483 | ||
| 2470 | electrum_100 MACH_ELECTRUM_100 ELECTRUM_100 2484 | ||
| 2471 | mx51grb MACH_MX51GRB MX51GRB 2485 | ||
| 2472 | xea300 MACH_XEA300 XEA300 2486 | ||
| 2473 | htcstartrek MACH_HTCSTARTREK HTCSTARTREK 2487 | ||
| 2474 | lima MACH_LIMA LIMA 2488 | ||
| 2475 | csb740 MACH_CSB740 CSB740 2489 | ||
| 2476 | usb_s8815 MACH_USB_S8815 USB_S8815 2490 | ||
| 2477 | watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 | ||
| 2478 | milkyway MACH_MILKYWAY MILKYWAY 2492 | ||
| 2479 | g4evm MACH_G4EVM G4EVM 2493 | ||
| 2480 | picomod6 MACH_PICOMOD6 PICOMOD6 2494 | ||
| 2481 | omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495 | ||
| 2482 | ip6000 MACH_IP6000 IP6000 2496 | ||
| 2483 | ip6010 MACH_IP6010 IP6010 2497 | ||
| 2484 | utm400 MACH_UTM400 UTM400 2498 | ||
| 2485 | omap3_zybex MACH_OMAP3_ZYBEX OMAP3_ZYBEX 2499 | ||
| 2486 | wireless_space MACH_WIRELESS_SPACE WIRELESS_SPACE 2500 | ||
| 2487 | sx560 MACH_SX560 SX560 2501 | ||
| 2488 | ts41x MACH_TS41X TS41X 2502 | ||
| 2489 | elphel10373 MACH_ELPHEL10373 ELPHEL10373 2503 | ||
| 2490 | rhobot MACH_RHOBOT RHOBOT 2504 | ||
| 2491 | mx51_refresh MACH_MX51_REFRESH MX51_REFRESH 2505 | ||
| 2492 | ls9260 MACH_LS9260 LS9260 2506 | ||
| 2493 | shank MACH_SHANK SHANK 2507 | ||
| 2494 | qsd8x50_st1 MACH_QSD8X50_ST1 QSD8X50_ST1 2508 | ||
| 2495 | at91sam9m10ekes MACH_AT91SAM9M10EKES AT91SAM9M10EKES 2509 | ||
| 2496 | hiram MACH_HIRAM HIRAM 2510 | ||
| 2497 | phy3250 MACH_PHY3250 PHY3250 2511 | ||
| 2498 | ea3250 MACH_EA3250 EA3250 2512 | ||
| 2499 | fdi3250 MACH_FDI3250 FDI3250 2513 | ||
| 2500 | whitestone MACH_WHITESTONE WHITESTONE 2514 | ||
| 2501 | at91sam9263nit MACH_AT91SAM9263NIT AT91SAM9263NIT 2515 | ||
| 2502 | ccmx51 MACH_CCMX51 CCMX51 2516 | ||
| 2503 | ccmx51js MACH_CCMX51JS CCMX51JS 2517 | ||
| 2504 | ccwmx51 MACH_CCWMX51 CCWMX51 2518 | ||
| 2505 | ccwmx51js MACH_CCWMX51JS CCWMX51JS 2519 | ||
| 2506 | mini6410 MACH_MINI6410 MINI6410 2520 | ||
| 2507 | tiny6410 MACH_TINY6410 TINY6410 2521 | ||
| 2508 | nano6410 MACH_NANO6410 NANO6410 2522 | ||
| 2509 | at572d940hfnldb MACH_AT572D940HFNLDB AT572D940HFNLDB 2523 | ||
| 2510 | htcleo MACH_HTCLEO HTCLEO 2524 | ||
| 2511 | avp13 MACH_AVP13 AVP13 2525 | ||
| 2512 | xxsvideod MACH_XXSVIDEOD XXSVIDEOD 2526 | ||
| 2513 | vpnext MACH_VPNEXT VPNEXT 2527 | ||
| 2514 | swarco_itc3 MACH_SWARCO_ITC3 SWARCO_ITC3 2528 | ||
| 2515 | tx51 MACH_TX51 TX51 2529 | ||
| 2516 | dolby_cat1021 MACH_DOLBY_CAT1021 DOLBY_CAT1021 2530 | ||
| 2517 | mx28evk MACH_MX28EVK MX28EVK 2531 | ||
| 2518 | phoenix260 MACH_PHOENIX260 PHOENIX260 2532 | ||
| 2519 | uvaca_stork MACH_UVACA_STORK UVACA_STORK 2533 | ||
| 2520 | smartq5 MACH_SMARTQ5 SMARTQ5 2534 | ||
| 2521 | all3078 MACH_ALL3078 ALL3078 2535 | ||
| 2522 | ctera_2bay_ds MACH_CTERA_2BAY_DS CTERA_2BAY_DS 2536 | ||
| 2523 | siogentoo3 MACH_SIOGENTOO3 SIOGENTOO3 2537 | ||
| 2524 | epb5000 MACH_EPB5000 EPB5000 2538 | ||
| 2525 | hy9263 MACH_HY9263 HY9263 2539 | ||
| 2526 | acer_tempo_m900 MACH_ACER_TEMPO_M900 ACER_TEMPO_M900 2540 | ||
| 2527 | acer_tempo_dx650 MACH_ACER_TEMPO_DX900 ACER_TEMPO_DX900 2541 | ||
| 2528 | acer_tempo_x960 MACH_ACER_TEMPO_X960 ACER_TEMPO_X960 2542 | ||
| 2529 | acer_eten_v900 MACH_ACER_ETEN_V900 ACER_ETEN_V900 2543 | ||
| 2530 | acer_eten_x900 MACH_ACER_ETEN_X900 ACER_ETEN_X900 2544 | ||
| 2531 | bonnell MACH_BONNELL BONNELL 2545 | ||
| 2532 | oht_mx27 MACH_OHT_MX27 OHT_MX27 2546 | ||
| 2533 | htcquartz MACH_HTCQUARTZ HTCQUARTZ 2547 | ||
| 2534 | davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 | ||
| 2535 | c3ax03 MACH_C3AX03 C3AX03 2549 | ||
| 2536 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 | ||
| 2537 | esyx MACH_ESYX ESYX 2551 | ||
| 2538 | bulldog MACH_BULLDOG BULLDOG 2553 | ||
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c index 1f170216d2f9..3946aff4f414 100644 --- a/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/arch/blackfin/kernel/bfin_dma_5xx.c | |||
| @@ -225,8 +225,13 @@ int blackfin_dma_suspend(void) | |||
| 225 | void blackfin_dma_resume(void) | 225 | void blackfin_dma_resume(void) |
| 226 | { | 226 | { |
| 227 | int i; | 227 | int i; |
| 228 | for (i = 0; i < MAX_DMA_SUSPEND_CHANNELS; ++i) | 228 | |
| 229 | dma_ch[i].regs->peripheral_map = dma_ch[i].saved_peripheral_map; | 229 | for (i = 0; i < MAX_DMA_CHANNELS; ++i) { |
| 230 | dma_ch[i].regs->cfg = 0; | ||
| 231 | |||
| 232 | if (i < MAX_DMA_SUSPEND_CHANNELS) | ||
| 233 | dma_ch[i].regs->peripheral_map = dma_ch[i].saved_peripheral_map; | ||
| 234 | } | ||
| 230 | } | 235 | } |
| 231 | #endif | 236 | #endif |
| 232 | 237 | ||
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c index f7b9cdce8239..b52c1f8c4bc0 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c | |||
| @@ -38,7 +38,7 @@ void __init generate_cplb_tables_cpu(unsigned int cpu) | |||
| 38 | 38 | ||
| 39 | #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE | 39 | #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE |
| 40 | d_cache = CPLB_L1_CHBL; | 40 | d_cache = CPLB_L1_CHBL; |
| 41 | #ifdef CONFIG_BFIN_EXTMEM_WRITETROUGH | 41 | #ifdef CONFIG_BFIN_EXTMEM_WRITETHROUGH |
| 42 | d_cache |= CPLB_L1_AOW | CPLB_WT; | 42 | d_cache |= CPLB_L1_AOW | CPLB_WT; |
| 43 | #endif | 43 | #endif |
| 44 | #endif | 44 | #endif |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 430ae39456e8..5cc7e2e9e415 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
| @@ -151,7 +151,7 @@ void start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_ | |||
| 151 | regs->pc = new_ip; | 151 | regs->pc = new_ip; |
| 152 | if (current->mm) | 152 | if (current->mm) |
| 153 | regs->p5 = current->mm->start_data; | 153 | regs->p5 = current->mm->start_data; |
| 154 | #ifdef CONFIG_SMP | 154 | #ifndef CONFIG_SMP |
| 155 | task_thread_info(current)->l1_task_info.stack_start = | 155 | task_thread_info(current)->l1_task_info.stack_start = |
| 156 | (void *)current->mm->context.stack_start; | 156 | (void *)current->mm->context.stack_start; |
| 157 | task_thread_info(current)->l1_task_info.lowest_sp = (void *)new_sp; | 157 | task_thread_info(current)->l1_task_info.lowest_sp = (void *)new_sp; |
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c index 0982b5d5af10..56b0ba12175f 100644 --- a/arch/blackfin/kernel/ptrace.c +++ b/arch/blackfin/kernel/ptrace.c | |||
| @@ -315,7 +315,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 315 | case BFIN_MEM_ACCESS_CORE: | 315 | case BFIN_MEM_ACCESS_CORE: |
| 316 | case BFIN_MEM_ACCESS_CORE_ONLY: | 316 | case BFIN_MEM_ACCESS_CORE_ONLY: |
| 317 | copied = access_process_vm(child, addr, &data, | 317 | copied = access_process_vm(child, addr, &data, |
| 318 | to_copy, 0); | 318 | to_copy, 1); |
| 319 | if (copied) | 319 | if (copied) |
| 320 | break; | 320 | break; |
| 321 | 321 | ||
diff --git a/arch/blackfin/mach-bf518/include/mach/anomaly.h b/arch/blackfin/mach-bf518/include/mach/anomaly.h index e9c65390edd1..2829dd0400f1 100644 --- a/arch/blackfin/mach-bf518/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf518/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf518/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -70,6 +74,10 @@ | |||
| 70 | #define ANOMALY_05000461 (1) | 74 | #define ANOMALY_05000461 (1) |
| 71 | /* Synchronization Problem at Startup May Cause SPORT Transmit Channels to Misalign */ | 75 | /* Synchronization Problem at Startup May Cause SPORT Transmit Channels to Misalign */ |
| 72 | #define ANOMALY_05000462 (1) | 76 | #define ANOMALY_05000462 (1) |
| 77 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 78 | #define ANOMALY_05000473 (1) | ||
| 79 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 80 | #define ANOMALY_05000477 (1) | ||
| 73 | 81 | ||
| 74 | /* Anomalies that don't exist on this proc */ | 82 | /* Anomalies that don't exist on this proc */ |
| 75 | #define ANOMALY_05000099 (0) | 83 | #define ANOMALY_05000099 (0) |
| @@ -133,5 +141,7 @@ | |||
| 133 | #define ANOMALY_05000450 (0) | 141 | #define ANOMALY_05000450 (0) |
| 134 | #define ANOMALY_05000465 (0) | 142 | #define ANOMALY_05000465 (0) |
| 135 | #define ANOMALY_05000467 (0) | 143 | #define ANOMALY_05000467 (0) |
| 144 | #define ANOMALY_05000474 (0) | ||
| 145 | #define ANOMALY_05000475 (0) | ||
| 136 | 146 | ||
| 137 | #endif | 147 | #endif |
diff --git a/arch/blackfin/mach-bf527/include/mach/anomaly.h b/arch/blackfin/mach-bf527/include/mach/anomaly.h index 3f9052687fa8..02040df8ec80 100644 --- a/arch/blackfin/mach-bf527/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf527/include/mach/anomaly.h | |||
| @@ -1,14 +1,18 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf527/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| 10 | * - Revision D, 08/14/2009; ADSP-BF526 Blackfin Processor Anomaly List | 14 | * - Revision D, 08/14/2009; ADSP-BF526 Blackfin Processor Anomaly List |
| 11 | * - Revision F, 03/03/2009; ADSP-BF527 Blackfin Processor Anomaly List | 15 | * - Revision G, 08/25/2009; ADSP-BF527 Blackfin Processor Anomaly List |
| 12 | */ | 16 | */ |
| 13 | 17 | ||
| 14 | #ifndef _MACH_ANOMALY_H_ | 18 | #ifndef _MACH_ANOMALY_H_ |
| @@ -200,6 +204,10 @@ | |||
| 200 | #define ANOMALY_05000467 (1) | 204 | #define ANOMALY_05000467 (1) |
| 201 | /* PLL Latches Incorrect Settings During Reset */ | 205 | /* PLL Latches Incorrect Settings During Reset */ |
| 202 | #define ANOMALY_05000469 (1) | 206 | #define ANOMALY_05000469 (1) |
| 207 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 208 | #define ANOMALY_05000473 (1) | ||
| 209 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 210 | #define ANOMALY_05000477 (1) | ||
| 203 | 211 | ||
| 204 | /* Anomalies that don't exist on this proc */ | 212 | /* Anomalies that don't exist on this proc */ |
| 205 | #define ANOMALY_05000099 (0) | 213 | #define ANOMALY_05000099 (0) |
| @@ -250,5 +258,7 @@ | |||
| 250 | #define ANOMALY_05000412 (0) | 258 | #define ANOMALY_05000412 (0) |
| 251 | #define ANOMALY_05000447 (0) | 259 | #define ANOMALY_05000447 (0) |
| 252 | #define ANOMALY_05000448 (0) | 260 | #define ANOMALY_05000448 (0) |
| 261 | #define ANOMALY_05000474 (0) | ||
| 262 | #define ANOMALY_05000475 (0) | ||
| 253 | 263 | ||
| 254 | #endif | 264 | #endif |
diff --git a/arch/blackfin/mach-bf533/include/mach/anomaly.h b/arch/blackfin/mach-bf533/include/mach/anomaly.h index cd83db2fb1a1..9b3f7a27714d 100644 --- a/arch/blackfin/mach-bf533/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf533/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf533/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -202,6 +206,10 @@ | |||
| 202 | #define ANOMALY_05000443 (1) | 206 | #define ANOMALY_05000443 (1) |
| 203 | /* False Hardware Error when RETI Points to Invalid Memory */ | 207 | /* False Hardware Error when RETI Points to Invalid Memory */ |
| 204 | #define ANOMALY_05000461 (1) | 208 | #define ANOMALY_05000461 (1) |
| 209 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 210 | #define ANOMALY_05000473 (1) | ||
| 211 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 212 | #define ANOMALY_05000477 (1) | ||
| 205 | 213 | ||
| 206 | /* These anomalies have been "phased" out of analog.com anomaly sheets and are | 214 | /* These anomalies have been "phased" out of analog.com anomaly sheets and are |
| 207 | * here to show running on older silicon just isn't feasible. | 215 | * here to show running on older silicon just isn't feasible. |
| @@ -349,5 +357,7 @@ | |||
| 349 | #define ANOMALY_05000450 (0) | 357 | #define ANOMALY_05000450 (0) |
| 350 | #define ANOMALY_05000465 (0) | 358 | #define ANOMALY_05000465 (0) |
| 351 | #define ANOMALY_05000467 (0) | 359 | #define ANOMALY_05000467 (0) |
| 360 | #define ANOMALY_05000474 (0) | ||
| 361 | #define ANOMALY_05000475 (0) | ||
| 352 | 362 | ||
| 353 | #endif | 363 | #endif |
diff --git a/arch/blackfin/mach-bf537/include/mach/anomaly.h b/arch/blackfin/mach-bf537/include/mach/anomaly.h index f091ad2d8ea8..d2c427bc6656 100644 --- a/arch/blackfin/mach-bf537/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf537/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf537/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -156,6 +160,10 @@ | |||
| 156 | #define ANOMALY_05000443 (1) | 160 | #define ANOMALY_05000443 (1) |
| 157 | /* False Hardware Error when RETI Points to Invalid Memory */ | 161 | /* False Hardware Error when RETI Points to Invalid Memory */ |
| 158 | #define ANOMALY_05000461 (1) | 162 | #define ANOMALY_05000461 (1) |
| 163 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 164 | #define ANOMALY_05000473 (1) | ||
| 165 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 166 | #define ANOMALY_05000477 (1) | ||
| 159 | 167 | ||
| 160 | /* Anomalies that don't exist on this proc */ | 168 | /* Anomalies that don't exist on this proc */ |
| 161 | #define ANOMALY_05000099 (0) | 169 | #define ANOMALY_05000099 (0) |
| @@ -202,5 +210,7 @@ | |||
| 202 | #define ANOMALY_05000450 (0) | 210 | #define ANOMALY_05000450 (0) |
| 203 | #define ANOMALY_05000465 (0) | 211 | #define ANOMALY_05000465 (0) |
| 204 | #define ANOMALY_05000467 (0) | 212 | #define ANOMALY_05000467 (0) |
| 213 | #define ANOMALY_05000474 (0) | ||
| 214 | #define ANOMALY_05000475 (0) | ||
| 205 | 215 | ||
| 206 | #endif | 216 | #endif |
diff --git a/arch/blackfin/mach-bf538/include/mach/anomaly.h b/arch/blackfin/mach-bf538/include/mach/anomaly.h index 26b76083e14c..d882b7e6f59b 100644 --- a/arch/blackfin/mach-bf538/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf538/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf538/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -128,6 +132,10 @@ | |||
| 128 | #define ANOMALY_05000443 (1) | 132 | #define ANOMALY_05000443 (1) |
| 129 | /* False Hardware Error when RETI Points to Invalid Memory */ | 133 | /* False Hardware Error when RETI Points to Invalid Memory */ |
| 130 | #define ANOMALY_05000461 (1) | 134 | #define ANOMALY_05000461 (1) |
| 135 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 136 | #define ANOMALY_05000473 (1) | ||
| 137 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 138 | #define ANOMALY_05000477 (1) | ||
| 131 | 139 | ||
| 132 | /* Anomalies that don't exist on this proc */ | 140 | /* Anomalies that don't exist on this proc */ |
| 133 | #define ANOMALY_05000099 (0) | 141 | #define ANOMALY_05000099 (0) |
| @@ -176,5 +184,7 @@ | |||
| 176 | #define ANOMALY_05000450 (0) | 184 | #define ANOMALY_05000450 (0) |
| 177 | #define ANOMALY_05000465 (0) | 185 | #define ANOMALY_05000465 (0) |
| 178 | #define ANOMALY_05000467 (0) | 186 | #define ANOMALY_05000467 (0) |
| 187 | #define ANOMALY_05000474 (0) | ||
| 188 | #define ANOMALY_05000475 (0) | ||
| 179 | 189 | ||
| 180 | #endif | 190 | #endif |
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h index 52b116ae522a..7d08c7524498 100644 --- a/arch/blackfin/mach-bf548/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf548/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -24,6 +28,8 @@ | |||
| 24 | #define ANOMALY_05000119 (1) | 28 | #define ANOMALY_05000119 (1) |
| 25 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ | 29 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ |
| 26 | #define ANOMALY_05000122 (1) | 30 | #define ANOMALY_05000122 (1) |
| 31 | /* Data Corruption with Cached External Memory and Non-Cached On-Chip L2 Memory */ | ||
| 32 | #define ANOMALY_05000220 (1) | ||
| 27 | /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ | 33 | /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ |
| 28 | #define ANOMALY_05000245 (1) | 34 | #define ANOMALY_05000245 (1) |
| 29 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | 35 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ |
| @@ -200,6 +206,14 @@ | |||
| 200 | #define ANOMALY_05000466 (1) | 206 | #define ANOMALY_05000466 (1) |
| 201 | /* Possible RX data corruption when control & data EP FIFOs are accessed via the core */ | 207 | /* Possible RX data corruption when control & data EP FIFOs are accessed via the core */ |
| 202 | #define ANOMALY_05000467 (1) | 208 | #define ANOMALY_05000467 (1) |
| 209 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 210 | #define ANOMALY_05000473 (1) | ||
| 211 | /* Access to DDR-SDRAM causes system hang under certain PLL/VR settings */ | ||
| 212 | #define ANOMALY_05000474 (1) | ||
| 213 | /* Core Hang With L2/L3 Configured in Writeback Cache Mode */ | ||
| 214 | #define ANOMALY_05000475 (1) | ||
| 215 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 216 | #define ANOMALY_05000477 (1) | ||
| 203 | 217 | ||
| 204 | /* Anomalies that don't exist on this proc */ | 218 | /* Anomalies that don't exist on this proc */ |
| 205 | #define ANOMALY_05000099 (0) | 219 | #define ANOMALY_05000099 (0) |
| @@ -215,7 +229,6 @@ | |||
| 215 | #define ANOMALY_05000198 (0) | 229 | #define ANOMALY_05000198 (0) |
| 216 | #define ANOMALY_05000202 (0) | 230 | #define ANOMALY_05000202 (0) |
| 217 | #define ANOMALY_05000215 (0) | 231 | #define ANOMALY_05000215 (0) |
| 218 | #define ANOMALY_05000220 (0) | ||
| 219 | #define ANOMALY_05000227 (0) | 232 | #define ANOMALY_05000227 (0) |
| 220 | #define ANOMALY_05000230 (0) | 233 | #define ANOMALY_05000230 (0) |
| 221 | #define ANOMALY_05000231 (0) | 234 | #define ANOMALY_05000231 (0) |
diff --git a/arch/blackfin/mach-bf561/atomic.S b/arch/blackfin/mach-bf561/atomic.S index 0261a5e751b3..f99f174b129f 100644 --- a/arch/blackfin/mach-bf561/atomic.S +++ b/arch/blackfin/mach-bf561/atomic.S | |||
| @@ -19,6 +19,16 @@ | |||
| 19 | \reg\().h = _corelock; | 19 | \reg\().h = _corelock; |
| 20 | .endm | 20 | .endm |
| 21 | 21 | ||
| 22 | .macro safe_testset addr:req, scratch:req | ||
| 23 | #if ANOMALY_05000477 | ||
| 24 | cli \scratch; | ||
| 25 | testset (\addr); | ||
| 26 | sti \scratch; | ||
| 27 | #else | ||
| 28 | testset (\addr); | ||
| 29 | #endif | ||
| 30 | .endm | ||
| 31 | |||
| 22 | /* | 32 | /* |
| 23 | * r0 = address of atomic data to flush and invalidate (32bit). | 33 | * r0 = address of atomic data to flush and invalidate (32bit). |
| 24 | * | 34 | * |
| @@ -33,7 +43,7 @@ ENTRY(_get_core_lock) | |||
| 33 | cli r0; | 43 | cli r0; |
| 34 | coreslot_loadaddr p0; | 44 | coreslot_loadaddr p0; |
| 35 | .Lretry_corelock: | 45 | .Lretry_corelock: |
| 36 | testset (p0); | 46 | safe_testset p0, r2; |
| 37 | if cc jump .Ldone_corelock; | 47 | if cc jump .Ldone_corelock; |
| 38 | SSYNC(r2); | 48 | SSYNC(r2); |
| 39 | jump .Lretry_corelock | 49 | jump .Lretry_corelock |
| @@ -56,7 +66,7 @@ ENTRY(_get_core_lock_noflush) | |||
| 56 | cli r0; | 66 | cli r0; |
| 57 | coreslot_loadaddr p0; | 67 | coreslot_loadaddr p0; |
| 58 | .Lretry_corelock_noflush: | 68 | .Lretry_corelock_noflush: |
| 59 | testset (p0); | 69 | safe_testset p0, r2; |
| 60 | if cc jump .Ldone_corelock_noflush; | 70 | if cc jump .Ldone_corelock_noflush; |
| 61 | SSYNC(r2); | 71 | SSYNC(r2); |
| 62 | jump .Lretry_corelock_noflush | 72 | jump .Lretry_corelock_noflush |
diff --git a/arch/blackfin/mach-bf561/include/mach/anomaly.h b/arch/blackfin/mach-bf561/include/mach/anomaly.h index 70da495c9665..5ddc981e9937 100644 --- a/arch/blackfin/mach-bf561/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf561/include/mach/anomaly.h | |||
| @@ -1,9 +1,13 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * File: include/asm-blackfin/mach-bf561/anomaly.h | 2 | * DO NOT EDIT THIS FILE |
| 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * This file is under version control at |
| 4 | * svn://sources.blackfin.uclinux.org/toolchain/trunk/proc-defs/header-frags/ | ||
| 5 | * and can be replaced with that version at any time | ||
| 6 | * DO NOT EDIT THIS FILE | ||
| 4 | * | 7 | * |
| 5 | * Copyright (C) 2004-2009 Analog Devices Inc. | 8 | * Copyright 2004-2009 Analog Devices Inc. |
| 6 | * Licensed under the GPL-2 or later. | 9 | * Licensed under the ADI BSD license. |
| 10 | * https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd | ||
| 7 | */ | 11 | */ |
| 8 | 12 | ||
| 9 | /* This file should be up to date with: | 13 | /* This file should be up to date with: |
| @@ -213,7 +217,11 @@ | |||
| 213 | /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ | 217 | /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ |
| 214 | #define ANOMALY_05000278 (__SILICON_REVISION__ < 5) | 218 | #define ANOMALY_05000278 (__SILICON_REVISION__ < 5) |
| 215 | /* False Hardware Error Exception when ISR Context Is Not Restored */ | 219 | /* False Hardware Error Exception when ISR Context Is Not Restored */ |
| 216 | #define ANOMALY_05000281 (__SILICON_REVISION__ < 5) | 220 | /* Temporarily walk around for bug 5423 till this issue is confirmed by |
| 221 | * official anomaly document. It looks 05000281 still exists on bf561 | ||
| 222 | * v0.5. | ||
| 223 | */ | ||
| 224 | #define ANOMALY_05000281 (__SILICON_REVISION__ <= 5) | ||
| 217 | /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ | 225 | /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ |
| 218 | #define ANOMALY_05000283 (1) | 226 | #define ANOMALY_05000283 (1) |
| 219 | /* Reads Will Receive Incorrect Data under Certain Conditions */ | 227 | /* Reads Will Receive Incorrect Data under Certain Conditions */ |
| @@ -280,6 +288,12 @@ | |||
| 280 | #define ANOMALY_05000443 (1) | 288 | #define ANOMALY_05000443 (1) |
| 281 | /* False Hardware Error when RETI Points to Invalid Memory */ | 289 | /* False Hardware Error when RETI Points to Invalid Memory */ |
| 282 | #define ANOMALY_05000461 (1) | 290 | #define ANOMALY_05000461 (1) |
| 291 | /* Interrupted 32-Bit SPORT Data Register Access Results In Underflow */ | ||
| 292 | #define ANOMALY_05000473 (1) | ||
| 293 | /* Core Hang With L2/L3 Configured in Writeback Cache Mode */ | ||
| 294 | #define ANOMALY_05000475 (__SILICON_REVISION__ < 4) | ||
| 295 | /* TESTSET Instruction Cannot Be Interrupted */ | ||
| 296 | #define ANOMALY_05000477 (1) | ||
| 283 | 297 | ||
| 284 | /* Anomalies that don't exist on this proc */ | 298 | /* Anomalies that don't exist on this proc */ |
| 285 | #define ANOMALY_05000119 (0) | 299 | #define ANOMALY_05000119 (0) |
| @@ -304,5 +318,6 @@ | |||
| 304 | #define ANOMALY_05000450 (0) | 318 | #define ANOMALY_05000450 (0) |
| 305 | #define ANOMALY_05000465 (0) | 319 | #define ANOMALY_05000465 (0) |
| 306 | #define ANOMALY_05000467 (0) | 320 | #define ANOMALY_05000467 (0) |
| 321 | #define ANOMALY_05000474 (0) | ||
| 307 | 322 | ||
| 308 | #endif | 323 | #endif |
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c index 9dbafcdcf479..f2ca211a76a0 100644 --- a/arch/blackfin/mach-common/arch_checks.c +++ b/arch/blackfin/mach-common/arch_checks.c | |||
| @@ -57,3 +57,8 @@ | |||
| 57 | (!defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) && defined(CONFIG_BFIN_L2_WRITEBACK))) | 57 | (!defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) && defined(CONFIG_BFIN_L2_WRITEBACK))) |
| 58 | # error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. | 58 | # error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. |
| 59 | #endif | 59 | #endif |
| 60 | |||
| 61 | #if ANOMALY_05000475 && \ | ||
| 62 | (defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK)) | ||
| 63 | # error "Anomaly 475 does not allow you to use Write Back cache with L2 or External Memory" | ||
| 64 | #endif | ||
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c index d98585f3237d..d92b168c8328 100644 --- a/arch/blackfin/mach-common/smp.c +++ b/arch/blackfin/mach-common/smp.c | |||
| @@ -276,10 +276,9 @@ void smp_send_reschedule(int cpu) | |||
| 276 | if (cpu_is_offline(cpu)) | 276 | if (cpu_is_offline(cpu)) |
| 277 | return; | 277 | return; |
| 278 | 278 | ||
| 279 | msg = kmalloc(sizeof(*msg), GFP_ATOMIC); | 279 | msg = kzalloc(sizeof(*msg), GFP_ATOMIC); |
| 280 | if (!msg) | 280 | if (!msg) |
| 281 | return; | 281 | return; |
| 282 | memset(msg, 0, sizeof(msg)); | ||
| 283 | INIT_LIST_HEAD(&msg->list); | 282 | INIT_LIST_HEAD(&msg->list); |
| 284 | msg->type = BFIN_IPI_RESCHEDULE; | 283 | msg->type = BFIN_IPI_RESCHEDULE; |
| 285 | 284 | ||
| @@ -305,10 +304,9 @@ void smp_send_stop(void) | |||
| 305 | if (cpus_empty(callmap)) | 304 | if (cpus_empty(callmap)) |
| 306 | return; | 305 | return; |
| 307 | 306 | ||
| 308 | msg = kmalloc(sizeof(*msg), GFP_ATOMIC); | 307 | msg = kzalloc(sizeof(*msg), GFP_ATOMIC); |
| 309 | if (!msg) | 308 | if (!msg) |
| 310 | return; | 309 | return; |
| 311 | memset(msg, 0, sizeof(msg)); | ||
| 312 | INIT_LIST_HEAD(&msg->list); | 310 | INIT_LIST_HEAD(&msg->list); |
| 313 | msg->type = BFIN_IPI_CPU_STOP; | 311 | msg->type = BFIN_IPI_CPU_STOP; |
| 314 | 312 | ||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 1aad0d9f5074..fd7620f025fa 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -358,7 +358,14 @@ config SGI_IP22 | |||
| 358 | select SWAP_IO_SPACE | 358 | select SWAP_IO_SPACE |
| 359 | select SYS_HAS_CPU_R4X00 | 359 | select SYS_HAS_CPU_R4X00 |
| 360 | select SYS_HAS_CPU_R5000 | 360 | select SYS_HAS_CPU_R5000 |
| 361 | select SYS_HAS_EARLY_PRINTK | 361 | # |
| 362 | # Disable EARLY_PRINTK for now since it leads to overwritten prom | ||
| 363 | # memory during early boot on some machines. | ||
| 364 | # | ||
| 365 | # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com | ||
| 366 | # for a more details discussion | ||
| 367 | # | ||
| 368 | # select SYS_HAS_EARLY_PRINTK | ||
| 362 | select SYS_SUPPORTS_32BIT_KERNEL | 369 | select SYS_SUPPORTS_32BIT_KERNEL |
| 363 | select SYS_SUPPORTS_64BIT_KERNEL | 370 | select SYS_SUPPORTS_64BIT_KERNEL |
| 364 | select SYS_SUPPORTS_BIG_ENDIAN | 371 | select SYS_SUPPORTS_BIG_ENDIAN |
| @@ -410,7 +417,14 @@ config SGI_IP28 | |||
| 410 | select SGI_HAS_ZILOG | 417 | select SGI_HAS_ZILOG |
| 411 | select SWAP_IO_SPACE | 418 | select SWAP_IO_SPACE |
| 412 | select SYS_HAS_CPU_R10000 | 419 | select SYS_HAS_CPU_R10000 |
| 413 | select SYS_HAS_EARLY_PRINTK | 420 | # |
| 421 | # Disable EARLY_PRINTK for now since it leads to overwritten prom | ||
| 422 | # memory during early boot on some machines. | ||
| 423 | # | ||
| 424 | # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com | ||
| 425 | # for a more details discussion | ||
| 426 | # | ||
| 427 | # select SYS_HAS_EARLY_PRINTK | ||
| 414 | select SYS_SUPPORTS_64BIT_KERNEL | 428 | select SYS_SUPPORTS_64BIT_KERNEL |
| 415 | select SYS_SUPPORTS_BIG_ENDIAN | 429 | select SYS_SUPPORTS_BIG_ENDIAN |
| 416 | help | 430 | help |
| @@ -1439,6 +1453,7 @@ choice | |||
| 1439 | 1453 | ||
| 1440 | config PAGE_SIZE_4KB | 1454 | config PAGE_SIZE_4KB |
| 1441 | bool "4kB" | 1455 | bool "4kB" |
| 1456 | depends on !CPU_LOONGSON2 | ||
| 1442 | help | 1457 | help |
| 1443 | This option select the standard 4kB Linux page size. On some | 1458 | This option select the standard 4kB Linux page size. On some |
| 1444 | R3000-family processors this is the only available page size. Using | 1459 | R3000-family processors this is the only available page size. Using |
| @@ -1763,7 +1778,7 @@ config SYS_SUPPORTS_SMARTMIPS | |||
| 1763 | 1778 | ||
| 1764 | config ARCH_FLATMEM_ENABLE | 1779 | config ARCH_FLATMEM_ENABLE |
| 1765 | def_bool y | 1780 | def_bool y |
| 1766 | depends on !NUMA | 1781 | depends on !NUMA && !CPU_LOONGSON2 |
| 1767 | 1782 | ||
| 1768 | config ARCH_DISCONTIGMEM_ENABLE | 1783 | config ARCH_DISCONTIGMEM_ENABLE |
| 1769 | bool | 1784 | bool |
diff --git a/arch/mips/include/asm/mman.h b/arch/mips/include/asm/mman.h index a2250f390a29..c892bfb3e2c1 100644 --- a/arch/mips/include/asm/mman.h +++ b/arch/mips/include/asm/mman.h | |||
| @@ -75,6 +75,7 @@ | |||
| 75 | 75 | ||
| 76 | #define MADV_MERGEABLE 12 /* KSM may merge identical pages */ | 76 | #define MADV_MERGEABLE 12 /* KSM may merge identical pages */ |
| 77 | #define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */ | 77 | #define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */ |
| 78 | #define MADV_HWPOISON 100 /* poison a page for testing */ | ||
| 78 | 79 | ||
| 79 | /* compatibility flags */ | 80 | /* compatibility flags */ |
| 80 | #define MAP_FILE 0 | 81 | #define MAP_FILE 0 |
diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h index fcf5f98d90cc..83b5509e09e8 100644 --- a/arch/mips/include/asm/system.h +++ b/arch/mips/include/asm/system.h | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #ifndef _ASM_SYSTEM_H | 12 | #ifndef _ASM_SYSTEM_H |
| 13 | #define _ASM_SYSTEM_H | 13 | #define _ASM_SYSTEM_H |
| 14 | 14 | ||
| 15 | #include <linux/kernel.h> | ||
| 15 | #include <linux/types.h> | 16 | #include <linux/types.h> |
| 16 | #include <linux/irqflags.h> | 17 | #include <linux/irqflags.h> |
| 17 | 18 | ||
| @@ -193,10 +194,6 @@ extern __u64 __xchg_u64_unsupported_on_32bit_kernels(volatile __u64 * m, __u64 v | |||
| 193 | #define __xchg_u64 __xchg_u64_unsupported_on_32bit_kernels | 194 | #define __xchg_u64 __xchg_u64_unsupported_on_32bit_kernels |
| 194 | #endif | 195 | #endif |
| 195 | 196 | ||
| 196 | /* This function doesn't exist, so you'll get a linker error | ||
| 197 | if something tries to do an invalid xchg(). */ | ||
| 198 | extern void __xchg_called_with_bad_pointer(void); | ||
| 199 | |||
| 200 | static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size) | 197 | static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size) |
| 201 | { | 198 | { |
| 202 | switch (size) { | 199 | switch (size) { |
| @@ -205,11 +202,17 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
| 205 | case 8: | 202 | case 8: |
| 206 | return __xchg_u64(ptr, x); | 203 | return __xchg_u64(ptr, x); |
| 207 | } | 204 | } |
| 208 | __xchg_called_with_bad_pointer(); | 205 | |
| 209 | return x; | 206 | return x; |
| 210 | } | 207 | } |
| 211 | 208 | ||
| 212 | #define xchg(ptr, x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr)))) | 209 | #define xchg(ptr, x) \ |
| 210 | ({ \ | ||
| 211 | BUILD_BUG_ON(sizeof(*(ptr)) & ~0xc); \ | ||
| 212 | \ | ||
| 213 | ((__typeof__(*(ptr))) \ | ||
| 214 | __xchg((unsigned long)(x), (ptr), sizeof(*(ptr)))); \ | ||
| 215 | }) | ||
| 213 | 216 | ||
| 214 | extern void set_handler(unsigned long offset, void *addr, unsigned long len); | 217 | extern void set_handler(unsigned long offset, void *addr, unsigned long len); |
| 215 | extern void set_uncached_handler(unsigned long offset, void *addr, unsigned long len); | 218 | extern void set_uncached_handler(unsigned long offset, void *addr, unsigned long len); |
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index 69dad5a850a8..a36799e85693 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | #define dbg(x...) | 28 | #define dbg(x...) |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | #define KERNEL_START (KERNEL_BINARY_TEXT_START - 0x1000) | 31 | #define KERNEL_START (KERNEL_BINARY_TEXT_START) |
| 32 | 32 | ||
| 33 | extern struct unwind_table_entry __start___unwind[]; | 33 | extern struct unwind_table_entry __start___unwind[]; |
| 34 | extern struct unwind_table_entry __stop___unwind[]; | 34 | extern struct unwind_table_entry __stop___unwind[]; |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index fda4baa059b5..9dab4a4e09f7 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
| @@ -78,9 +78,6 @@ SECTIONS | |||
| 78 | */ | 78 | */ |
| 79 | . = ALIGN(PAGE_SIZE); | 79 | . = ALIGN(PAGE_SIZE); |
| 80 | data_start = .; | 80 | data_start = .; |
| 81 | EXCEPTION_TABLE(16) | ||
| 82 | |||
| 83 | NOTES | ||
| 84 | 81 | ||
| 85 | /* unwind info */ | 82 | /* unwind info */ |
| 86 | .PARISC.unwind : { | 83 | .PARISC.unwind : { |
| @@ -89,6 +86,9 @@ SECTIONS | |||
| 89 | __stop___unwind = .; | 86 | __stop___unwind = .; |
| 90 | } | 87 | } |
| 91 | 88 | ||
| 89 | EXCEPTION_TABLE(16) | ||
| 90 | NOTES | ||
| 91 | |||
| 92 | /* Data */ | 92 | /* Data */ |
| 93 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) | 93 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) |
| 94 | 94 | ||
diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h index b6bac6f61c16..916369575c97 100644 --- a/arch/powerpc/include/asm/kmap_types.h +++ b/arch/powerpc/include/asm/kmap_types.h | |||
| @@ -29,5 +29,16 @@ enum km_type { | |||
| 29 | KM_TYPE_NR | 29 | KM_TYPE_NR |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | /* | ||
| 33 | * This is a temporary build fix that (so they say on lkml....) should no longer | ||
| 34 | * be required after 2.6.33, because of changes planned to the kmap code. | ||
| 35 | * Let's try to remove this cruft then. | ||
| 36 | */ | ||
| 37 | #ifdef CONFIG_DEBUG_HIGHMEM | ||
| 38 | #define KM_NMI (-1) | ||
| 39 | #define KM_NMI_PTE (-1) | ||
| 40 | #define KM_IRQ_PTE (-1) | ||
| 41 | #endif | ||
| 42 | |||
| 32 | #endif /* __KERNEL__ */ | 43 | #endif /* __KERNEL__ */ |
| 33 | #endif /* _ASM_POWERPC_KMAP_TYPES_H */ | 44 | #endif /* _ASM_POWERPC_KMAP_TYPES_H */ |
diff --git a/arch/sparc/mm/init_64.h b/arch/sparc/mm/init_64.h index c2f772dbd556..77d1b313e344 100644 --- a/arch/sparc/mm/init_64.h +++ b/arch/sparc/mm/init_64.h | |||
| @@ -45,7 +45,7 @@ extern void free_initmem(void); | |||
| 45 | #define VMEMMAP_ALIGN(x) (((x)+VMEMMAP_CHUNK-1UL)&VMEMMAP_CHUNK_MASK) | 45 | #define VMEMMAP_ALIGN(x) (((x)+VMEMMAP_CHUNK-1UL)&VMEMMAP_CHUNK_MASK) |
| 46 | 46 | ||
| 47 | #define VMEMMAP_SIZE ((((1UL << MAX_PHYSADDR_BITS) >> PAGE_SHIFT) * \ | 47 | #define VMEMMAP_SIZE ((((1UL << MAX_PHYSADDR_BITS) >> PAGE_SHIFT) * \ |
| 48 | sizeof(struct page *)) >> VMEMMAP_CHUNK_SHIFT) | 48 | sizeof(struct page)) >> VMEMMAP_CHUNK_SHIFT) |
| 49 | extern unsigned long vmemmap_table[VMEMMAP_SIZE]; | 49 | extern unsigned long vmemmap_table[VMEMMAP_SIZE]; |
| 50 | #endif | 50 | #endif |
| 51 | 51 | ||
diff --git a/arch/x86/kernel/acpi/processor.c b/arch/x86/kernel/acpi/processor.c index d296f4a195c9..d85d1b2432ba 100644 --- a/arch/x86/kernel/acpi/processor.c +++ b/arch/x86/kernel/acpi/processor.c | |||
| @@ -79,7 +79,8 @@ void arch_acpi_processor_init_pdc(struct acpi_processor *pr) | |||
| 79 | struct cpuinfo_x86 *c = &cpu_data(pr->id); | 79 | struct cpuinfo_x86 *c = &cpu_data(pr->id); |
| 80 | 80 | ||
| 81 | pr->pdc = NULL; | 81 | pr->pdc = NULL; |
| 82 | if (c->x86_vendor == X86_VENDOR_INTEL) | 82 | if (c->x86_vendor == X86_VENDOR_INTEL || |
| 83 | c->x86_vendor == X86_VENDOR_CENTAUR) | ||
| 83 | init_intel_pdc(pr, c); | 84 | init_intel_pdc(pr, c); |
| 84 | 85 | ||
| 85 | return; | 86 | return; |
