linux/drivers
Linus Torvalds 4cad671979 asm-generic/unaligned: 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/
 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
2021-07-02 12:43:40 -07:00
..
accessibility
acpi Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
amba
android
ata ata: rb532_cf: remove redundant codes 2021-06-24 18:49:01 -06:00
atm Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
auxdisplay
base Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
bcma
block Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
bluetooth Bluetooth: hci_uart: Remove redundant assignment to fw_ptr 2021-06-26 07:52:41 +02:00
bus kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
cdrom gdrom: use blk_mq_alloc_disk 2021-06-11 11:53:03 -06:00
char Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
clk Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
clocksource This round has a diffstat dominated by Qualcomm clk drivers. Honestly though 2021-07-01 13:26:16 -07:00
comedi
connector
counter
cpufreq cpufreq: Make cpufreq_online() call driver->offline() on errors 2021-06-23 19:40:56 +02:00
cpuidle Power management updates for 5.14-rc1 2021-06-29 13:36:06 -07:00
crypto crypto: sl3516 - depends on HAS_IOMEM 2021-06-24 14:57:28 +08:00
cxl
dax fs: remove noop_set_page_dirty() 2021-06-29 10:53:48 -07:00
dca
devfreq PM / devfreq: passive: Fix get_target_freq when not using required-opp 2021-06-24 10:37:35 +09:00
dio
dma dmaengine fixes for v5.13 2021-06-16 09:03:52 -07:00
dma-buf dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
edac Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
eisa
extcon extcon: extcon-max8997: Simplify driver using devm 2021-06-17 13:22:27 +02:00
firewire
firmware Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
fpga
fsi
gnss
gpio platform-drivers-x86 for v5.14-1 2021-06-30 11:15:39 -07:00
gpu Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
greybus
hid Merge branch 'for-5.14/multitouch' into for-linus 2021-06-30 09:15:15 +02:00
hsi
hv Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
hwmon fallthrough fixes for Clang for 5.14-rc1 2021-06-28 20:03:38 -07:00
hwspinlock
hwtracing kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
i2c ACPI updates for 5.14-rc1 2021-06-29 13:39:41 -07:00
i3c
idle intel_idle: Adjust the SKX C6 parameters if PC6 is disabled 2021-06-09 17:51:07 +02:00
iio
infiniband RDMA v5.14 merge window Pull Request 2021-07-01 14:54:03 -07:00
input platform-drivers-x86 for v5.14-1 2021-06-30 11:15:39 -07:00
interconnect
iommu Merge tag 'drm-msm-next-2021-06-23b' of https://gitlab.freedesktop.org/drm/msm into drm-next 2021-06-24 07:21:16 +10:00
ipack
irqchip Updates for the interrupt subsystem: 2021-06-29 12:25:04 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-05-27 09:55:10 -07:00
leds kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
lightnvm lightnvm: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:23 -06:00
macintosh
mailbox mbox: add polarfire soc system controller mailbox 2021-06-26 12:06:48 -05:00
mcb
md - Various DM persistent-data library improvements and fixes that 2021-06-30 18:19:39 -07:00
media Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
memory
memstick for-5.14/block-2021-06-29 2021-06-30 12:12:56 -07:00
message
mfd platform-drivers-x86 for v5.14-1 2021-06-30 11:15:39 -07:00
misc Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
mmc This round has a diffstat dominated by Qualcomm clk drivers. Honestly though 2021-07-01 13:26:16 -07:00
most
mtd for-5.14/block-2021-06-29 2021-06-30 12:12:56 -07:00
mux
net asm-generic/unaligned: Unify asm/unaligned.h around struct helper 2021-07-02 12:43:40 -07:00
nfc NFC: nxp-nci: remove unnecessary label 2021-06-18 12:57:30 -07:00
ntb
nubus
nvdimm libnvdimm/pmem: Fix blk_cleanup_disk() usage 2021-06-09 09:09:22 -06:00
nvme for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
nvmem
of
opp opp: Allow required-opps to be used for non genpd use cases 2021-06-18 09:00:55 +05:30
parisc kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
parport
pci drm pull for 5.14-rc1 2021-07-01 12:53:43 -07:00
pcmcia
perf drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe() 2021-06-17 19:45:24 +01:00
phy phy: Sparx5 Eth SerDes: check return value after calling platform_get_resource() 2021-06-03 11:18:19 +05:30
pinctrl This is the bulk of pin control changes for the v5.14 kernel: 2021-07-01 16:57:14 -07:00
platform Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2021-06-30 11:31:32 -07:00
pnp PNP: pnpbios: Use list_for_each_entry() instead of list_for_each() 2021-06-09 15:04:30 +02:00
power kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
powercap
pps
ps3
ptp ptp: Set lookup cookie when creating a PTP PPS source. 2021-06-29 11:29:37 -07:00
pwm
rapidio
ras
regulator Merge remote-tracking branch 'regulator/for-5.14' into regulator-next 2021-06-23 16:56:31 +01:00
remoteproc kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
reset reset: stm32mp1: remove stm32mp1 reset 2021-06-28 16:08:48 -07:00
rpmsg rpmsg: core: Add driver_data for rpmsg_device_id 2021-06-18 13:13:40 -07:00
rtc rtc: mt6397: refine RTC_TC_MTH 2021-06-01 16:44:09 +01:00
s390 Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
sbus
scsi for-5.14/block-2021-06-29 2021-06-30 12:12:56 -07:00
sh
siox
slimbus
soc Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
soundwire
spi Merge remote-tracking branch 'spi/for-5.14' into spi-next 2021-06-25 14:08:26 +01:00
spmi
ssb ssb: use DEVICE_ATTR_ADMIN_RW() helper macro 2021-06-15 13:11:56 +03:00
staging Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
target scsi: target: core: Fix warning on realtime kernels 2021-05-31 22:59:13 -04:00
tc
tee fallthrough fixes for Clang for 5.14-rc1 2021-06-28 20:03:38 -07:00
thermal Scheduler udpates for this cycle: 2021-06-28 12:14:19 -07:00
thunderbolt
tty serial: 8250_exar: Avoid NULL pointer dereference at ->exit() 2021-06-09 14:40:48 +02:00
uio
usb Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
vdpa
vfio vfio: use vma_lookup() instead of find_vma_intersection() 2021-06-29 10:53:51 -07:00
vhost net: sock: introduce sk_error_report 2021-06-29 11:28:21 -07:00
video Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
virt
virtio virtio-mem: use page_offline_(start|end) when setting PageOffline() 2021-06-30 20:47:28 -07:00
visorbus
vlynq
vme
w1
watchdog Updates for the interrupt subsystem: 2021-06-29 12:25:04 -07:00
xen xen/events: reset active flag for lateeoi events later 2021-06-24 12:52:36 +02:00
zorro
Kconfig ide: remove the legacy ide driver 2021-06-16 08:53:58 -06:00
Makefile hyperv-next for 5.14 2021-06-29 11:21:35 -07:00