diff options
Diffstat (limited to 'arch')
25 files changed, 289 insertions, 53 deletions
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/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; |