mirror of https://github.com/torvalds/linux.git
As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com ACCESS_ONCE might fail with specific compilers for non-scalar accesses. Here is a set of patches to tackle that problem. The first patch introduce READ_ONCE and ASSIGN_ONCE. If the data structure is larger than the machine word size memcpy is used and a warning is emitted. The next patches fix up several in-tree users of ACCESS_ONCE on non-scalar types. This merge does not yet contain a patch that forces ACCESS_ONCE to work only on scalar types. This is targetted for the next merge window as Linux next already contains new offenders regarding ACCESS_ONCE vs. non-scalar types. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux) iQIcBAABAgAGBQJUkrVGAAoJEBF7vIC1phx8stkP/2LmN5y6LOseoEW06xa5MX4m cbIKsZNtsGHl7EDcTzzuWs6Sq5/Cj7V3yzeBF7QGbUKOqvFWU3jvpUBCCfjMg37C 77/Vf0ZPrxTXXxeJ4Ykdy2CGvuMtuYY9TWkrRNKmLU0xex7lGblEzCt9z6+mZviw 26/DN8ctjkHRvIUAi+7RfQBBc3oSMYAC1mzxYKBAsAFLV+LyFmsGU/4iofZMAsdt XFyVXlrLn0Bjx/MeceGkOlMDiVx4FnfccfFaD4hhuTLBJXWitkUK/MRa4JBiXWzH agY8942A8/j9wkI2DFp/pqZYqA/sTXLndyOWlhE//ZSti0n0BSJaOx3S27rTLkAc 5VmZEVyIrS3hyOpyyAi0sSoPkDnjeCHmQg9Rqn34/poKLd7JDrW2UkERNCf/T3eh GI2rbhAlZz3v5mIShn8RrxzslWYmOObpMr3HYNUdRk8YUfTf6d6aZ3txHp2nP4mD VBAEzsvP9rcVT2caVhU2dnBzeaZAj3zeDxBtjcb3X2osY9tI7qgLc9Fa/fWKgILk 2evkLcctsae2mlLNGHyaK3Dm/ZmYJv+57MyaQQEZNfZZgeB1y4k0DkxH4w1CFmCi s8XlH5voEHgnyjSQXXgc/PNVlkPAKr78ZyTiAfiKmh8rpe41/W4hGcgao7L9Lgiu SI0uSwKibuZt4dHGxQuG =IQ5o -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux Pull ACCESS_ONCE cleanup preparation from Christian Borntraeger: "kernel: Provide READ_ONCE and ASSIGN_ONCE As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com ACCESS_ONCE might fail with specific compilers for non-scalar accesses. Here is a set of patches to tackle that problem. The first patch introduce READ_ONCE and ASSIGN_ONCE. If the data structure is larger than the machine word size memcpy is used and a warning is emitted. The next patches fix up several in-tree users of ACCESS_ONCE on non-scalar types. This does not yet contain a patch that forces ACCESS_ONCE to work only on scalar types. This is targetted for the next merge window as Linux next already contains new offenders regarding ACCESS_ONCE vs. non-scalar types" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux: s390/kvm: REPLACE barrier fixup with READ_ONCE arm/spinlock: Replace ACCESS_ONCE with READ_ONCE arm64/spinlock: Replace ACCESS_ONCE READ_ONCE mips/gup: Replace ACCESS_ONCE with READ_ONCE x86/gup: Replace ACCESS_ONCE with READ_ONCE x86/spinlock: Replace ACCESS_ONCE with READ_ONCE mm: replace ACCESS_ONCE with READ_ONCE or barriers kernel: Provide READ_ONCE and ASSIGN_ONCE |
||
|---|---|---|
| .. | ||
| boot | ||
| common | ||
| configs | ||
| crypto | ||
| firmware | ||
| include | ||
| kernel | ||
| kvm | ||
| lib | ||
| mach-asm9260 | ||
| mach-at91 | ||
| mach-axxia | ||
| mach-bcm | ||
| mach-berlin | ||
| mach-clps711x | ||
| mach-cns3xxx | ||
| mach-davinci | ||
| mach-dove | ||
| mach-ebsa110 | ||
| mach-efm32 | ||
| mach-ep93xx | ||
| mach-exynos | ||
| mach-footbridge | ||
| mach-gemini | ||
| mach-highbank | ||
| mach-hisi | ||
| mach-imx | ||
| mach-integrator | ||
| mach-iop13xx | ||
| mach-iop32x | ||
| mach-iop33x | ||
| mach-ixp4xx | ||
| mach-keystone | ||
| mach-ks8695 | ||
| mach-lpc32xx | ||
| mach-mediatek | ||
| mach-meson | ||
| mach-mmp | ||
| mach-moxart | ||
| mach-msm | ||
| mach-mv78xx0 | ||
| mach-mvebu | ||
| mach-mxs | ||
| mach-netx | ||
| mach-nomadik | ||
| mach-nspire | ||
| mach-omap1 | ||
| mach-omap2 | ||
| mach-orion5x | ||
| mach-picoxcell | ||
| mach-prima2 | ||
| mach-pxa | ||
| mach-qcom | ||
| mach-realview | ||
| mach-rockchip | ||
| mach-rpc | ||
| mach-s3c24xx | ||
| mach-s3c64xx | ||
| mach-s5pv210 | ||
| mach-sa1100 | ||
| mach-shmobile | ||
| mach-socfpga | ||
| mach-spear | ||
| mach-sti | ||
| mach-sunxi | ||
| mach-tegra | ||
| mach-u300 | ||
| mach-ux500 | ||
| mach-versatile | ||
| mach-vexpress | ||
| mach-vt8500 | ||
| mach-w90x900 | ||
| mach-zynq | ||
| mm | ||
| net | ||
| nwfpe | ||
| oprofile | ||
| plat-iop | ||
| plat-omap | ||
| plat-orion | ||
| plat-pxa | ||
| plat-samsung | ||
| plat-versatile | ||
| tools | ||
| vfp | ||
| xen | ||
| Kconfig | ||
| Kconfig-nommu | ||
| Kconfig.debug | ||
| Makefile | ||