[PATCH 0/2] Fix ptrace software breakpoints

Will Deacon will.deacon at arm.com
Thu Jul 15 11:53:56 EDT 2010


When using GDB on a quad-core Cortex-A9 (Versatile Express) board, software
breakpoints do not work if the inferior is scheduled onto a different CPU from
the debugger.

When GDB changes the code of another context via the ptrace POKETEXT mechanism,
the I-cache must be invalidated before the inferior is allowed to resume. If a
copy-on-write is triggered by the copy_to_user_page function, the new page
mappings must be used by the inferior in order to pick up the new instructions.

This patch series addresses this problem by:

(a) Providing a workaround for a known TLB issue on some revisions of the Cortex-A9.
(b) Performing correct I-cache invalidation in the flush_ptrace_access code.

All feedback/comments/tested-bys welcome.

Cc: Rob Clark <rob at ti.com>
Cc: Catalin Marinas <catalin.marinas at arm.com>

Will Deacon (2):
  ARM: errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a
    faulty ASID
  ARM: flush_ptrace_access: invalidate all I-caches

 arch/arm/Kconfig                |   12 ++++++++++++
 arch/arm/include/asm/tlbflush.h |    8 ++++++++
 arch/arm/mm/flush.c             |    4 ++--
 3 files changed, 22 insertions(+), 2 deletions(-)



More information about the linux-arm-kernel mailing list