1
0
Fork 0
alistair23-linux/arch/arc/include/asm
Linus Torvalds dd4e5d6106 Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb())
Remove mmiowb() from the kernel memory barrier API and instead, for
 architectures that need it, hide the barrier inside spin_unlock() when
 MMIO has been performed inside the critical section.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAlzMFaUACgkQt6xw3ITB
 YzRICQgAiv7wF/yIbBhDOmCNCAKDO59chvFQWxXWdGk/aAB56kwKAMXJgLOvlMG/
 VRuuLyParTFQETC3jaxKgnO/1hb+PZLDt2Q2KqixtjIzBypKUPWvK2sf6THhSRF1
 GK0DBVUd1rCrWrR815+SPb8el4xXtdBzvAVB+Fx35PXVNpdRdqCkK+EQ6UnXGokm
 rXXHbnfsnquBDtmb4CR4r2beH+aNElXbdt0Kj8VcE5J7f7jTdW3z6Q9WFRvdKmK7
 yrsxXXB2w/EsWXOwFp0SLTV5+fgeGgTvv8uLjDw+SG6t0E0PebxjNAflT7dPrbYL
 WecjKC9WqBxrGY+4ew6YJP70ijLBCw==
 =aC8m
 -----END PGP SIGNATURE-----

Merge tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull mmiowb removal from Will Deacon:
 "Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb())

  Remove mmiowb() from the kernel memory barrier API and instead, for
  architectures that need it, hide the barrier inside spin_unlock() when
  MMIO has been performed inside the critical section.

  The only relatively recent changes have been addressing review
  comments on the documentation, which is in a much better shape thanks
  to the efforts of Ben and Ingo.

  I was initially planning to split this into two pull requests so that
  you could run the coccinelle script yourself, however it's been plain
  sailing in linux-next so I've just included the whole lot here to keep
  things simple"

* tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (23 commits)
  docs/memory-barriers.txt: Update I/O section to be clearer about CPU vs thread
  docs/memory-barriers.txt: Fix style, spacing and grammar in I/O section
  arch: Remove dummy mmiowb() definitions from arch code
  net/ethernet/silan/sc92031: Remove stale comment about mmiowb()
  i40iw: Redefine i40iw_mmiowb() to do nothing
  scsi/qla1280: Remove stale comment about mmiowb()
  drivers: Remove explicit invocations of mmiowb()
  drivers: Remove useless trailing comments from mmiowb() invocations
  Documentation: Kill all references to mmiowb()
  riscv/mmiowb: Hook up mmwiob() implementation to asm-generic code
  powerpc/mmiowb: Hook up mmwiob() implementation to asm-generic code
  ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
  mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
  sh/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
  m68k/io: Remove useless definition of mmiowb()
  nds32/io: Remove useless definition of mmiowb()
  x86/io: Remove useless definition of mmiowb()
  arm64/io: Remove useless definition of mmiowb()
  ARM/io: Remove useless definition of mmiowb()
  mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors
  ...
