diff options
author | Arnd Bergmann <arnd@arndb.de> | 2021-05-08 00:07:50 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2021-05-10 17:50:47 +0200 |
commit | f12d3ff3f41cc92f67cfaf29697685e8834fe4a4 (patch) | |
tree | abfa0f845a558b68496b20de684207a841b347cf | |
parent | m68k: select CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS (diff) | |
download | linux-f12d3ff3f41cc92f67cfaf29697685e8834fe4a4.tar.xz linux-f12d3ff3f41cc92f67cfaf29697685e8834fe4a4.zip |
powerpc: use linux/unaligned/le_struct.h on LE power7
Little-endian POWER7 kernels disable
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS because that is not supported on
the hardware, but the kernel still uses direct load/store for explicti
get_unaligned()/put_unaligned().
I assume this is a mistake that leads to power7 having to trap and fix
up all these unaligned accesses at a noticeable performance cost.
The fix is completely trivial, just remove the file and use the
generic version that gets it right.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/powerpc/include/asm/unaligned.h | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/arch/powerpc/include/asm/unaligned.h b/arch/powerpc/include/asm/unaligned.h deleted file mode 100644 index ce69c5eff95e..000000000000 --- a/arch/powerpc/include/asm/unaligned.h +++ /dev/null @@ -1,22 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_POWERPC_UNALIGNED_H -#define _ASM_POWERPC_UNALIGNED_H - -#ifdef __KERNEL__ - -/* - * The PowerPC can do unaligned accesses itself based on its endian mode. - */ -#include <linux/unaligned/access_ok.h> -#include <linux/unaligned/generic.h> - -#ifdef __LITTLE_ENDIAN__ -#define get_unaligned __get_unaligned_le -#define put_unaligned __put_unaligned_le -#else -#define get_unaligned __get_unaligned_be -#define put_unaligned __put_unaligned_be -#endif - -#endif /* __KERNEL__ */ -#endif /* _ASM_POWERPC_UNALIGNED_H */ |