Commit 5a8b93fc authored by Ben Dooks's avatar Ben Dooks

ARM: kdgb: use <asm/opcodes.h> for data to be assembled as intruction

The arch_kgdb_breakpoint() function uses an inline assembly directive
to assemble a specific instruction using .word. This means the linker
will not treat is as an instruction, and therefore incorrectly swap
the endian-ness if running BE8.

As noted, this code means that kgdb is really only usable on arm32
kernels, and should be made dependant on not being a thumb2 kernel
until fixed. However this is not something to be added to this patch.
Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: default avatarDave Martin <Dave.Martin@arm.com>
parent 63328070
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#define __ARM_KGDB_H__ #define __ARM_KGDB_H__
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <asm/opcodes.h>
/* /*
* GDB assumes that we're a user process being debugged, so * GDB assumes that we're a user process being debugged, so
...@@ -41,7 +42,7 @@ ...@@ -41,7 +42,7 @@
static inline void arch_kgdb_breakpoint(void) static inline void arch_kgdb_breakpoint(void)
{ {
asm(".word 0xe7ffdeff"); asm(__inst_arm(0xe7ffdeff));
} }
extern void kgdb_handle_bus_error(void); extern void kgdb_handle_bus_error(void);
......
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