[aarch64] tpidr2: Fix erroneous detection logic for TPIDR2
authorLuis Machado <luis.machado@arm.com>
Mon, 13 Mar 2023 13:14:41 +0000 (13:14 +0000)
committerLuis Machado <luis.machado@arm.com>
Mon, 3 Apr 2023 09:08:44 +0000 (10:08 +0100)
commitd747348d02f12121a2e897f7789ff27ffbd2f23d
tree050509f075c34eb0d46552bb1d2b9a0317d82e09
parent49782961761f825873b42a919bfbbbdbaa958911
[aarch64] tpidr2: Fix erroneous detection logic for TPIDR2

The detection logic for TPIDR2 was implemented incorrectly.  Originally
the detection was supposed to be through a ptrace error code, but in reality,
for backwards compatibility, the detection should be based on the size of
the returned iovec.

For instance, if a target supports both TPIDR and TPIDR2, ptrace will return a
iovec size of 16.  If a target only supports TPIDR and not TPIDR2, it will
return a iovec size of 8, even if we asked for 16 bytes.

This patch fixes this issue in code that is shared between gdb and gdbserver,
therefore both gdb and gdbserver are fixed.

Tested on AArch64/Linux Ubuntu 20.04.
gdb/nat/aarch64-linux.c