Skip to content

ABI updates

Tony Lindgren linux-arm-kernel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 4 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 4 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchTon Lindgren
SeriesT-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/4] ABI updates
Quoted 20 lines · Russell King - ARM Linux

As a result of the recent discussions about android, several issues have been identified with existing kernels:

1. HWCAP_SWP does not properly reflect whether the SWP instruction should be used. Turn HWCAP_SWP off on ARMv6+ where the exclusives are available.

2. SWP is unsafe when running on a SMP CPU; there is no bus locking between the read and write parts of the instruction execution. Force SWP emulation on ARMv7+ where we can disable the SWP instruction.

3. Reporting of alignment faults - kernel mode faults are silent due to the requirements of the network stack, but we can note where the last one occurs.

Testing reveals that at least my OMAP4430 userspace (supplied from TI) executes lots of SWP instructions, which is something that wasn't known before this patch.

Quoted 8 lines

Many systems today are not configured with SWP emulation enabled on SMP. This means that the SWP instruction is available, but unsafe.

 arch/arm/kernel/setup.c       | 29 ++++++++++++++++++++++-------
 arch/arm/kernel/swp_emulate.c |  4 ++++
 arch/arm/mm/Kconfig           |  2 +-
 arch/arm/mm/alignment.c       |  4 +++-
 4 files changed, 30 insertions(+), 9 deletions(-)

Tried testing this on omap2 which is ARMv6 with no K, but got this:

arch/arm/kernel/setup.c: In function ?elf_hwcap_fixup?:
arch/arm/kernel/setup.c:405:2: error: implicit declaration of function ?read_cpuid_part? [-Werror=implicit-function-declaration]

That should be read_cpuid_part_number instead. After fixing that, omap2 booted fine, so for ARMv6 with no K: