mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-14 00:24:15 +08:00
4cad671979
The get_unaligned()/put_unaligned() helpers are traditionally architecture specific, with the two main variants being the "access-ok.h" version that assumes unaligned pointer accesses always work on a particular architecture, and the "le-struct.h" version that casts the data to a byte aligned type before dereferencing, for architectures that cannot always do unaligned accesses in hardware. Based on the discussion linked below, it appears that the access-ok version is not realiable on any architecture, but the struct version probably has no downsides. This series changes the code to use the same implementation on all architectures, addressing the few exceptions separately. Link: https://lore.kernel.org/lkml/75d07691-1e4f-741f-9852-38c0b4f520bc@synopsys.com/ Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100363 Link: https://lore.kernel.org/lkml/20210507220813.365382-14-arnd@kernel.org/ Link: git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git unaligned-rework-v2 Link: https://lore.kernel.org/lkml/CAHk-=whGObOKruA_bU3aPGZfoDqZM1_9wBkwREp0H0FgR-90uQ@mail.gmail.com/ Signed-off-by: Arnd Bergmann <arnd@arndb.de> -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmDfFx4ACgkQmmx57+YA GNkqzRAAjdlIr8M+xI2CyT0/A9tswYfLMeWejmYopq3zlxI6RnvPiJJDIdY2I8US 1npIiDo55w061CnXL9rV65ocL3XmGu1mabOvgM6ATsec+8t4WaXBV9tysxTJ9ea0 ltLTa2P5DXWALvWiVMTME7hFaf1cW+8Uqt3LmXxDp2l5zasXajCHAH6YokON2PfM CsaRhwSxIu8Sbnu/IQGBI9JW5UXsBfKSyUwtM0OwP7jFOuIeZ4WBVA+j6UxONnFC wouKmAM/ThoOsaV9aP4EZLIfBx8d4/hfYQjZ958kYXurerruYkJeEqdIRbV0QqTy 2O6ZrJ6uqPlzfWz9h458me2dt98YEtALHV/3DCWUcBfHmUQtxElyJYEhG0YjVF3H 5RYtjw8Q2LS/QR5ask1Xn0JfT89rRnLi2migAtsA4Ce70JP4Us6wGobkj4SHlgDt P7+eVq2Mkhqw/kmV8N4p+ZS5lpkK0JniDN+ONDhkZqHL/zXG/HQzx9wLV69jlvo2 ASevKxITdi+bKHWs5ANungkBOnBUQZacq46mVyi4HPDwMAFyWvVYTbFumy9koagQ o9NEgX3RsZcxxi7bU1xuFPFMLMlUQT3Nb30+84B4fKe9FmvHC1hizTiCnp7q4bZr z6a6AMHke7YLqKZOqzTJGRR3lPoZZDCb775SAd70LQp6XPZXOHs= =IY5U -----END PGP SIGNATURE----- Merge tag 'asm-generic-unaligned-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic Pull asm/unaligned.h unification from Arnd Bergmann: "Unify asm/unaligned.h around struct helper The get_unaligned()/put_unaligned() helpers are traditionally architecture specific, with the two main variants being the "access-ok.h" version that assumes unaligned pointer accesses always work on a particular architecture, and the "le-struct.h" version that casts the data to a byte aligned type before dereferencing, for architectures that cannot always do unaligned accesses in hardware. Based on the discussion linked below, it appears that the access-ok version is not realiable on any architecture, but the struct version probably has no downsides. This series changes the code to use the same implementation on all architectures, addressing the few exceptions separately" Link: https://lore.kernel.org/lkml/75d07691-1e4f-741f-9852-38c0b4f520bc@synopsys.com/ Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100363 Link: https://lore.kernel.org/lkml/20210507220813.365382-14-arnd@kernel.org/ Link: git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git unaligned-rework-v2 Link: https://lore.kernel.org/lkml/CAHk-=whGObOKruA_bU3aPGZfoDqZM1_9wBkwREp0H0FgR-90uQ@mail.gmail.com/ * tag 'asm-generic-unaligned-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: asm-generic: simplify asm/unaligned.h asm-generic: uaccess: 1-byte access is always aligned netpoll: avoid put_unaligned() on single character mwifiex: re-fix for unaligned accesses apparmor: use get_unaligned() only for multi-byte words partitions: msdos: fix one-byte get_unaligned() asm-generic: unaligned always use struct helpers asm-generic: unaligned: remove byteshift helpers powerpc: use linux/unaligned/le_struct.h on LE power7 m68k: select CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS sh: remove unaligned access for sh4a openrisc: always use unaligned-struct header asm-generic: use asm-generic/unaligned.h for most architectures
144 lines
3.1 KiB
Plaintext
144 lines
3.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
config M68K
|
|
bool
|
|
default y
|
|
select ARCH_32BIT_OFF_T
|
|
select ARCH_HAS_BINFMT_FLAT
|
|
select ARCH_HAS_DMA_PREP_COHERENT if HAS_DMA && MMU && !COLDFIRE
|
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
|
|
select ARCH_NO_PREEMPT if !COLDFIRE
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
|
|
select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE
|
|
select GENERIC_ATOMIC64
|
|
select GENERIC_CPU_DEVICES
|
|
select GENERIC_IOMAP
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_STRNCPY_FROM_USER if MMU
|
|
select GENERIC_STRNLEN_USER if MMU
|
|
select HAVE_AOUT if MMU
|
|
select HAVE_ASM_MODVERSIONS
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select HAVE_EFFICIENT_UNALIGNED_ACCESS if !CPU_HAS_NO_UNALIGNED
|
|
select HAVE_FUTEX_CMPXCHG if MMU && FUTEX
|
|
select HAVE_IDE
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
select HAVE_UID16
|
|
select MMU_GATHER_NO_RANGE if MMU
|
|
select MODULES_USE_ELF_REL
|
|
select MODULES_USE_ELF_RELA
|
|
select NO_DMA if !MMU && !COLDFIRE
|
|
select OLD_SIGACTION
|
|
select OLD_SIGSUSPEND3
|
|
select SET_FS
|
|
select UACCESS_MEMCPY if !MMU
|
|
select VIRT_TO_BUS
|
|
select ZONE_DMA
|
|
|
|
config CPU_BIG_ENDIAN
|
|
def_bool y
|
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
bool
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
bool
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CSUM
|
|
bool
|
|
|
|
config TIME_LOW_RES
|
|
bool
|
|
default y
|
|
|
|
config NO_IOPORT_MAP
|
|
def_bool y
|
|
|
|
config HZ
|
|
int
|
|
default 1000 if CLEOPATRA
|
|
default 100
|
|
|
|
config PGTABLE_LEVELS
|
|
default 2 if SUN3 || COLDFIRE
|
|
default 3
|
|
|
|
config MMU
|
|
bool "MMU-based Paged Memory Management Support"
|
|
default y
|
|
help
|
|
Select if you want MMU-based virtualised addressing space
|
|
support by paged memory management. If unsure, say 'Y'.
|
|
|
|
config MMU_MOTOROLA
|
|
bool
|
|
|
|
config MMU_COLDFIRE
|
|
bool
|
|
|
|
config MMU_SUN3
|
|
bool
|
|
depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE
|
|
|
|
config KEXEC
|
|
bool "kexec system call"
|
|
depends on M68KCLASSIC
|
|
select KEXEC_CORE
|
|
help
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is independent of the system firmware. And like a reboot
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
The name comes from the similarity to the exec system call.
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
initially work for you. As of this writing the exact hardware
|
|
interface is strongly in flux, so no good recommendation can be
|
|
made.
|
|
|
|
config BOOTINFO_PROC
|
|
bool "Export bootinfo in procfs"
|
|
depends on KEXEC && M68KCLASSIC
|
|
help
|
|
Say Y to export the bootinfo used to boot the kernel in a
|
|
"bootinfo" file in procfs. This is useful with kexec.
|
|
|
|
menu "Platform setup"
|
|
|
|
source "arch/m68k/Kconfig.cpu"
|
|
|
|
source "arch/m68k/Kconfig.machine"
|
|
|
|
source "arch/m68k/Kconfig.bus"
|
|
|
|
endmenu
|
|
|
|
menu "Kernel Features"
|
|
|
|
endmenu
|
|
|
|
if !MMU
|
|
menu "Power management options"
|
|
|
|
config PM
|
|
bool "Power Management support"
|
|
help
|
|
Support processor power management modes
|
|
|
|
endmenu
|
|
endif
|
|
|
|
source "arch/m68k/Kconfig.devices"
|