linux-stable/arch/mips/include/asm
Maciej W. Rozycki 3d474dacae
MIPS: Enforce strong ordering for MMIO accessors
Architecturally the MIPS ISA does not specify ordering requirements for
uncached bus accesses such as MMIO operations normally use and therefore
explicit barriers have to be inserted between MMIO accesses where
unspecified ordering of operations would cause unpredictable results.

For example the R2020 write buffer implements write gathering and
combining[1] and as used with the DECstation models 2100 and 3100 for
MMIO accesses it bypasses the read buffer entirely, because conflicts
are resolved by the memory controller for DRAM accesses only[2] (NB the
R2020 and R3020 buffers are the same except for the maximum clock rate).

Consequently if a device has say a 16-bit control register at offset 0,
a 16-bit event mask register at offset 2 and a 16-bit reset register at
offset 4, and the initial value of the control register is 0x1111, then
in the absence of barriers a hypothetical code sequence like this:

u16 init_dev(u16 __iomem *dev);
	u16 x;

	write16(dev + 2, 0xffff);
	write16(dev + 0, 0x2222);
	x = read16(dev + 0);
	write16(dev + 1, 0x3333);
	write16(dev + 0, 0x4444);

	return x;
}

will return 0x1111 and issue a single 32-bit write of 0x33334444 (in the
little-endian bus configuration) to offset 0 on the system bus.

This is because the read to set `x' from offset 0 bypasses the write of
0x2222 that is still in the write buffer pending the completion of the
write of 0xffff to the reset register.  Then the write of 0x3333 to the
event mask register is merged with the preceding write to the control
register as they share the same word address, making it a 32-bit write
of 0x33332222 to offset 0.  Finally the write of 0x4444 to the control
register is combined with the outstanding 32-bit write of 0x33332222 to
offset 0, because, again, it shares the same address.

This is an example from a legacy system, given here because it is well
documented and affects a machine we actually support.  But likewise
modern MIPS systems may implement weak MMIO ordering, possibly even
without having it clearly documented except for being compliant with the
architecture specification with respect to the currently defined SYNC
instruction variants[3].

Considering the above and that we are required to implement MMIO
accessors such that individual accesses made with them are strongly
ordered with respect to each other[4], add the necessary barriers to our
`inX', `outX', `readX' and `writeX' handlers, as well the associated
special use variants.  It's up to platforms then to possibly define the
respective barriers so as to expand to nil if no ordering enforcement is
actually needed for a given system; SYNC is supposed to be as cheap as
a NOP on strongly ordered MIPS implementations though.

