diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/kernel/calls.S | 6 | ||||
-rw-r--r-- | arch/arm/kernel/traps.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/coyote-setup.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/gtwx5715-setup.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/ixdp425-setup.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/s3c2410.c | 4 | ||||
-rw-r--r-- | arch/arm/mm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-v6.S | 2 | ||||
-rw-r--r-- | arch/arm/nwfpe/fpopcode.h | 6 | ||||
-rw-r--r-- | arch/arm/nwfpe/softfloat.c | 34 |
11 files changed, 28 insertions, 36 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7bc4a583f4e1..c65c6eb9810d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -310,7 +310,7 @@ menu "Kernel Features" | |||
310 | 310 | ||
311 | config SMP | 311 | config SMP |
312 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" | 312 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" |
313 | depends on EXPERIMENTAL #&& n | 313 | depends on EXPERIMENTAL && BROKEN #&& n |
314 | help | 314 | help |
315 | This enables support for systems with more than one CPU. If you have | 315 | This enables support for systems with more than one CPU. If you have |
316 | a system with only one CPU, like most personal computers, say N. If | 316 | a system with only one CPU, like most personal computers, say N. If |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index e5d370c235d7..2b6b4c786e65 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
@@ -327,6 +327,12 @@ __syscall_start: | |||
327 | /* 310 */ .long sys_request_key | 327 | /* 310 */ .long sys_request_key |
328 | .long sys_keyctl | 328 | .long sys_keyctl |
329 | .long sys_semtimedop | 329 | .long sys_semtimedop |
330 | /* vserver */ .long sys_ni_syscall | ||
331 | .long sys_ioprio_set | ||
332 | /* 315 */ .long sys_ioprio_get | ||
333 | .long sys_inotify_init | ||
334 | .long sys_inotify_add_watch | ||
335 | .long sys_inotify_rm_watch | ||
330 | __syscall_end: | 336 | __syscall_end: |
331 | 337 | ||
332 | .rept NR_syscalls - (__syscall_end - __syscall_start) / 4 | 338 | .rept NR_syscalls - (__syscall_end - __syscall_start) / 4 |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index d571c37ac30c..4554c961251c 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -617,7 +617,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs) | |||
617 | notify_die("unknown data abort code", regs, &info, instr, 0); | 617 | notify_die("unknown data abort code", regs, &info, instr, 0); |
618 | } | 618 | } |
619 | 619 | ||
620 | volatile void __bug(const char *file, int line, void *data) | 620 | void __attribute__((noreturn)) __bug(const char *file, int line, void *data) |
621 | { | 621 | { |
622 | printk(KERN_CRIT"kernel BUG at %s:%d!", file, line); | 622 | printk(KERN_CRIT"kernel BUG at %s:%d!", file, line); |
623 | if (data) | 623 | if (data) |
diff --git a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c index 7f58afb27e71..411ea9996190 100644 --- a/arch/arm/mach-ixp4xx/coyote-setup.c +++ b/arch/arm/mach-ixp4xx/coyote-setup.c | |||
@@ -36,7 +36,7 @@ static struct flash_platform_data coyote_flash_data = { | |||
36 | 36 | ||
37 | static struct resource coyote_flash_resource = { | 37 | static struct resource coyote_flash_resource = { |
38 | .start = COYOTE_FLASH_BASE, | 38 | .start = COYOTE_FLASH_BASE, |
39 | .end = COYOTE_FLASH_BASE + COYOTE_FLASH_SIZE, | 39 | .end = COYOTE_FLASH_BASE + COYOTE_FLASH_SIZE - 1, |
40 | .flags = IORESOURCE_MEM, | 40 | .flags = IORESOURCE_MEM, |
41 | }; | 41 | }; |
42 | 42 | ||
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c index 65e356bd10d6..333459d6aa46 100644 --- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c +++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c | |||
@@ -114,7 +114,7 @@ static struct flash_platform_data gtwx5715_flash_data = { | |||
114 | 114 | ||
115 | static struct resource gtwx5715_flash_resource = { | 115 | static struct resource gtwx5715_flash_resource = { |
116 | .start = GTWX5715_FLASH_BASE, | 116 | .start = GTWX5715_FLASH_BASE, |
117 | .end = GTWX5715_FLASH_BASE + GTWX5715_FLASH_SIZE, | 117 | .end = GTWX5715_FLASH_BASE + GTWX5715_FLASH_SIZE - 1, |
118 | .flags = IORESOURCE_MEM, | 118 | .flags = IORESOURCE_MEM, |
119 | }; | 119 | }; |
120 | 120 | ||
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 4633470a6a37..fa0646c8693b 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
@@ -36,7 +36,7 @@ static struct flash_platform_data ixdp425_flash_data = { | |||
36 | 36 | ||
37 | static struct resource ixdp425_flash_resource = { | 37 | static struct resource ixdp425_flash_resource = { |
38 | .start = IXDP425_FLASH_BASE, | 38 | .start = IXDP425_FLASH_BASE, |
39 | .end = IXDP425_FLASH_BASE + IXDP425_FLASH_SIZE, | 39 | .end = IXDP425_FLASH_BASE + IXDP425_FLASH_SIZE - 1, |
40 | .flags = IORESOURCE_MEM, | 40 | .flags = IORESOURCE_MEM, |
41 | }; | 41 | }; |
42 | 42 | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c index ff2f25409e44..0b88993dfd27 100644 --- a/arch/arm/mach-s3c2410/s3c2410.c +++ b/arch/arm/mach-s3c2410/s3c2410.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * 28-Sep-2004 BJD Updates for new serial port bits | 18 | * 28-Sep-2004 BJD Updates for new serial port bits |
19 | * 04-Nov-2004 BJD Updated UART configuration process | 19 | * 04-Nov-2004 BJD Updated UART configuration process |
20 | * 10-Jan-2005 BJD Removed s3c2410_clock_tick_rate | 20 | * 10-Jan-2005 BJD Removed s3c2410_clock_tick_rate |
21 | * 13-Aug-2005 DA Removed UART from initial I/O mappings | ||
21 | */ | 22 | */ |
22 | 23 | ||
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
@@ -49,10 +50,9 @@ static struct map_desc s3c2410_iodesc[] __initdata = { | |||
49 | IODESC_ENT(USBHOST), | 50 | IODESC_ENT(USBHOST), |
50 | IODESC_ENT(CLKPWR), | 51 | IODESC_ENT(CLKPWR), |
51 | IODESC_ENT(LCD), | 52 | IODESC_ENT(LCD), |
52 | IODESC_ENT(UART), | ||
53 | IODESC_ENT(TIMER), | 53 | IODESC_ENT(TIMER), |
54 | IODESC_ENT(ADC), | 54 | IODESC_ENT(ADC), |
55 | IODESC_ENT(WATCHDOG) | 55 | IODESC_ENT(WATCHDOG), |
56 | }; | 56 | }; |
57 | 57 | ||
58 | static struct resource s3c_uart0_resource[] = { | 58 | static struct resource s3c_uart0_resource[] = { |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index afbbeb6f4658..db5e47dfc303 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -384,7 +384,7 @@ config CPU_DCACHE_DISABLE | |||
384 | 384 | ||
385 | config CPU_DCACHE_WRITETHROUGH | 385 | config CPU_DCACHE_WRITETHROUGH |
386 | bool "Force write through D-cache" | 386 | bool "Force write through D-cache" |
387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DISABLE_DCACHE | 387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE |
388 | default y if CPU_ARM925T | 388 | default y if CPU_ARM925T |
389 | help | 389 | help |
390 | Say Y here to use the data cache in writethrough mode. Unless you | 390 | Say Y here to use the data cache in writethrough mode. Unless you |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 3429ddcf65d1..139a38670c5d 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -105,7 +105,7 @@ ENTRY(cpu_v6_dcache_clean_area) | |||
105 | ENTRY(cpu_v6_switch_mm) | 105 | ENTRY(cpu_v6_switch_mm) |
106 | mov r2, #0 | 106 | mov r2, #0 |
107 | ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id | 107 | ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id |
108 | mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB | 108 | mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB |
109 | mcr p15, 0, r2, c7, c10, 4 @ drain write buffer | 109 | mcr p15, 0, r2, c7, c10, 4 @ drain write buffer |
110 | mcr p15, 0, r0, c2, c0, 0 @ set TTB 0 | 110 | mcr p15, 0, r0, c2, c0, 0 @ set TTB 0 |
111 | mcr p15, 0, r1, c13, c0, 1 @ set context ID | 111 | mcr p15, 0, r1, c13, c0, 1 @ set context ID |
diff --git a/arch/arm/nwfpe/fpopcode.h b/arch/arm/nwfpe/fpopcode.h index 8035f4faafbf..1777e92a88e6 100644 --- a/arch/arm/nwfpe/fpopcode.h +++ b/arch/arm/nwfpe/fpopcode.h | |||
@@ -370,20 +370,20 @@ TABLE 5 | |||
370 | #define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5) | 370 | #define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5) |
371 | 371 | ||
372 | #ifdef CONFIG_FPE_NWFPE_XP | 372 | #ifdef CONFIG_FPE_NWFPE_XP |
373 | static inline const floatx80 getExtendedConstant(const unsigned int nIndex) | 373 | static inline __attribute_pure__ floatx80 getExtendedConstant(const unsigned int nIndex) |
374 | { | 374 | { |
375 | extern const floatx80 floatx80Constant[]; | 375 | extern const floatx80 floatx80Constant[]; |
376 | return floatx80Constant[nIndex]; | 376 | return floatx80Constant[nIndex]; |
377 | } | 377 | } |
378 | #endif | 378 | #endif |
379 | 379 | ||
380 | static inline const float64 getDoubleConstant(const unsigned int nIndex) | 380 | static inline __attribute_pure__ float64 getDoubleConstant(const unsigned int nIndex) |
381 | { | 381 | { |
382 | extern const float64 float64Constant[]; | 382 | extern const float64 float64Constant[]; |
383 | return float64Constant[nIndex]; | 383 | return float64Constant[nIndex]; |
384 | } | 384 | } |
385 | 385 | ||
386 | static inline const float32 getSingleConstant(const unsigned int nIndex) | 386 | static inline __attribute_pure__ float32 getSingleConstant(const unsigned int nIndex) |
387 | { | 387 | { |
388 | extern const float32 float32Constant[]; | 388 | extern const float32 float32Constant[]; |
389 | return float32Constant[nIndex]; | 389 | return float32Constant[nIndex]; |
diff --git a/arch/arm/nwfpe/softfloat.c b/arch/arm/nwfpe/softfloat.c index 8b75a6e7cb3a..f9f049132a17 100644 --- a/arch/arm/nwfpe/softfloat.c +++ b/arch/arm/nwfpe/softfloat.c | |||
@@ -1602,9 +1602,7 @@ flag float32_le_quiet( float32 a, float32 b ) | |||
1602 | if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) | 1602 | if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) |
1603 | || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) | 1603 | || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) |
1604 | ) { | 1604 | ) { |
1605 | if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { | 1605 | /* Do nothing, even if NaN as we're quiet */ |
1606 | float_raise( float_flag_invalid ); | ||
1607 | } | ||
1608 | return 0; | 1606 | return 0; |
1609 | } | 1607 | } |
1610 | aSign = extractFloat32Sign( a ); | 1608 | aSign = extractFloat32Sign( a ); |
@@ -1629,9 +1627,7 @@ flag float32_lt_quiet( float32 a, float32 b ) | |||
1629 | if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) | 1627 | if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) |
1630 | || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) | 1628 | || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) |
1631 | ) { | 1629 | ) { |
1632 | if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { | 1630 | /* Do nothing, even if NaN as we're quiet */ |
1633 | float_raise( float_flag_invalid ); | ||
1634 | } | ||
1635 | return 0; | 1631 | return 0; |
1636 | } | 1632 | } |
1637 | aSign = extractFloat32Sign( a ); | 1633 | aSign = extractFloat32Sign( a ); |
@@ -2493,9 +2489,7 @@ flag float64_le_quiet( float64 a, float64 b ) | |||
2493 | if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) | 2489 | if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) |
2494 | || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) | 2490 | || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) |
2495 | ) { | 2491 | ) { |
2496 | if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { | 2492 | /* Do nothing, even if NaN as we're quiet */ |
2497 | float_raise( float_flag_invalid ); | ||
2498 | } | ||
2499 | return 0; | 2493 | return 0; |
2500 | } | 2494 | } |
2501 | aSign = extractFloat64Sign( a ); | 2495 | aSign = extractFloat64Sign( a ); |
@@ -2520,9 +2514,7 @@ flag float64_lt_quiet( float64 a, float64 b ) | |||
2520 | if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) | 2514 | if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) |
2521 | || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) | 2515 | || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) |
2522 | ) { | 2516 | ) { |
2523 | if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { | 2517 | /* Do nothing, even if NaN as we're quiet */ |
2524 | float_raise( float_flag_invalid ); | ||
2525 | } | ||
2526 | return 0; | 2518 | return 0; |
2527 | } | 2519 | } |
2528 | aSign = extractFloat64Sign( a ); | 2520 | aSign = extractFloat64Sign( a ); |
@@ -3256,7 +3248,7 @@ flag floatx80_eq( floatx80 a, floatx80 b ) | |||
3256 | ) { | 3248 | ) { |
3257 | if ( floatx80_is_signaling_nan( a ) | 3249 | if ( floatx80_is_signaling_nan( a ) |
3258 | || floatx80_is_signaling_nan( b ) ) { | 3250 | || floatx80_is_signaling_nan( b ) ) { |
3259 | roundData->exception |= float_flag_invalid; | 3251 | float_raise( float_flag_invalid ); |
3260 | } | 3252 | } |
3261 | return 0; | 3253 | return 0; |
3262 | } | 3254 | } |
@@ -3286,7 +3278,7 @@ flag floatx80_le( floatx80 a, floatx80 b ) | |||
3286 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) | 3278 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) |
3287 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) | 3279 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) |
3288 | ) { | 3280 | ) { |
3289 | roundData->exception |= float_flag_invalid; | 3281 | float_raise( float_flag_invalid ); |
3290 | return 0; | 3282 | return 0; |
3291 | } | 3283 | } |
3292 | aSign = extractFloatx80Sign( a ); | 3284 | aSign = extractFloatx80Sign( a ); |
@@ -3320,7 +3312,7 @@ flag floatx80_lt( floatx80 a, floatx80 b ) | |||
3320 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) | 3312 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) |
3321 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) | 3313 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) |
3322 | ) { | 3314 | ) { |
3323 | roundData->exception |= float_flag_invalid; | 3315 | float_raise( float_flag_invalid ); |
3324 | return 0; | 3316 | return 0; |
3325 | } | 3317 | } |
3326 | aSign = extractFloatx80Sign( a ); | 3318 | aSign = extractFloatx80Sign( a ); |
@@ -3353,7 +3345,7 @@ flag floatx80_eq_signaling( floatx80 a, floatx80 b ) | |||
3353 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) | 3345 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) |
3354 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) | 3346 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) |
3355 | ) { | 3347 | ) { |
3356 | roundData->exception |= float_flag_invalid; | 3348 | float_raise( float_flag_invalid ); |
3357 | return 0; | 3349 | return 0; |
3358 | } | 3350 | } |
3359 | return | 3351 | return |
@@ -3382,10 +3374,7 @@ flag floatx80_le_quiet( floatx80 a, floatx80 b ) | |||
3382 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) | 3374 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) |
3383 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) | 3375 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) |
3384 | ) { | 3376 | ) { |
3385 | if ( floatx80_is_signaling_nan( a ) | 3377 | /* Do nothing, even if NaN as we're quiet */ |
3386 | || floatx80_is_signaling_nan( b ) ) { | ||
3387 | roundData->exception |= float_flag_invalid; | ||
3388 | } | ||
3389 | return 0; | 3378 | return 0; |
3390 | } | 3379 | } |
3391 | aSign = extractFloatx80Sign( a ); | 3380 | aSign = extractFloatx80Sign( a ); |
@@ -3419,10 +3408,7 @@ flag floatx80_lt_quiet( floatx80 a, floatx80 b ) | |||
3419 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) | 3408 | || ( ( extractFloatx80Exp( b ) == 0x7FFF ) |
3420 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) | 3409 | && (bits64) ( extractFloatx80Frac( b )<<1 ) ) |
3421 | ) { | 3410 | ) { |
3422 | if ( floatx80_is_signaling_nan( a ) | 3411 | /* Do nothing, even if NaN as we're quiet */ |
3423 | || floatx80_is_signaling_nan( b ) ) { | ||
3424 | roundData->exception |= float_flag_invalid; | ||
3425 | } | ||
3426 | return 0; | 3412 | return 0; |
3427 | } | 3413 | } |
3428 | aSign = extractFloatx80Sign( a ); | 3414 | aSign = extractFloatx80Sign( a ); |