summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin/stackcollapse-report
diff options
context:
space:
mode:
authorBradley Morgan <brads@mainlining.org>2026-09-22 17:33:52 +0000
committerPaul E. McKenney <paulmck@kernel.org>2026-10-06 11:38:26 -0700
commit887685c52e44c3a80dfc55f8545f5598badb98c9 (patch)
tree32299c00d06bb8548c8ec845fc1043418e5ce701 /tools/perf/scripts/python/bin/stackcollapse-report
parent109f733202e32c85b41b92276cae6fd789af1890 (diff)
downloadlinux-887685c52e44c3a80dfc55f8545f5598badb98c9.tar.gz
linux-887685c52e44c3a80dfc55f8545f5598badb98c9.zip
sh: Emulate two-byte cmpxchg
SH has no byte or halfword atomic memory operations, so the __cmpxchg() switch routes case 1 through cmpxchg_emu_u8() and lets case 2 fall through to __cmpxchg_called_with_bad_pointer(), which is declared but never defined, so a two-byte cmpxchg() fails at link time. Route case 2 through the new cmpxchg_emu_u16(), which takes the old and new values as unsigned long, so the (unsigned long) casts move off the call and into _old_ and _new_ declarations that type check the old and new arguments against *ptr through (unsigned long)(0 ? *ptr : _o_), the idiom David Laight suggested, so cmpxchg(&p, 4, 5) no longer compiles silently. [ paulmck: Apply kernel test robot feedback. ] Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Signed-off-by: Bradley Morgan <brads@mainlining.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Cc: <linux-sh@vger.kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions