Commit 89c6c139 authored by Mike Frysinger's avatar Mike Frysinger Committed by Bryan Wu

Blackfin arch: fix off-by-one errors on end of memory range

Signed-off-by: default avatarMike Frysinger <vapier.adi@gmail.com>
Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
parent 09c1db92
...@@ -643,7 +643,7 @@ int kgdb_ebin2mem(char *buf, char *mem, int count) ...@@ -643,7 +643,7 @@ int kgdb_ebin2mem(char *buf, char *mem, int count)
return EFAULT; return EFAULT;
} }
} else if ((cpu == 0 && (unsigned int)mem >= L1_CODE_START && } else if ((cpu == 0 && (unsigned int)mem >= L1_CODE_START &&
(unsigned int)(mem + count) < L1_CODE_START + L1_CODE_LENGTH) (unsigned int)(mem + count) <= L1_CODE_START + L1_CODE_LENGTH)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
|| (cpu == 1 && (unsigned int)mem >= COREB_L1_CODE_START && || (cpu == 1 && (unsigned int)mem >= COREB_L1_CODE_START &&
(unsigned int)(mem + count) <= (unsigned int)(mem + count) <=
...@@ -758,11 +758,11 @@ int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) ...@@ -758,11 +758,11 @@ int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr)
if ((cpu == 0 && (unsigned int)addr >= L1_CODE_START if ((cpu == 0 && (unsigned int)addr >= L1_CODE_START
&& (unsigned int)(addr + BREAK_INSTR_SIZE) && (unsigned int)(addr + BREAK_INSTR_SIZE)
< L1_CODE_START + L1_CODE_LENGTH) <= L1_CODE_START + L1_CODE_LENGTH)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
|| (cpu == 1 && (unsigned int)addr >= COREB_L1_CODE_START || (cpu == 1 && (unsigned int)addr >= COREB_L1_CODE_START
&& (unsigned int)(addr + BREAK_INSTR_SIZE) && (unsigned int)(addr + BREAK_INSTR_SIZE)
< COREB_L1_CODE_START + L1_CODE_LENGTH) <= COREB_L1_CODE_START + L1_CODE_LENGTH)
#endif #endif
) { ) {
/* access L1 instruction SRAM */ /* access L1 instruction SRAM */
...@@ -789,7 +789,7 @@ int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) ...@@ -789,7 +789,7 @@ int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr)
int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle) int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle)
{ {
if ((unsigned int)addr >= L1_CODE_START && if ((unsigned int)addr >= L1_CODE_START &&
(unsigned int)(addr + BREAK_INSTR_SIZE) < (unsigned int)(addr + BREAK_INSTR_SIZE) <=
L1_CODE_START + L1_CODE_LENGTH) { L1_CODE_START + L1_CODE_LENGTH) {
/* access L1 instruction SRAM */ /* access L1 instruction SRAM */
if (dma_memcpy((void *)addr, bundle, BREAK_INSTR_SIZE) == NULL) if (dma_memcpy((void *)addr, bundle, BREAK_INSTR_SIZE) == NULL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment