diff options
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r-- | arch/blackfin/kernel/bfin_gpio.c | 2 | ||||
-rw-r--r-- | arch/blackfin/kernel/cplb-nompu/cplbinit.c | 9 | ||||
-rw-r--r-- | arch/blackfin/kernel/process.c | 7 | ||||
-rw-r--r-- | arch/blackfin/kernel/setup.c | 12 | ||||
-rw-r--r-- | arch/blackfin/kernel/traps.c | 11 |
5 files changed, 25 insertions, 16 deletions
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c index 6e08f425bb44..5c0800adb4dd 100644 --- a/arch/blackfin/kernel/bfin_gpio.c +++ b/arch/blackfin/kernel/bfin_gpio.c | |||
@@ -218,7 +218,7 @@ inline int check_gpio(unsigned gpio) | |||
218 | if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 | 218 | if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 |
219 | || gpio == GPIO_PH14 || gpio == GPIO_PH15 | 219 | || gpio == GPIO_PH14 || gpio == GPIO_PH15 |
220 | || gpio == GPIO_PJ14 || gpio == GPIO_PJ15 | 220 | || gpio == GPIO_PJ14 || gpio == GPIO_PJ15 |
221 | || gpio > MAX_BLACKFIN_GPIOS) | 221 | || gpio >= MAX_BLACKFIN_GPIOS) |
222 | return -EINVAL; | 222 | return -EINVAL; |
223 | return 0; | 223 | return 0; |
224 | } | 224 | } |
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c index 512f8c92ead5..2debc900e246 100644 --- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c | |||
@@ -188,10 +188,11 @@ static struct cplb_desc cplb_data[] = { | |||
188 | 188 | ||
189 | static u16 __init lock_kernel_check(u32 start, u32 end) | 189 | static u16 __init lock_kernel_check(u32 start, u32 end) |
190 | { | 190 | { |
191 | if ((end <= (u32) _end && end >= (u32)_stext) || | 191 | if (start >= (u32)_end || end <= (u32)_stext) |
192 | (start <= (u32) _end && start >= (u32)_stext)) | 192 | return 0; |
193 | return IN_KERNEL; | 193 | |
194 | return 0; | 194 | /* This cplb block overlapped with kernel area. */ |
195 | return IN_KERNEL; | ||
195 | } | 196 | } |
196 | 197 | ||
197 | static unsigned short __init | 198 | static unsigned short __init |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 77800dd83e57..0c3ea118b657 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
@@ -351,10 +351,15 @@ int _access_ok(unsigned long addr, unsigned long size) | |||
351 | return 1; | 351 | return 1; |
352 | #endif | 352 | #endif |
353 | #if L1_DATA_B_LENGTH != 0 | 353 | #if L1_DATA_B_LENGTH != 0 |
354 | if (addr >= L1_DATA_B_START | 354 | if (addr >= L1_DATA_B_START + (_ebss_b_l1 - _sdata_b_l1) |
355 | && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH) | 355 | && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH) |
356 | return 1; | 356 | return 1; |
357 | #endif | 357 | #endif |
358 | #if L2_LENGTH != 0 | ||
359 | if (addr >= L2_START + (_ebss_l2 - _stext_l2) | ||
360 | && addr + size <= L2_START + L2_LENGTH) | ||
361 | return 1; | ||
362 | #endif | ||
358 | return 0; | 363 | return 0; |
359 | } | 364 | } |
360 | EXPORT_SYMBOL(_access_ok); | 365 | EXPORT_SYMBOL(_access_ok); |
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 7f35d1046cd8..71a9a8c53cea 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -119,23 +119,23 @@ void __init bfin_relocate_l1_mem(void) | |||
119 | /* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */ | 119 | /* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */ |
120 | dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length); | 120 | dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length); |
121 | 121 | ||
122 | l1_data_a_length = _ebss_l1 - _sdata_l1; | 122 | l1_data_a_length = _sbss_l1 - _sdata_l1; |
123 | if (l1_data_a_length > L1_DATA_A_LENGTH) | 123 | if (l1_data_a_length > L1_DATA_A_LENGTH) |
124 | panic("L1 Data SRAM Bank A Overflow\n"); | 124 | panic("L1 Data SRAM Bank A Overflow\n"); |
125 | 125 | ||
126 | /* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */ | 126 | /* Copy _sdata_l1 to _sbss_l1 to L1 data bank A SRAM */ |
127 | dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); | 127 | dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); |
128 | 128 | ||
129 | l1_data_b_length = _ebss_b_l1 - _sdata_b_l1; | 129 | l1_data_b_length = _sbss_b_l1 - _sdata_b_l1; |
130 | if (l1_data_b_length > L1_DATA_B_LENGTH) | 130 | if (l1_data_b_length > L1_DATA_B_LENGTH) |
131 | panic("L1 Data SRAM Bank B Overflow\n"); | 131 | panic("L1 Data SRAM Bank B Overflow\n"); |
132 | 132 | ||
133 | /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ | 133 | /* Copy _sdata_b_l1 to _sbss_b_l1 to L1 data bank B SRAM */ |
134 | dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + | 134 | dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + |
135 | l1_data_a_length, l1_data_b_length); | 135 | l1_data_a_length, l1_data_b_length); |
136 | 136 | ||
137 | if (L2_LENGTH != 0) { | 137 | if (L2_LENGTH != 0) { |
138 | l2_length = _ebss_l2 - _stext_l2; | 138 | l2_length = _sbss_l2 - _stext_l2; |
139 | if (l2_length > L2_LENGTH) | 139 | if (l2_length > L2_LENGTH) |
140 | panic("L2 SRAM Overflow\n"); | 140 | panic("L2 SRAM Overflow\n"); |
141 | 141 | ||
@@ -827,7 +827,7 @@ void __init setup_arch(char **cmdline_p) | |||
827 | printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", | 827 | printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", |
828 | bfin_compiled_revid(), bfin_revid()); | 828 | bfin_compiled_revid(), bfin_revid()); |
829 | } | 829 | } |
830 | if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) | 830 | if (bfin_revid() < CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) |
831 | printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", | 831 | printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", |
832 | CPU, bfin_revid()); | 832 | CPU, bfin_revid()); |
833 | } | 833 | } |
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 1aa2c788e228..bef025b07443 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -59,7 +59,7 @@ | |||
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | 61 | ||
62 | #ifdef CONFIG_VERBOSE_DEBUG | 62 | #ifdef CONFIG_DEBUG_VERBOSE |
63 | #define verbose_printk(fmt, arg...) \ | 63 | #define verbose_printk(fmt, arg...) \ |
64 | printk(fmt, ##arg) | 64 | printk(fmt, ##arg) |
65 | #else | 65 | #else |
@@ -147,9 +147,12 @@ static void decode_address(char *buf, unsigned long address) | |||
147 | char *name = p->comm; | 147 | char *name = p->comm; |
148 | struct file *file = vma->vm_file; | 148 | struct file *file = vma->vm_file; |
149 | 149 | ||
150 | if (file) | 150 | if (file) { |
151 | name = d_path(&file->f_path, _tmpbuf, | 151 | char *d_name = d_path(&file->f_path, _tmpbuf, |
152 | sizeof(_tmpbuf)); | 152 | sizeof(_tmpbuf)); |
153 | if (!IS_ERR(d_name)) | ||
154 | name = d_name; | ||
155 | } | ||
153 | 156 | ||
154 | /* FLAT does not have its text aligned to the start of | 157 | /* FLAT does not have its text aligned to the start of |
155 | * the map while FDPIC ELF does ... | 158 | * the map while FDPIC ELF does ... |
@@ -571,7 +574,7 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
571 | #endif | 574 | #endif |
572 | panic("Kernel exception"); | 575 | panic("Kernel exception"); |
573 | } else { | 576 | } else { |
574 | #ifdef CONFIG_VERBOSE_DEBUG | 577 | #ifdef CONFIG_DEBUG_VERBOSE |
575 | unsigned long *stack; | 578 | unsigned long *stack; |
576 | /* Dump the user space stack */ | 579 | /* Dump the user space stack */ |
577 | stack = (unsigned long *)rdusp(); | 580 | stack = (unsigned long *)rdusp(); |