[GIT PULL] ARM: kprobes: Add support for Thumb-2
Tixy
tixy at yxit.co.uk
Wed Jul 13 14:06:05 EDT 2011
Hi Russell
Please can you pull these for the next merge window?
These changes add Thumb-2 support to kprobes and have been reviewed and
Acked by Nicolas Pitre.
Thanks
--
Jon Medhurst (usually know as Tixy)
The following changes since commit 620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc:
Linux 3.0-rc7 (2011-07-11 16:51:52 -0700)
are available in the git repository at:
git://git.yxit.co.uk/linux kprobes-thumb
Jon Medhurst (75):
ARM: Thumb-2: Fix exception return sequence to restore stack correctly
ARM: Thumb-2: Support Thumb-2 in undefined instruction handler
ARM: kprobes: Rename kprobes-decode.c to kprobes-arm.c
ARM: kprobes: Split out internal parts of kprobes.h
ARM: kprobes: Add kprobes-common.c
ARM: kprobes: Move is_writeback define to header file.
ARM: kprobes: Move find_str_pc_offset into kprobes-common.c
ARM: kprobes: Make str_pc_offset a constant on ARMv7
ARM: kprobes: Make kprobes framework work on Thumb-2 kernels
ARM: kprobes: Add Thumb instruction decoding stubs
ARM: Kconfig: Allow kprobes on Thumb-2 kernels
ARM: kprobes: Add Thumb breakpoint support
ARM: kprobes: Add condition code checking to Thumb emulation
ARM: kprobes: Add it_advance()
ARM: kprobes: Don't trigger probes on conditional instructions when condition is false
ARM: kprobes: Use conditional breakpoints for ARM probes
ARM: kprobes: Add hooks to override singlestep()
ARM: kprobes: Extend arch_specific_insn to add pointer to emulated instruction
ARM: kprobes: Infrastructure for table driven decoding of CPU instructions
ARM: kprobes: Decode 16-bit Thumb hint instructions
ARM: ptrace: Add APSR_MASK definition to ptrace.h
ARM: kprobes: Decode 16-bit Thumb data-processing instructions
ARM: kprobes: Add bx_write_pc()
ARM: kprobes: Decode 16-bit Thumb BX and BLX instructions
ARM: kprobes: Decode 16-bit Thumb special data instructions
ARM: kprobes: Decode 16-bit Thumb load and store instructions
ARM: kprobes: Decode 16-bit Thumb PC- and SP-relative address instructions
ARM: kprobes: Decode 16-bit Thumb CBZ and bit manipulation instructions
ARM: kprobes: Decode 16-bit Thumb PUSH and POP instructions
ARM: kprobes: Decode 16-bit Thumb IT instruction
ARM: kprobes: Reject 16-bit Thumb SVC and UNDEFINED instructions
ARM: kprobes: Decode 16-bit Thumb branch instructions
ARM: kprobes: Reject 16-bit Thumb SETEND, CPS and BKPT instructions
ARM: kprobes: Decode 32-bit Thumb hint instructions
ARM: kprobes: Add load_write_pc()
ARM: kprobes: Add common decoding function for LDM and STM
ARM: kprobes: Optimise emulation of LDM and STM
ARM: kprobes: Decode 32-bit Thumb load/store multiple instructions
ARM: kprobes: Decode 32-bit Thumb load/store dual and load/store exclusive instructions
ARM: kprobes: Decode 32-bit Thumb table branch instructions
ARM: kprobes: Decode 32-bit Thumb data-processing (shifted register) instructions
ARM: kprobes: Decode 32-bit Thumb data-processing (modified immediate) instructions
ARM: kprobes: Decode 32-bit Thumb data-processing (plain binary immediate) instructions
ARM: kprobes: Decode 32-bit miscellaneous control instructions
ARM: kprobes: Decode 32-bit Thumb branch instructions
ARM: kprobes: Reject 32-bit Thumb coprocessor and SIMD instructions
ARM: kprobes: Decode 32-bit Thumb memory hint instructions
ARM: kprobes: Decode 32-bit Thumb load/store single data item instructions
ARM: kprobes: Decode 32-bit Thumb data-processing (register) instructions
ARM: kprobes: Decode 32-bit Thumb long multiply and divide instructions
ARM: kprobes: Decode 32-bit Thumb multiply and absolute difference instructions
ARM: kprobes: Migrate ARM space_1111 to decoding tables
ARM: kprobes: Add alu_write_pc()
ARM: kprobes: Add BLX macro
ARM: kprobes: Add emulate_rd12rn16rm0rs8_rwflags()
ARM: kprobes: Migrate ARM data-processing (register) instructions to decoding tables
ARM: kprobes: Add emulate_ldrdstrd()
ARM: kprobes: Migrate ARM LDRD and STRD to decoding tables
ARM: kprobes: Migrate ARM space_cccc_000x to decoding tables
ARM: kprobes: Migrate ARM space_cccc_001x to decoding tables
ARM: kprobes: Add emulate_rd12rn16rm0_rwflags_nopc()
ARM: kprobes: Migrate ARM space_cccc_0110__1 to decoding tables
ARM: kprobes: Migrate ARM space_cccc_0111__1 to decoding tables
ARM: kprobes: Migrate ARM space_cccc_01xx to decoding tables
ARM: kprobes: Migrate ARM space_cccc_100x to decoding tables
ARM: kprobes: Migrate remaining instruction decoding functions to tables
ARM: kprobes: Add emulate_rd16rn12rm0rs8_rwflags_nopc()
ARM: kprobes: Replace use of prep_emulate_rd12rn16rm0_wflags()
ARM: kprobes: Add emulate_rd12rm0_noflags_nopc()
ARM: kprobes: Add emulate_rdlo12rdhi16rn0rm8_rwflags_nopc()
ARM: kprobes: Add new versions of emulate_ldr() and emulate_str()
ARM: kprobes: Use new versions of emulate_ldr() and emulate_str()
ARM: kprobes: Reject probing of unprivileged load and store instructions
ARM: kprobes: Decode ARM preload (immediate) instructions
ARM: kprobes: Remove now unused code
arch/arm/Kconfig | 2 +-
arch/arm/include/asm/kprobes.h | 28 +-
arch/arm/include/asm/ptrace.h | 11 +-
arch/arm/kernel/Makefile | 7 +-
arch/arm/kernel/entry-header.S | 12 +-
arch/arm/kernel/kprobes-arm.c | 999 +++++++++++++++++++++++
arch/arm/kernel/kprobes-common.c | 577 +++++++++++++
arch/arm/kernel/kprobes-decode.c | 1670 --------------------------------------
arch/arm/kernel/kprobes-thumb.c | 1462 +++++++++++++++++++++++++++++++++
arch/arm/kernel/kprobes.c | 222 +++++-
arch/arm/kernel/kprobes.h | 420 ++++++++++
arch/arm/kernel/ptrace.c | 28 +-
arch/arm/kernel/traps.c | 17 +-
13 files changed, 3707 insertions(+), 1748 deletions(-)
create mode 100644 arch/arm/kernel/kprobes-arm.c
create mode 100644 arch/arm/kernel/kprobes-common.c
delete mode 100644 arch/arm/kernel/kprobes-decode.c
create mode 100644 arch/arm/kernel/kprobes-thumb.c
create mode 100644 arch/arm/kernel/kprobes.h
More information about the linux-arm-kernel
mailing list