linux-stable/arch/arm
Will Deacon d15155824c linux/compiler.h: Split into compiler.h and compiler_types.h
linux/compiler.h is included indirectly by linux/types.h via
uapi/linux/types.h -> uapi/linux/posix_types.h -> linux/stddef.h
-> uapi/linux/stddef.h and is needed to provide a proper definition of
offsetof.

Unfortunately, compiler.h requires a definition of
smp_read_barrier_depends() for defining lockless_dereference() and soon
for defining READ_ONCE(), which means that all
users of READ_ONCE() will need to include asm/barrier.h to avoid splats
such as:

   In file included from include/uapi/linux/stddef.h:1:0,
                    from include/linux/stddef.h:4,
                    from arch/h8300/kernel/asm-offsets.c:11:
   include/linux/list.h: In function 'list_empty':
>> include/linux/compiler.h:343:2: error: implicit declaration of function 'smp_read_barrier_depends' [-Werror=implicit-function-declaration]
     smp_read_barrier_depends(); /* Enforce dependency ordering from x */ \
     ^

A better alternative is to include asm/barrier.h in linux/compiler.h,
but this requires a type definition for "bool" on some architectures
(e.g. x86), which is defined later by linux/types.h. Type "bool" is also
used directly in linux/compiler.h, so the whole thing is pretty fragile.

This patch splits compiler.h in two: compiler_types.h contains type
annotations, definitions and the compiler-specific parts, whereas
compiler.h #includes compiler-types.h and additionally defines macros
such as {READ,WRITE.ACCESS}_ONCE().

uapi/linux/stddef.h and linux/linkage.h are then moved over to include
linux/compiler_types.h, which fixes the build for h8 and blackfin.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1508840570-22169-2-git-send-email-will.deacon@arm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-10-24 13:17:32 +02:00
..
boot Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-10-20 18:20:17 -04:00
common arm: implement ->dma_supported instead of ->set_dma_mask 2017-06-28 06:54:49 -07:00
configs ARM: defconfig: update Gemini defconfig 2017-10-03 18:08:05 -07:00
crypto crypto: arm/aes - avoid expanded lookup tables in the final round 2017-08-04 09:27:25 +08:00
firmware
include linux/compiler.h: Split into compiler.h and compiler_types.h 2017-10-24 13:17:32 +02:00
kernel Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-10-20 18:20:17 -04:00
kvm KVM: arm: implements the kvm_arch_vcpu_in_kernel() 2017-08-08 10:57:43 +02:00
lib ARM: implement memset32 & memset64 2017-09-08 18:26:48 -07:00
mach-actions ARM: owl: smp: Drop bogus holding pen 2017-07-03 14:31:47 +02:00
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: at91: Replace uses of virt_to_phys with __pa_symbol 2017-09-18 10:05:38 +02:00
mach-axxia
mach-bcm ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci This pull request contains the following core changes: 2017-09-01 15:34:30 +02:00
mach-digicolor
mach-dove mtd: nand: Rename nand.h into rawnand.h 2017-08-13 10:11:49 +02:00
mach-ebsa110
mach-efm32
mach-ep93xx ARM/arm64: SoC platform updates for v4.14 2017-09-10 20:35:46 -07:00
mach-exynos Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-09-12 06:10:44 -07:00
mach-footbridge
mach-gemini ARM: gemini: select pin controller 2017-08-05 23:48:29 +02:00
mach-highbank
mach-hisi ARM/arm64: SoC platform updates for v4.14 2017-09-10 20:35:46 -07:00
mach-imx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
mach-integrator
mach-iop13xx ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-iop32x
mach-iop33x
mach-ixp4xx This pull request contains the following core changes: 2017-09-01 15:34:30 +02:00
mach-keystone
mach-ks8695
mach-lpc18xx
mach-lpc32xx
mach-mediatek ARM: mediatek: add MT7623a smp bringup code 2017-07-31 13:31:48 +02:00
mach-meson
mach-mmp This pull request contains the following core changes: 2017-09-01 15:34:30 +02:00
mach-moxart
mach-mv78xx0 ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-mvebu Merge branch 'next/cleanup' into next/soc 2017-09-05 20:29:46 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 MTD changes for 4.14: 2017-09-09 14:48:21 -07:00
mach-omap2 ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both 2017-09-19 10:59:26 -07:00
mach-orion5x mtd: nand: Rename nand.h into rawnand.h 2017-08-13 10:11:49 +02:00
mach-oxnas
mach-picoxcell
mach-prima2 ARM: sirf: mark sirfsoc_init_late as __maybe_unused 2017-07-27 22:57:44 +02:00
mach-pxa Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-09-12 06:10:44 -07:00
mach-qcom
mach-realview
mach-rockchip Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-09-12 06:10:44 -07:00
mach-rpc ARM: rpc: rename RAM_SIZE macro 2017-07-27 22:57:38 +02:00
mach-s3c24xx ARM/arm64: SoC platform updates for v4.14 2017-09-10 20:35:46 -07:00
mach-s3c64xx dmaengine updates for 4.13-rc1 2017-07-08 12:36:50 -07:00
mach-s5pv210
mach-sa1100 ARM: sa1100: normalize clk API 2017-07-27 13:15:50 +02:00
mach-shmobile Merge branch 'next/cleanup' into next/soc 2017-09-05 20:29:46 -07:00
mach-socfpga
mach-spear dmaengine updates for 4.13-rc1 2017-07-08 12:36:50 -07:00
mach-sti
mach-stm32
mach-sunxi
mach-tango
mach-tegra ARM: SoC driver updates for v4.14 2017-09-10 20:40:00 -07:00
mach-u300
mach-uniphier
mach-ux500 ARM: ux500: Fix regression while init PM domains 2017-10-19 17:46:36 +02:00
mach-versatile
mach-vexpress
mach-vt8500
mach-w90x900 ARM: w90x900: normalize clk API 2017-07-27 22:57:36 +02:00
mach-zx
mach-zynq
mm ARM: 8700/1: nommu: always reserve address 0 away 2017-10-12 11:18:17 +01:00
net arm: eBPF JIT compiler 2017-08-22 09:26:43 -07:00
nwfpe
oprofile
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung ARM: s3c24xx: Remove non-existing CONFIG_CPU_S3C2413 2017-07-20 07:17:43 +02:00
plat-versatile
probes
tools
vdso
vfp
xen This is the first pull request for the new dma-mapping subsystem 2017-07-06 19:20:54 -07:00
Kconfig Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-09-12 06:10:44 -07:00
Kconfig-nommu
Kconfig.debug Updates to for omap debug_ll code to use generic DEBUG_UART_8250 code. 2017-08-16 22:36:10 +02:00
Makefile ARM: 8701/1: fix sparse flags for build on 64bit machines 2017-10-12 11:18:19 +01:00