kernel_samsung_a53x/arch/powerpc
Michael Ellerman bad194550f powerpc/xmon: Fix disassembly CPU feature checks
[ Upstream commit 14196e47c5ffe32af7ed5a51c9e421c5ea5bccce ]

In the xmon disassembly code there are several CPU feature checks to
determine what dialects should be passed to the disassembler. The
dialect controls which instructions the disassembler will recognise.

Unfortunately the checks are incorrect, because instead of passing a
single CPU feature they are passing a mask of feature bits.

For example the code:

  if (cpu_has_feature(CPU_FTRS_POWER5))
      dialect |= PPC_OPCODE_POWER5;

Is trying to check if the system is running on a Power5 CPU. But
CPU_FTRS_POWER5 is a mask of *all* the feature bits that are enabled on
a Power5.

In practice the test will always return true for any 64-bit CPU, because
at least one bit in the mask will be present in the CPU_FTRS_ALWAYS
mask.

Similarly for all the other checks against CPU_FTRS_xx masks.

Rather than trying to match the disassembly behaviour exactly to the
current CPU, just differentiate between 32-bit and 64-bit, and Altivec,
VSX and HTM.

That will cause some instructions to be shown in disassembly even
on a CPU that doesn't support them, but that's OK, objdump -d output
has the same behaviour, and if anything it's less confusing than some
instructions not being disassembled.

Fixes: 897f112bb42e ("[POWERPC] Import updated version of ppc disassembly code for xmon")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240509121248.270878-2-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:20:10 +01:00
..
boot Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
configs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
crypto Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
include powerpc/64: Set _IO_BASE to POISON_POINTER_DELTA not 0 for CONFIG_PCI=n 2024-11-19 14:19:41 +01:00
kernel powerpc/eeh: avoid possible crash when edev->pdev changes 2024-11-19 14:19:50 +01:00
kexec Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kvm KVM: PPC: Book3S HV: Prevent UAF in kvm_spapr_tce_attach_iommu_group() 2024-11-19 14:19:47 +01:00
lib powerpc: xor_vmx: Add '-mhard-float' to CFLAGS 2024-11-19 09:22:41 +01:00
math-emu Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mm powerpc/kasan: Fix addr error caused by page alignment 2024-11-18 12:13:29 +01:00
net Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
oprofile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
perf powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks 2024-11-19 08:44:55 +01:00
platforms powerpc/pseries: Whitelist dtl slub object for copying to userspace 2024-11-19 14:19:50 +01:00
purgatory Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysdev powerpc/fsl-soc: hide unused const variable 2024-11-19 12:26:57 +01:00
tools Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xmon powerpc/xmon: Fix disassembly CPU feature checks 2024-11-23 23:20:10 +01:00
Kbuild Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig.debug Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.postlink Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00