Retain the option to generate weakly-ordered accessors, so that the
arrangement for `war_io_reorder_wmb' is not lost in case we need it for
fully raw accessors in the future.  The reason for this is that it is
unclear from commit 1e820da3c9 ("MIPS: Loongson-3: Introduce
CONFIG_LOONGSON3_ENHANCEMENT") and especially commit 8faca49a67
("MIPS: Modify core io.h macros to account for the Octeon Errata
Core-301.") why they are needed there under the previous assumption that
these accessors can be weakly ordered.

References:

[1] "LR3020 Write Buffer", LSI Logic Corporation, September 1988,
    Section "Byte Gathering", pp. 6-7

[2] "DECstation 3100 Desktop Workstation Functional Specification",
    Digital Equipment Corporation, Revision 1.3, August 28, 1990,
    Section 6.1 "Processor", p. 4

[3] "MIPS Architecture For Programmers, Volume II-A: The MIPS32
    Instruction Set Manual", Imagination Technologies LTD, Document
    Number: MD00086, Revision 6.06, December 15, 2016, Table 5.5
    "Encodings of the Bits[10:6] of the SYNC instruction; the SType
    Field", p. 409

[4] "LINUX KERNEL MEMORY BARRIERS", Documentation/memory-barriers.txt,
    Section "KERNEL I/O BARRIER EFFECTS"

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
References: 8faca49a67 ("MIPS: Modify core io.h macros to account for the Octeon Errata Core-301.")
References: 1e820da3c9 ("MIPS: Loongson-3: Introduce CONFIG_LOONGSON3_ENHANCEMENT")
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/20864/
Cc: Ralf Baechle <ralf@linux-mips.org>
2018-10-09 10:43:35 -07:00
..
dec
emma
fw License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ip32
lasat License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-ar7 MIPS: Make (UN)CAC_ADDR() PHYS_OFFSET-agnostic 2018-07-30 10:27:20 -07:00
mach-ath25 MIPS: ath25: use generic dma noncoherent ops 2018-06-24 09:27:27 -07:00
mach-ath79 MIPS: ath79: finetune cpu-overrides 2018-07-24 18:57:59 -07:00
mach-au1x00 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-bcm47xx MIPS: BCM47XX: Add support for Netgear WNR1000 V3 2018-04-23 16:39:34 +01:00
mach-bcm63xx bcm63xx_enet: use platform data for dma channel numbers 2017-12-19 11:07:16 -05:00
mach-bmips MIPS: bmips: use generic dma noncoherent ops 2018-06-24 09:27:27 -07:00
mach-cavium-octeon MIPS: Octeon: move swiotlb declarations out of dma-coherence.h 2018-06-24 09:26:03 -07:00
mach-cobalt MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-db1x00 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-dec MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-emma2rh
mach-generic MIPS: Allow auto-dection of ARCH_PFN_OFFSET & PHYS_OFFSET 2018-07-30 10:27:32 -07:00
mach-ip22 MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-ip27 MIPS: IP27: use dma_direct_ops 2018-06-24 09:26:04 -07:00
mach-ip28 MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-ip32 MIPS: IP32: use generic dma noncoherent ops 2018-06-24 09:27:27 -07:00
mach-jazz MIPS: jazz: split dma mapping operations from dma-default 2018-06-24 09:27:27 -07:00
mach-jz4740 MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740 2018-07-18 10:10:23 +02:00
mach-lantiq MIPS: lantiq: remove ltq_reset_cause() and ltq_boot_select() 2017-09-04 21:19:02 +02:00
mach-lasat License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-loongson32 MIPS: Loongson1: Add watchdog support for Loongson1 board 2017-01-03 16:34:42 +01:00
mach-loongson64 MIPS: Loongson-3: Enable Store Fill Buffer at runtime 2018-09-18 16:21:52 -07:00
mach-malta Update MIPS email addresses 2017-11-03 09:02:30 -07:00
mach-netlogic MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-paravirt MIPS: paravirt: Fix undefined reference to smp_bootstrap 2016-09-13 16:45:15 +02:00
mach-pic32 MIPS: Make (UN)CAC_ADDR() PHYS_OFFSET-agnostic 2018-07-30 10:27:20 -07:00
mach-pistachio MIPS: Remove all the uses of custom gpio.h 2015-09-03 12:08:02 +02:00
mach-pmcs-msp71xx
mach-pnx833x
mach-ralink License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-rc32434 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-rm MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-sibyte MIPS16e2: Provide feature overrides for non-MIPS16 systems 2017-07-11 14:13:06 +02:00
mach-tx39xx License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-tx49xx License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-vr41xx License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach-xilfpga MIPS: xilfpga: Add mipsfpga platform code 2015-11-11 08:38:44 +01:00
mips-boards License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
netlogic MIPS: netlogic: xlr: Remove erroneous check in nlm_fmn_send() 2018-08-08 09:48:32 -07:00
octeon MIPS: Octeon: Remove extern declarations. 2018-07-24 17:39:03 -07:00
pci MIPS: Fix misspellings in comments. 2016-04-03 12:32:09 +02:00
sgi License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sibyte MIPS: BCM1480: bcm1480_regs.h: strip redundant comments 2016-05-13 14:02:13 +02:00
sn License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
txx9 JFFS2 changes: 2018-08-14 10:57:44 -07:00
vr41xx
xtalk MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers 2015-06-21 21:54:21 +02:00
abi.h signals: Prepare to split out <linux/signal_types.h> from <linux/signal.h> 2017-03-02 08:42:37 +01:00
addrspace.h MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0 2016-10-06 18:02:35 +02:00
amon.h
arch_hweight.h
asm-eva.h
asm-offsets.h
asm-prototypes.h MIPS: Export tlbmiss_handler_setup_pgd near its definition 2018-08-10 17:27:51 -07:00
asm.h MIPS: Add DWARF unwinding to assembly 2017-09-06 11:01:52 +02:00
asmmacro-32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
asmmacro-64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
asmmacro.h MIPS: Fix odd fp register warnings with MIPS64r2 2017-11-10 20:58:56 +00:00
atomic.h A few MIPS fixes for 4.19: 2018-08-23 14:23:08 -07:00
barrier.h MIPS: Barrier: Add definitions of SYNC stype values 2016-10-04 16:13:57 +02:00
bcache.h MIPS: Introduce API for enabling & disabling L2 prefetch 2015-10-26 09:49:41 +01:00
bitops.h MIPS: Add nudges to writes for bit unlocks. 2017-10-09 14:53:56 +02:00
bitrev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bmips-spaces.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bmips.h MIPS: bmips: use generic dma noncoherent ops 2018-06-24 09:27:27 -07:00
bootinfo.h MIPS: platform: add machtype IDs for more Ingenic SoCs 2018-01-18 22:07:16 +00:00
branch.h MIPS: Fix unaligned PC interpretation in `compute_return_epc' 2017-06-29 02:42:26 +02:00
break.h
bug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bugs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h Revert "MIPS: Don't unnecessarily include kmalloc.h into <asm/cache.h>." 2017-08-07 12:01:17 +02:00
cacheflush.h MIPS: c-r4k: Split user/kernel flush_icache_range() 2016-10-04 16:13:57 +02:00
cacheops.h MIPS: Loongson: Add Loongson-3A R2 basic support 2016-05-13 14:02:14 +02:00
cdmm.h MIPS: CDMM: Add builtin_mips_cdmm_driver() macro 2015-11-05 11:15:41 +01:00
cevt-r4k.h MIPS: cevt-r4k: Migrate to new 'set-state' interface 2015-09-03 12:07:52 +02:00
checksum.h MIPS: Fix trailing semicolon 2018-01-24 11:17:20 +00:00
clock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clocksource.h MIPS: VDSO: Add implementations of gettimeofday() and clock_gettime() 2015-11-11 08:36:41 +01:00
cmp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cmpxchg.h MIPS changes for 4.15 2017-11-15 11:36:08 -08:00
compat-signal.h Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 11:54:55 -08:00
compat.h y2038: mips: Extend sysvipc data structures 2018-04-20 16:20:04 +02:00
compiler.h MIPS: Workaround GCC __builtin_unreachable reordering bug 2018-08-21 10:08:16 -07:00
cop2.h
cpu-features.h MIPS: Hardcode cpu_has_* where known at compile time due to ISA 2018-07-24 14:09:13 -07:00
cpu-info.h MIPS: Add CPU cluster number accessors 2017-08-30 00:57:27 +02:00
cpu-type.h MIPS: Remove unused R6000 support 2017-08-29 15:21:51 +02:00
cpu.h MIPS: Loongson: Add Loongson-3A R3.1 basic support 2018-07-23 17:53:34 -07:00
cpufeature.h MIPS: Enable GENERIC_CPU_AUTOPROBE 2017-04-10 11:56:04 +02:00
debug.h MIPS: Declare mips_debugfs_dir in a header 2015-10-26 09:49:42 +01:00
delay.h
device.h treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
div64.h
dma-coherence.h MIPS: remove CONFIG_DMA_COHERENT 2018-06-24 09:26:02 -07:00
dma-direct.h MIPS: consolidate the swiotlb implementations 2018-06-24 09:26:03 -07:00
dma-mapping.h MIPS: remove mips_swiotlb_ops 2018-07-27 15:19:59 -07:00
dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ds1287.h
dsemul.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
dsp.h
edac.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
elf.h sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
errno.h
eva.h
exec.h
extable.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fb.h
fixmap.h
floppy.h MIPS: Don't use dma_cache_sync to implement fd_cacheflush 2017-08-30 00:57:29 +02:00
fpregdef.h
fpu.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-04-06 13:16:34 -07:00
fpu_emulator.h MIPS: math-emu: Add FP emu debugfs stats for individual instructions 2017-08-29 15:21:57 +02:00
ftrace.h
futex.h futex: Remove duplicated code and fix undefined behaviour 2017-08-25 22:49:59 +02:00
gio_device.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
gt64120.h
hardirq.h
hazards.h MIPS: hazards.h: Fix typo 2016-05-28 12:35:06 +02:00
highmem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hpet.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hugetlb.h mm/hugetlb: remove arch_prepare/release_hugepage from arch headers 2015-06-25 17:00:35 -07:00
hw_irq.h
i8259.h MIPS: IRQ: Remove useless i8259_of_init() prototype. 2017-01-03 16:34:48 +01:00
ide.h
idle.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
inst.h
io.h MIPS: Enforce strong ordering for MMIO accessors 2018-10-09 10:43:35 -07:00
irq.h MIPS: Fix minimum alignment requirement of IRQ stack 2017-07-11 14:13:06 +02:00
irq_cpu.h
irq_gt641xx.h
irq_regs.h MIPS: Select CONFIG_HANDLE_DOMAIN_IRQ and make it work. 2016-05-13 14:01:40 +02:00
irqflags.h MIPS: Loongson-3: Introduce CONFIG_LOONGSON3_ENHANCEMENT 2016-05-13 14:02:15 +02:00
isa-rev.h MIPS: Introduce isa-rev.h to define MIPS_ISA_REV 2018-03-09 11:22:45 +00:00
isadep.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jazz.h
jazzdma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jump_label.h locking/static_keys: Add a new static_key interface 2015-08-03 11:34:15 +02:00
Kbuild mips: use asm-generic version of msi.h 2018-07-24 10:02:24 -07:00
kdebug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kexec.h MIPS: kexec: Relax memory restriction 2018-09-22 10:32:34 -07:00
kgdb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kmap_types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kprobes.h MIPS/kprobes: Remove jprobe implementation 2018-06-21 12:33:09 +02:00
kvm_host.h KVM: update to new mmu_notifier semantic v2 2017-08-31 16:13:00 -07:00
kvm_para.h KVM: Introduce paravirtualization hints and KVM_HINTS_DEDICATED 2018-03-06 18:40:44 +01:00
linkage.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
llsc.h MIPS: Move definitions for 32/64-bit agonstic inline assembler to new file. 2016-05-09 12:00:05 +02:00
local.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
m48t37.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
maar.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
machine.h MIPS: generic: Fix machine compatible matching 2018-02-05 10:37:48 +00:00
mc146818-time.h MIPS: Convert read_persistent_clock() to read_persistent_clock64() 2018-05-14 23:58:23 +01:00
mc146818rtc.h
mips-cm.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
mips-cpc.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
mips-cps.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
mips-gic.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
mips-r2-to-r6-emul.h MIPS: traps: Correct the SIGTRAP debug ABI in do_watch' and do_trap_or_bp' 2016-04-03 12:32:09 +02:00
mips_machine.h
mips_mt.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mipsmtregs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mipsprom.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mipsregs.h Here are the main MIPS changes for 4.19. 2018-08-13 19:24:32 -07:00
mmu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmu_context.h MIPS: Consistently declare TLB functions 2018-08-10 17:27:53 -07:00
mmzone.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msa.h MIPS: MSA: Update helpers to use new asm macros 2018-01-22 20:52:27 +00:00
msc01_ic.h
nile4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
paccess.h
page.h MIPS: Allow auto-dection of ARCH_PFN_OFFSET & PHYS_OFFSET 2018-07-30 10:27:32 -07:00
pci.h PCI: remove PCI_DMA_BUS_IS_PHYS 2018-05-07 07:15:41 +02:00
perf_event.h
pgalloc.h MIPS: do not use __GFP_REPEAT for order-0 request 2017-07-12 16:26:03 -07:00
pgtable-32.h MIPS: mm: adjust PKMAP location 2017-06-08 14:51:58 +02:00
pgtable-64.h mm, arch: remove empty_bad_page* 2017-11-15 18:21:03 -08:00
pgtable-bits.h MIPS: Allow RIXI to be used on non-R2 or R6 cores 2016-05-13 15:30:25 +02:00
pgtable.h mips: use generic_pmdp_establish as pmdp_establish 2018-01-31 17:18:37 -08:00
pm-cps.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
pm.h
pmon.h
prefetch.h
processor.h MIPS: Change definition of cpu_relax() for Loongson-3 2018-07-23 10:16:17 -07:00
prom.h MIPS: prepare for user enabling of CONFIG_OF 2015-06-21 21:54:14 +02:00
ptrace.h MIPS: ptrace: Fix regs_return_value for kernel context 2016-10-12 14:34:45 +02:00
r4k-timer.h
r4kcache.h MIPS: MT: Remove obsolete cache flush repeat code 2018-09-26 14:06:21 -07:00
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
serial.h MIPS: Add custom serial.h with BASE_BAUD override for generic kernel 2017-11-28 16:53:24 +01:00
setup.h mips: unify prom_putchar() declarations 2018-07-17 09:40:17 -07:00
sgialib.h mips: unify prom_putchar() declarations 2018-07-17 09:40:17 -07:00
sgiarcs.h MIPS: Fix misspellings in comments. 2016-04-03 12:32:09 +02:00
shmparam.h
sigcontext.h
signal.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-08-06 09:13:11 -04:00
sim.h MIPS: Remove nabi_no_regargs 2018-08-01 13:20:15 -07:00
smp-cps.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00
smp-ops.h MIPS: kexec: Make a framework for both jumping and halting on nonboot CPUs 2018-09-22 10:31:50 -07:00
smp.h MIPS: kexec: Make a framework for both jumping and halting on nonboot CPUs 2018-09-22 10:31:50 -07:00
sni.h
socket.h
sparsemem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spinlock.h locking/arch: Remove dummy arch_{read,spin,write}_lock_flags() implementations 2017-10-10 11:50:19 +02:00
spinlock_types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spram.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
stackframe.h MIPS: Fix exception entry when CONFIG_EVA enabled 2017-10-31 23:49:33 +00:00
stackprotector.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
stacktrace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string.h
switch_to.h MIPS: Cleanup LLBit handling in switch_to 2017-01-03 16:34:42 +01:00
syscall.h MIPS/ptrace: Update syscall nr on register changes 2017-11-09 15:13:58 +00:00
termios.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
thread_info.h Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
time.h MIPS: Convert update_persistent_clock() to update_persistent_clock64() 2018-05-14 23:58:23 +01:00
timex.h
tlb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlbdebug.h MIPS: Refactor dumping of TLB registers for r3k/r4k 2015-09-03 12:07:45 +02:00
tlbex.h MIPS: Consistently declare TLB functions 2018-08-10 17:27:53 -07:00
tlbflush.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlbmisc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
topology.h MIPS: Abstract CPU core & VP(E) ID access through accessor functions 2017-08-30 00:57:26 +02:00
traps.h
txx9irq.h MIPS/IRQCHIP: Move irq_chip from arch/mips to drivers/irqchip. 2015-06-21 21:52:50 +02:00
txx9pio.h
txx9tmr.h
types.h
uaccess.h MIPS: uaccess: Add micromips clobbers to bzero invocation 2018-04-18 22:02:29 +01:00
uasm.h MIPS: Add some instructions to uasm. 2017-06-28 12:22:39 +02:00
unistd.h trim __ARCH_WANT_SYS_OLD_GETRLIMIT 2017-05-27 15:38:02 -04:00
uprobes.h uprobes: remove function declarations from arch/{mips,s390} 2016-10-07 18:46:30 -07:00
vdso.h locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
vga.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vpe.h MIPS: MT: Remove "weak" from vpe_run() declaration 2015-08-26 15:23:40 +02:00
war.h
watch.h MIPS: Fix watchpoint restoration 2016-05-09 12:00:02 +02:00
wbflush.h
yamon-dt.h Update MIPS email addresses 2017-11-03 09:02:30 -07:00