2019-05-06 16:57:52 -07:00
..
Kbuild arch: Use asm-generic header for asm/mmiowb.h 2019-04-08 11:59:43 +01:00
arcregs.h ARC: boot log: cut down on verbosity 2019-02-25 15:12:23 -08:00
asm-offsets.h ARC: Generic Headers 2013-01-28 12:34:21 +05:30
atomic.h ARC: atomics: unbork atomic_fetch_##op() 2018-08-31 10:14:51 -07:00
barrier.h ARC: [plat-eznps] Use dedicated SMP barriers 2016-05-09 09:32:33 +05:30
bitops.h ARC: fix __ffs return value to avoid build warnings 2019-01-17 14:38:00 -08:00
bug.h bug.h: work around GCC PR82365 in BUG() 2018-02-21 15:35:43 -08:00
cache.h ARC: define ARCH_SLAB_MINALIGN = 8 2019-02-21 11:03:20 -08:00
cacheflush.h ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache 2016-12-19 11:55:17 -08:00
checksum.h ipv4: Update parameters for csum_tcpudp_magic to their original types 2016-03-13 23:55:13 -04:00
cmpxchg.h ARC: [plat-eznps] Use dedicated atomic/bitops/cmpxchg 2016-05-09 09:32:33 +05:30
current.h ARC: remove extraneous __KERNEL__ guards 2014-10-13 14:46:20 +05:30
delay.h arc: fix build errors in arc/include/asm/delay.h 2018-07-30 11:48:50 -07:00
disasm.h ARC: disassembly (needed by kprobes/kgdb/unaligned-access-emul) 2013-02-15 23:16:04 +05:30
dma.h ARC: Add PCI support 2016-03-10 14:44:13 -06:00
dwarf.h ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm 2016-09-30 14:48:22 -07:00
elf.h ARC: fix build warning in elf.h 2016-10-19 14:38:53 -07:00
entry-arcv2.h ARCv2: support manual regfile save on interrupts 2019-02-21 11:03:18 -08:00
entry-compact.h ARC: [arcompact] entry.S: minor code movement 2018-07-09 11:25:45 -07:00
entry.h ARC: [arcompact] entry.S: minor code movement 2018-07-09 11:25:45 -07:00
exec.h ARC: Fundamental ARCH data-types/defines 2013-02-11 20:00:34 +05:30
fb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
futex.h Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
highmem.h ARC: mm: HIGHMEM: kmap API implementation 2015-10-28 19:49:04 +05:30
hugepage.h arc: use generic_pmdp_establish as pmdp_establish 2018-01-31 17:18:37 -08:00
io.h ARC: io.h: Implement reads{x}()/writes{x}() 2018-11-30 11:26:29 -08:00
irq.h ARCv2: intc: Use runtime value of irq count for setting up intc 2017-02-06 09:37:57 -08:00
irqflags-arcv2.h ARCv2: Add explcit unaligned access support (and ability to disable too) 2019-02-25 12:10:58 -08:00
irqflags-compact.h ARC: create cpu specific version of arch_cpu_idle() 2017-08-28 15:17:36 -07:00
irqflags.h ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
kdebug.h ARC: Fundamental ARCH data-types/defines 2013-02-11 20:00:34 +05:30
kgdb.h ARC: Update order of registers in KGDB to match GDB 7.5 2014-10-13 14:46:20 +05:30
kmap_types.h ARC: mm: HIGHMEM: kmap API implementation 2015-10-28 19:49:04 +05:30
kprobes.h ARC/kprobes: Remove jprobe implementation 2018-06-21 12:33:06 +02:00
linkage.h ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm 2016-09-30 14:48:22 -07:00
mach_desc.h ARC: Enable machine_desc->init_per_cpu for !CONFIG_SMP 2018-06-20 16:12:06 -07:00
mmu.h ARCv2: PAE40: set MSB even if !CONFIG_ARC_HAS_PAE40 but PAE exists in SoC 2017-08-04 13:56:35 +05:30
mmu_context.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h> 2017-03-02 08:42:28 +01:00
mmzone.h ARC: support HIGHMEM even without PAE40 2016-05-05 16:35:46 +05:30
module.h ARC: module: Fix !CONFIG_ARC_DW2_UNWIND builds 2017-01-18 11:17:44 -08:00
page.h ARC: mm: allow mprotect to make stack mappings executable 2018-07-11 11:03:06 -07:00
pci.h PCI: remove PCI_DMA_BUS_IS_PHYS 2018-05-07 07:15:41 +02:00
perf_event.h ARC: perf: bpok condition only exists for ARCompact 2019-02-25 12:11:00 -08:00
pgalloc.h mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable.h ARC fixes for 4.18-rc6 2018-07-20 11:33:22 -07:00
processor.h treewide: remove current_text_addr 2018-10-31 08:54:12 -07:00
ptrace.h ARC: [plat-eznps] handle extra aux regs #2: kernel/entry exit 2017-08-28 15:17:36 -07:00
sections.h of/fdt: consolidate built-in dtb section variables 2014-04-30 00:59:13 -05:00
segment.h ARC: uaccess friends 2013-02-11 20:00:31 +05:30
serial.h ARC: Dynamically determine BASE_BAUD from DeviceTree 2015-02-02 17:08:37 +05:30
setup.h ARCv2: IOC: Use actual memory size to setup aperture size 2017-01-18 14:52:43 -08:00
shmparam.h ARC: [mm] Aliasing VIPT dcache support 4/4 2013-05-09 22:00:57 +05:30
smp.h ARC: IRQ: Do not use hwirq as virq and vice versa 2016-11-08 12:05:10 -08:00
spinlock.h ARCv2: spinlock: remove the extra smp_mb before lock, after unlock 2019-03-08 11:17:49 -08:00
spinlock_types.h ARC: LLOCK/SCOND based rwlock 2015-08-04 09:26:33 +05:30
stacktrace.h ARC: Make arc_unwind_core accessible externally 2015-02-27 10:15:00 +05:30
string.h ARC: remove extraneous __KERNEL__ guards 2014-10-13 14:46:20 +05:30
switch_to.h ARC: [plat-eznps] handle extra aux regs #1: save/restore on context switch 2017-08-28 15:17:36 -07:00
syscall.h syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04:00
syscalls.h ARC: syscall for userspace cmpxchg assist 2016-10-24 09:24:26 -07:00
thread_info.h Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
timex.h ARC: Timers/counters/delay management 2013-02-11 20:00:39 +05:30
tlb-mmu1.h ARC: Disintegrate arcregs.h 2013-06-22 13:46:42 +05:30
tlb.h arch/tlb: Clean up simple architectures 2019-04-03 10:32:54 +02:00
tlbflush.h ARC: thp: unbork !CONFIG_TRANSPARENT_HUGEPAGE build 2016-03-17 15:31:45 +05:30
uaccess.h ARC: uacces: remove lp_start, lp_end from clobber list 2019-02-21 11:03:17 -08:00
unaligned.h ARC: rename kconfig option for unaligned emulation 2014-10-13 14:46:15 +05:30
unwind.h ARC: dw2 unwind: Reinstante unwinding out of modules 2015-12-17 11:10:23 +05:30