Paul Burton
1031398035
MIPS: Mask out limit field when calculating wired entry count
...
Since MIPSr6 the Wired register is split into 2 fields, with the upper
16 bits of the register indicating a limit on the value that the wired
entry count in the bottom 16 bits of the register can take. This means
that simply reading the wired register doesn't get us a valid TLB entry
index any longer, and we instead need to retrieve only the lower 16 bits
of the register. Introduce a new num_wired_entries() function which does
this on MIPSr6 or higher and simply returns the value of the wired
register on older architecture revisions, and make use of it when
reading the number of wired entries.
Since commit e710d66683 ("MIPS: tlb-r4k: If there are wired entries,
don't use TLBINVF") we have been using a non-zero number of wired
entries to determine whether we should avoid use of the tlbinvf
instruction (which would invalidate wired entries) and instead loop over
TLB entries in local_flush_tlb_all(). This loop begins with the number
of wired entries, or before this patch some large bogus TLB index on
MIPSr6 systems. Thus since the aforementioned commit some MIPSr6 systems
with FTLBs have been prone to leaving stale address translations in the
FTLB & crashing in various weird & wonderful ways when we later observe
the wrong memory.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14557/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2016-11-24 16:44:16 +01:00
..
dec
DEC: Document the R4k MB ASIC mini interrupt controller
2014-06-04 22:50:41 +02:00
emma
fw
MIPS: Malta: Remove fw_memblock_t abstraction
2015-11-11 08:35:45 +01:00
ip32
lasat
mach-ar7
MIPS: Remove all the uses of custom gpio.h
2015-09-03 12:08:02 +02:00
mach-ath25
MIPS: Remove all the uses of custom gpio.h
2015-09-03 12:08:02 +02:00
mach-ath79
irqchip/ath79-cpu: Move the CPU IRQ driver from arch/mips/ath79/
2016-02-17 13:47:19 +00:00
mach-au1x00
MIPS: Spelling fix lets -> let's
2016-05-28 12:35:09 +02:00
mach-bcm47xx
MIPS: BCM47xx: Fetch board info directly in callback function
2015-11-11 08:36:57 +01:00
mach-bcm63xx
MIPS: BCM63xx: Fix typo
2016-05-28 12:35:06 +02:00
mach-bmips
MIPS: BMIPS: Add BCM6358 support
2016-05-13 14:02:09 +02:00
mach-cavium-octeon
MIPS: Octeon: mangle-port: fix build failure with VDSO code
2016-09-19 17:21:37 +02:00
mach-cobalt
MIPS: Correct `nofpu' non-functionality
2015-04-08 01:09:49 +02:00
mach-db1x00
MIPS: Alchemy: fold mach-db1xxx/db1x00 headers into board code
2014-03-26 23:09:21 +01:00
mach-dec
MIPS: DEC: Update CPU overrides
2015-06-21 21:52:44 +02:00
mach-emma2rh
MIPS: Create a common <asm/mach-generic/war.h>
2015-03-31 11:59:40 +02:00
mach-generic
MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
2016-10-06 18:02:35 +02:00
mach-ip22
MIPS: Correct `nofpu' non-functionality
2015-04-08 01:09:49 +02:00
mach-ip27
MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
2016-10-06 18:02:35 +02:00
mach-ip28
MIPS: IP28: Fix/clean spaces.h
2014-08-26 02:18:58 +02:00
mach-ip32
MIPS: IP32: Fix typo
2016-05-28 12:35:07 +02:00
mach-jazz
MIPS: DMA: Implement platform hook to perform post-DMA cache flushes.
2015-04-01 17:22:01 +02:00
mach-jz4740
MTD updates for v4.7:
2016-05-24 11:00:20 -07:00
mach-lantiq
MIPS: Spelling fix lets -> let's
2016-05-28 12:35:09 +02:00
mach-lasat
MIPS: Create a common <asm/mach-generic/war.h>
2015-03-31 11:59:40 +02:00
mach-loongson32
MIPS: Add RTC support for Loongson1C board
2016-10-04 16:13:57 +02:00
mach-loongson64
treewide: remove redundant #include <linux/kconfig.h>
2016-10-11 15:06:33 -07:00
mach-malta
MIPS: Add definitions of SegCtl registers and use them
2016-05-28 12:35:04 +02:00
mach-netlogic
MIPS: Netlogic: Move cores per node out of multi-node.h
2015-04-01 17:21:50 +02:00
mach-paravirt
MIPS: paravirt: Fix undefined reference to smp_bootstrap
2016-09-13 16:45:15 +02:00
mach-pic32
MIPS: Add support for PIC32MZDA platform
2016-01-24 02:53:28 +01:00
mach-pistachio
MIPS: Remove all the uses of custom gpio.h
2015-09-03 12:08:02 +02:00
mach-pmcs-msp71xx
MIPS: asm: Rename GCC_OFF12_ASM to GCC_OFF_SMALL_ASM
2015-02-17 15:37:21 +00:00
mach-pnx833x
MIPS: Create a common <asm/mach-generic/war.h>
2015-03-31 11:59:40 +02:00
mach-ralink
mips: mt7620: fallback to SDRAM when syscfg0 does not have a valid value for the memory type
2016-05-13 15:39:43 +02:00
mach-rc32434
MIPS: Remove all the uses of custom gpio.h
2015-09-03 12:08:02 +02:00
mach-rm
MIPS: Correct `nofpu' non-functionality
2015-04-08 01:09:49 +02:00
mach-sibyte
MIPS: SB1: Remove support for Pass 1 parts.
2015-07-14 21:47:34 +02:00
mach-tx39xx
MIPS: Create a common <asm/mach-generic/war.h>
2015-03-31 11:59:40 +02:00
mach-tx49xx
MIPS: Replace use of phys_t with phys_addr_t.
2014-11-24 22:47:31 +01:00
mach-vr41xx
MIPS: Create a common <asm/mach-generic/war.h>
2015-03-31 11:59:40 +02:00
mach-xilfpga
MIPS: xilfpga: Add mipsfpga platform code
2015-11-11 08:38:44 +01:00
mips-boards
MIPS: SEAD3: Probe EHCI controller using DT
2016-10-05 01:31:20 +02:00
netlogic
genirq: Remove irq argument from irq flow handlers
2015-09-16 15:47:51 +02:00
octeon
MIPS: Octeon: Delete unused cvmx-mdio.h
2016-10-04 16:13:57 +02:00
pci
MIPS: Fix misspellings in comments.
2016-04-03 12:32:09 +02:00
sgi
MIPS: IP22/IP28: Fix typo
2016-05-28 12:35:08 +02:00
sibyte
MIPS: BCM1480: bcm1480_regs.h: strip redundant comments
2016-05-13 14:02:13 +02:00
sn
MIPS: Fix misspellings in comments.
2016-04-03 12:32:09 +02:00
txx9
vr41xx
xtalk
MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers
2015-06-21 21:54:21 +02:00
abi.h
MIPS: Initial implementation of a VDSO
2015-11-11 08:36:36 +01:00
addrspace.h
MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
2016-10-06 18:02:35 +02:00
amon.h
MIPS: APRP: Code formatting clean-ups.
2014-01-22 20:19:02 +01:00
arch_hweight.h
asm-eva.h
MIPS: asm: asm-eva: Introduce kernel load/store variants
2015-04-10 15:41:43 +02:00
asm-offsets.h
asm.h
MIPS: Fix gigaton of warning building with microMIPS.
2014-03-31 18:17:12 +02:00
asmmacro-32.h
Merge branch '4.1-fp' into mips-for-linux-next
2015-04-13 16:01:37 +02:00
asmmacro-64.h
MIPS: Support for 64-bit FP with O32 binaries
2014-01-13 23:40:56 +01:00
asmmacro.h
MIPS: Add a missing ".set pop" in an early commit
2016-09-13 17:25:11 +02:00
atomic.h
locking/atomic, arch/mips: Convert to _relaxed atomics
2016-06-16 10:48:34 +02: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: Move definitions for 32/64-bit agonstic inline assembler to new file.
2016-05-09 12:00:05 +02:00
bitrev.h
MIPS: Implement __arch_bitrev* using bitswap for MIPSr6
2016-05-13 14:02:17 +02:00
bmips-spaces.h
MIPS: BMIPS: Define BMIPS_FIXADDR_TOP in asm/bmips-spaces.h
2015-06-21 21:53:30 +02:00
bmips.h
MIPS: BMIPS: Add early CPU initialization code
2016-05-13 14:01:55 +02:00
bootinfo.h
MIPS: store the appended dtb address in a variable
2016-08-02 14:00:16 +02:00
branch.h
MIPS: kernel: mips-r2-to-r6-emul: Add R2 emulator for MIPS R6
2015-02-17 15:37:37 +00:00
break.h
MIPS: Quit exporting kernel internel break codes to uapi/asm/break.h
2013-02-20 18:24:24 +01:00
bug.h
bugs.h
cache.h
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
ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short
2016-03-13 23:55:13 -04:00
clock.h
MIPS: Remove declaration of obsolete arch_init_clk_ops()
2014-11-24 07:45:37 +01:00
clocksource.h
MIPS: VDSO: Add implementations of gettimeofday() and clock_gettime()
2015-11-11 08:36:41 +01:00
cmp.h
MIPS: SMP: Remove plat_smp_ops cpus_done method.
2014-05-27 11:06:42 +02:00
cmpxchg.h
arch: Remove __ARCH_HAVE_CMPXCHG
2015-05-13 10:55:42 +02:00
compat-signal.h
compat.h
MIPS: Clean up compat_siginfo_t
2015-11-12 11:35:47 +01:00
compiler.h
MIPS: Use the new "ZC" constraint for MIPS R6
2015-02-17 15:37:21 +00:00
cop2.h
MIPS: Prevent compiler warning from cop2_{save,restore}
2014-10-23 19:58:13 +02:00
cpu-features.h
lib/GCD.c: use binary GCD algorithm instead of Euclidean
2016-05-20 17:58:30 -07:00
cpu-info.h
MIPS: Add probing & defs for VZ & guest features
2016-05-13 15:30:25 +02:00
cpu-type.h
MIPS: Add CPU support for Loongson1C
2016-10-04 16:13:57 +02:00
cpu.h
MIPS: Add CPU support for Loongson1C
2016-10-04 16:13:57 +02:00
debug.h
MIPS: Declare mips_debugfs_dir in a header
2015-10-26 09:49:42 +01:00
delay.h
device.h
MIPS: Support per-device DMA coherence
2016-10-06 18:02:01 +02:00
div64.h
dma-coherence.h
MIPS: Support per-device DMA coherence
2016-10-06 18:02:01 +02:00
dma-mapping.h
MIPS: Support per-device DMA coherence
2016-10-06 18:02:01 +02:00
dma.h
ds1287.h
dsemul.h
MIPS: Use per-mm page to execute branch delay slot instructions
2016-08-02 09:28:53 +02:00
dsp.h
edac.h
EDAC: Cleanup atomic_scrub mess
2015-05-28 15:31:53 +02:00
elf.h
MIPS: non-exec stack & heap when non-exec PT_GNU_STACK is present
2016-08-02 09:29:27 +02:00
errno.h
eva.h
MIPS: EVA: Add new EVA header
2014-08-26 02:18:56 +02:00
exec.h
extable.h
mips: separate extable.h, switch module.h to it
2016-10-05 18:36:18 -04:00
fb.h
fixmap.h
MIPS: MT: Remove SMTC support
2014-05-24 00:07:01 +02:00
floppy.h
fpregdef.h
MIPS: Fix build with binutils 2.24.51+
2014-11-07 15:07:36 +01:00
fpu.h
MIPS: Fix FPU disable with preemption
2016-02-01 23:36:38 +01:00
fpu_emulator.h
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
2016-11-04 01:28:41 +01:00
ftrace.h
MIPS: ftrace: Fix a microMIPS build problem
2014-10-24 02:38:33 +02:00
futex.h
MIPS: asm: futex: Set the appropriate ISA level for MIPS R6
2015-02-17 15:37:23 +00:00
gio_device.h
MIPS: ip22-gio: Remove legacy suspend/resume support
2015-02-20 13:30:55 +01:00
gt64120.h
hardirq.h
hazards.h
MIPS: hazards.h: Fix typo
2016-05-28 12:35:06 +02:00
highmem.h
MIPS: highmem: Turn flush_cache_kmaps into a no-op.
2016-05-13 14:01:38 +02:00
hpet.h
MIPS: Loongson-3: Add RS780/SBX00 HPET support
2014-11-24 07:45:02 +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
irqchip: i8259: Remove unused i8259A_irq_pending
2016-10-06 17:31:00 +02:00
ide.h
idle.h
cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic
2014-11-12 21:17:27 +01:00
inst.h
MIPS: MIPS16e: Support handling of delay slots.
2013-05-09 17:55:20 +02:00
io.h
MIPS: Loongson-3: Introduce CONFIG_LOONGSON3_ENHANCEMENT
2016-05-13 14:02:15 +02:00
irq.h
nmi_backtrace: add more trigger_*_cpu_backtrace() methods
2016-10-07 18:46:30 -07:00
irq_cpu.h
MIPS: Rename mips_cpu_intc_init() -> mips_cpu_irq_of_init()
2014-11-24 07:44:52 +01:00
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
isadep.h
jazz.h
jazzdma.h
jump_label.h
locking/static_keys: Add a new static_key interface
2015-08-03 11:34:15 +02:00
Kbuild
MIPS: Use generic clkdev.h header
2016-05-13 14:01:58 +02:00
kdebug.h
MIPS: Add uprobes support.
2015-09-03 12:08:05 +02:00
kexec.h
mips/panic: replace smp_send_stop() with kdump friendly version in panic path
2016-10-11 15:06:32 -07:00
kgdb.h
MIPS: Get rid of 'kgdb_early_setup' cruft.
2015-06-21 21:54:10 +02:00
kmap_types.h
kprobes.h
kvm_host.h
KVM: MIPS: Precalculate MMIO load resume PC
2016-10-26 13:43:55 +02:00
kvm_para.h
MIPS: Add functions for hypervisor call
2014-05-30 21:01:11 +02:00
linkage.h
MIPS: Remove "__weak" definition from arch-specific linkage.h
2015-09-03 12:07:39 +02: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
MIPS: asm: local: Set the appropriate ISA level for MIPS R6
2015-02-17 15:37:24 +00:00
m48t37.h
maar.h
MIPS: Initialise MAARs on secondary CPUs
2015-09-27 14:15:26 +02:00
machine.h
MIPS: generic: Introduce generic DT-based board support
2016-10-06 18:04:04 +02:00
mc146818-time.h
mc146818rtc.h
mips-cm.h
MIPS: pm-cps: Support CM3 changes to Coherence Enable Register
2016-10-04 16:13:57 +02:00
mips-cpc.h
MIPS: CPC: Add start, stop and running CM3 CPC registers
2016-05-13 14:01:48 +02: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: move mips_{set,get}_machine_name() to a more generic place
2013-05-08 01:19:07 +02:00
mips_mt.h
MIPS: MT: Fix typo
2016-05-28 12:35:07 +02:00
mipsmtregs.h
MIPS: MT: define write_c0_tchalt macro
2014-05-28 16:20:22 +01:00
mipsprom.h
mipsregs.h
MIPS: Mask out limit field when calculating wired entry count
2016-11-24 16:44:16 +01:00
mmu.h
MIPS: Use per-mm page to execute branch delay slot instructions
2016-08-02 09:28:53 +02:00
mmu_context.h
MIPS: Use per-mm page to execute branch delay slot instructions
2016-08-02 09:28:53 +02:00
mmzone.h
module.h
mips: separate extable.h, switch module.h to it
2016-10-05 18:36:18 -04:00
msa.h
MIPS: Fix MSA asm warnings in control reg accessors
2016-07-24 12:45:00 +02:00
msc01_ic.h
nile4.h
mips: Update the email address of Geert Uytterhoeven
2014-06-02 16:34:41 +02:00
paccess.h
MIPS: Apply `.insn' to fixup labels throughout
2014-11-24 07:45:36 +01:00
page.h
treewide: replace config_enabled() with IS_ENABLED() (2nd round)
2016-08-26 17:39:35 -07:00
pci.h
MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
2016-10-06 18:00:05 +02:00
perf_event.h
pgalloc.h
MIPS: Squash lines for simple wrapper functions
2016-10-04 16:13:57 +02:00
pgtable-32.h
MIPS: mm: Fix MIPS32 36b physical addressing (alchemy, netlogic)
2016-05-13 15:30:25 +02:00
pgtable-64.h
MIPS64: Support of at least 48 bits of SEGBITS
2016-05-13 14:02:16 +02: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
mm: move phys_mem_access_prot_allowed() declaration to pgtable.h
2016-10-07 18:46:29 -07:00
pm-cps.h
MIPS: pm-cps: Add MIPSr6 CPU support
2016-10-04 16:13:57 +02:00
pm.h
Merge branch 'wip-mips-pm' of https://github.com/paulburton/linux into mips-for-linux-next
2014-05-29 15:08:23 +02:00
pmon.h
prefetch.h
processor.h
MIPS: Use per-mm page to execute branch delay slot instructions
2016-08-02 09:28:53 +02: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: c-r4k: Fix protected_writeback_scache_line for EVA
2016-07-29 10:19:29 +02:00
reboot.h
reg.h
MIPS: asm/reg.h: Move to uapi
2014-08-02 00:06:38 +02:00
regdef.h
rtlx.h
MIPS: APRP: Code formatting clean-ups.
2014-01-22 20:19:02 +01:00
seccomp.h
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
setup.h
MIPS: KVM: Don't hardcode restored HWREna
2016-06-15 23:58:31 +02:00
sgialib.h
MIPS: ARC: Add declarations for a few missing ARC firmware functions.
2015-01-13 16:04:28 +01:00
sgiarcs.h
MIPS: Fix misspellings in comments.
2016-04-03 12:32:09 +02:00
shmparam.h
sigcontext.h
Revert "MIPS: Save/restore MSA context around signals"
2014-06-26 10:48:18 +01:00
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
smp-cps.h
MIPS: smp-cps: Pull boot config retrieval out of mips_cps_boot_vpes
2016-05-13 14:01:50 +02:00
smp-ops.h
MIPS: Make smp CMP, CPS and MT use the new generic IPI functions
2016-02-25 10:56:58 +01:00
smp.h
MIPS: smp.c: Introduce mechanism for freeing and allocating IPIs
2016-10-05 01:31:20 +02:00
sni.h
socket.h
sparsemem.h
MIPS: Add NUMA support for Loongson-3
2014-07-30 21:46:19 +02:00
spinlock.h
locking/spinlock, arch: Update and fix spin_unlock_wait() implementations
2016-06-14 11:55:15 +02:00
spinlock_types.h
spram.h
MIPS: asm: spram: Add new symbol for MIPS scratch pad storage
2015-02-17 15:37:20 +00:00
stackframe.h
MIPS: Fix FPU disable with preemption
2016-02-01 23:36:38 +01:00
stackprotector.h
MIPS: initial stack protector support
2013-07-01 15:10:48 +02:00
stacktrace.h
string.h
switch_to.h
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
2016-11-04 01:28:41 +01:00
syscall.h
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
termios.h
thread_info.h
MIPS: Add uprobes support.
2015-09-03 12:08:05 +02:00
time.h
MIPS: Remove "weak" from get_c0_compare_int() declaration
2015-09-03 12:07:38 +02:00
timex.h
MIPS: Implement random_get_entropy with CP0 Random
2014-05-30 18:21:30 +02:00
tlb.h
MIPS: Mask out limit field when calculating wired entry count
2016-11-24 16:44:16 +01:00
tlbdebug.h
MIPS: Refactor dumping of TLB registers for r3k/r4k
2015-09-03 12:07:45 +02:00
tlbflush.h
tlbmisc.h
topology.h
sched/topology: Rename topology_thread_cpumask() to topology_sibling_cpumask()
2015-05-27 15:22:15 +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
MIPS: Remove now unused definition of phys_t.
2014-11-24 22:47:31 +01:00
uaccess.h
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2016-10-15 09:26:12 -07:00
uasm.h
MIPS: uasm: Add MTHI/MTLO instructions
2016-07-05 16:08:35 +02:00
unaligned.h
unistd.h
sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL
2014-06-04 16:54:14 -07:00
uprobes.h
uprobes: remove function declarations from arch/{mips,s390}
2016-10-07 18:46:30 -07:00
vdso.h
MIPS: VDSO: Add implementations of gettimeofday() and clock_gettime()
2015-11-11 08:36:41 +01:00
vga.h
MIPS: Fix VGA_MAP_MEM macro.
2013-09-18 17:13:58 +02: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