ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint access type
authorWill Deacon <will.deacon@arm.com>
Thu, 16 Aug 2012 17:55:44 +0000 (18:55 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 25 Aug 2012 08:15:23 +0000 (09:15 +0100)
commitbf8801145c01ab600f8df66e8c879ac642fa5846
treef43bfc09b092f13626cf7ae1f674f9af589904c7
parenta849088aa1552b1a28eea3daff599ee22a734ae3
ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint access type

From ARM debug architecture v7.1 onwards, a watchpoint exception causes
the DFAR to be updated with the faulting data address. However, DFSR.WnR
takes an UNKNOWN value and therefore cannot be used in general to
determine the access type that triggered the watchpoint.

This patch forbids watchpoints without an overflow handler from
specifying a specific access type (load/store). Those with overflow
handlers must be able to handle false positives potentially triggered by
a watchpoint of a different access type on the same address. For
SIGTRAP-based handlers (i.e. ptrace), this should have no impact.

Cc: <stable@vger.kernel.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/hw_breakpoint.c