linux/arch/mips/include/asm
Markos Chandras cccf34e941 MIPS: c-r4k: Fix cache flushing for MT cores
MT_SMP is not the only SMP option for MT cores. The MT_SMP option
allows more than one VPE per core to appear as a secondary CPU in the
system. Because of how CM works, it propagates the address-based
cache ops to the secondary cores but not the index-based ones.
Because of that, the code does not use IPIs to flush the L1 caches on
secondary cores because the CM would have done that already. However,
the CM functionality is independent of the type of SMP kernel so even in
non-MT kernels, IPIs are not necessary. As a result of which, we change
the conditional to depend on the CM presence. Moreover, since VPEs on
the same core share the same L1 caches, there is no need to send an
IPI on all of them so we calculate a suitable cpumask with only one
VPE per core.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # 3.15+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10654/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-07-10 10:59:16 +02:00
..
dec
emma
fw MIPS: ARC: Fix build error. 2015-01-19 13:09:52 +01:00
ip32
lasat
mach-ar7 MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-ath25 MIPS: DMA: Implement platform hook to perform post-DMA cache flushes. 2015-04-01 17:22:01 +02:00
mach-ath79 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-06-27 12:44:34 -07:00
mach-au1x00 MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-bcm47xx MIPS: BCM47XX: Support Luxul XWR-1750 board 2015-06-21 21:53:53 +02:00
mach-bcm63xx MIPS: BCM63xx: Utilize asm/bmips-spaces.h 2015-06-21 21:53:32 +02:00
mach-bmips MIPS: BMIPS: Define BMIPS_FIXADDR_TOP in asm/bmips-spaces.h 2015-06-21 21:53:30 +02:00
mach-cavium-octeon Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +02:00
mach-cobalt MIPS: Correct `nofpu' non-functionality 2015-04-08 01:09:49 +02:00
mach-db1x00
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: Fix KVM guest fixmap address 2015-06-21 21:53:54 +02:00
mach-ip22 MIPS: Correct `nofpu' non-functionality 2015-04-08 01:09:49 +02:00
mach-ip27 MIPS: IP27: Update/restructure CPU overrides 2015-06-21 21:54:13 +02:00
mach-ip28
mach-ip32 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-04-17 15:50:54 -04:00
mach-jazz MIPS: DMA: Implement platform hook to perform post-DMA cache flushes. 2015-04-01 17:22:01 +02:00
mach-jz4740 MIPS: ingenic: Initial JZ4780 support 2015-06-21 21:53:26 +02:00
mach-lantiq MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-lasat MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-loongson32 MIPS: Loongson: Naming style cleanup and rework 2015-06-21 21:53:59 +02:00
mach-loongson64 MIPS, CPUFREQ: Fix spelling of Institute. 2015-07-07 20:59:42 +02:00
mach-malta irqchip: mips-gic: Probe for number of external interrupts 2014-11-24 07:44:56 +01: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: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-pistachio MIPS: Add support for the IMG Pistachio SoC 2015-03-31 12:04:12 +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: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-rc32434
mach-rm MIPS: Correct `nofpu' non-functionality 2015-04-08 01:09:49 +02:00
mach-sead3 irqchip: mips-gic: Probe for number of external interrupts 2014-11-24 07:44:56 +01:00
mach-sibyte
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
mips-boards MIPS: SEAD3: New header file sead3-addr.h with hardware addresses. 2015-04-01 17:22:07 +02:00
netlogic MIPS: Netlogic: Add irq mapping and setup for XHCI port 3 2015-04-01 17:21:53 +02:00
octeon Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +02:00
pci MIPS: PCI: Add a hook for IORESOURCE_BUS in pci_controller/bridge_controller 2015-04-01 17:22:16 +02:00
sgi MIPS: Update arch/mips/include/asm/sgi/sgi.h 2015-04-01 17:21:56 +02:00
sibyte
sn
txx9
vr41xx
xtalk MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers 2015-06-21 21:54:21 +02:00
Kbuild remove scatterlist.h generation from arch Kbuild files 2015-05-19 09:14:34 -06:00
abi.h
addrspace.h
amon.h
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
asmmacro-32.h Merge branch '4.1-fp' into mips-for-linux-next 2015-04-13 16:01:37 +02:00
asmmacro-64.h
asmmacro.h MIPS: asmmacro: Ensure 64-bit FP registers are used with MSA 2015-06-24 14:45:17 +02:00
atomic.h MIPS: asm: atomic: Update ISA constraints for MIPS R6 support 2015-02-17 15:37:22 +00:00
barrier.h locking/arch: Rename set_mb() to smp_store_mb() 2015-05-19 08:32:00 +02:00
bcache.h
bitops.h MIPS: Replace smp_mb with release barrier function in unlocks. 2015-06-21 21:54:30 +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: Move post DMA flush implementation to common header 2015-04-08 23:52:32 +02:00
bootinfo.h MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01: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
bug.h
bugs.h
cache.h
cacheflush.h MIPS: Fix race condition in lazy cache flushing. 2015-03-25 13:48:00 +01:00
cacheops.h
cdmm.h MIPS, ttyFDC: Add early FDC console support 2015-03-31 12:04:12 +02:00
cevt-r4k.h MIPS: cevt-r4k: Move handle_perf_irq() out of header 2015-03-31 12:04:12 +02:00
checksum.h MIPS: LLVMLinux: Fix an 'inline asm input/output type mismatch' error. 2015-04-01 17:21:47 +02:00
clkdev.h
clock.h MIPS: Remove declaration of obsolete arch_init_clk_ops() 2014-11-24 07:45:37 +01:00
cmp.h
cmpxchg.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
compat-signal.h
compat.h
compiler.h MIPS: Use the new "ZC" constraint for MIPS R6 2015-02-17 15:37:21 +00:00
cop2.h
cpu-features.h MIPS: R12000: Enable branch prediction global history 2015-06-21 21:54:13 +02:00
cpu-info.h MIPS: Respect the ISA level in FCSR handling 2015-04-08 01:10:37 +02:00
cpu-type.h MIPS: ingenic: Initial JZ4780 support 2015-06-21 21:53:26 +02:00
cpu.h MIPS: R12000: Enable branch prediction global history 2015-06-21 21:54:13 +02:00
debug.h
delay.h
device.h
div64.h
dma-coherence.h
dma-mapping.h remove <asm/scatterlist.h> 2015-05-05 13:35:39 -06:00
dma.h
ds1287.h
dsp.h
edac.h EDAC: Cleanup atomic_scrub mess 2015-05-28 15:31:53 +02:00
elf.h MIPS: Fix a preemption issue with thread's FPU defaults 2015-05-12 23:15:49 +02:00
errno.h
eva.h
exec.h
fb.h
fixmap.h
floppy.h
fpregdef.h
fpu.h Merge branch '4.1-fp' into mips-for-linux-next 2015-04-13 16:01:37 +02:00
fpu_emulator.h MIPS: Respect the ISA level in FCSR handling 2015-04-08 01:10:37 +02:00
ftrace.h
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
gpio.h
gt64120.h
hardirq.h
hazards.h MIPS: hazards: Add hazard macros for tlb read 2015-06-21 21:52:28 +02:00
highmem.h
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 MIPS: i8259: DT support 2015-06-21 21:54:29 +02:00
ide.h
idle.h
inst.h
io.h MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
irq.h MIPS: Read CPU IRQ line that FDC to routed to 2015-03-31 12:04:12 +02: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
irqflags.h MIPS/IRQCHIP: Move irq_chip from arch/mips to drivers/irqchip. 2015-06-21 21:52:50 +02:00
isadep.h
jazz.h
jazzdma.h
jump_label.h jump_label: Allow asm/jump_label.h to be included in assembly 2015-04-09 09:40:23 +02:00
kdebug.h MIPS: Clear [MSA]FPE CSR.Cause after notify_die() 2015-03-27 21:25:06 +00:00
kexec.h
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: add memslots argument to kvm_arch_memslots_updated 2015-05-26 12:40:17 +02:00
kvm_para.h
linkage.h
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
mc146818-time.h
mc146818rtc.h
mips-cm.h MIPS: include errno.h for ENODEV in mips-cm.h 2015-06-21 21:54:28 +02:00
mips-cpc.h MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
mips-r2-to-r6-emul.h MIPS: Set `si_code' for SIGFPE signals sent from emulation too 2015-04-08 01:10:19 +02:00
mips_machine.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: R12000: Enable branch prediction global history 2015-06-21 21:54:13 +02:00
mm-arch-hooks.h mm: new mm hook framework 2015-06-24 17:49:41 -07:00
mmu.h MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS 2015-02-12 12:30:29 +01:00
mmu_context.h MIPS: HTW: Prevent accidental HTW start due to nested htw_{start, stop} 2015-02-16 10:55:26 +01:00
mmzone.h
module.h MIPS: asm: module: define MODULE_PROC_FAMILY for MIPS R6 2015-02-17 15:37:17 +00:00
msa.h
msc01_ic.h
nile4.h
paccess.h MIPS: Apply `.insn' to fixup labels throughout 2014-11-24 07:45:36 +01:00
page.h MIPS: Remove prototype for copy_user_page 2015-04-02 13:54:18 +02:00
pci.h Merge branch 'for-4.2/sg' of git://git.kernel.dk/linux-block 2015-06-25 15:22:36 -07:00
perf_event.h
pgalloc.h
pgtable-32.h MIPS: BCM77xx: Remove legacy __cpuinit{,data} sections that crept in 2015-06-21 21:53:42 +02:00
pgtable-64.h MIPS: Expand __swp_offset() to carry 40 significant bits for 64-bit kernel. 2015-04-01 17:21:59 +02:00
pgtable-bits.h MIPS: pgtable-bits: Fix XPA damage to R6 definitions. 2015-06-09 10:45:05 +02:00
pgtable.h mm: clarify that the function operates on hugepage pte 2015-06-24 17:49:44 -07:00
pm-cps.h
pm.h
pmon.h
prefetch.h
processor.h MIPS: MSA: Fix big-endian FPR_IDX implementation 2015-03-27 19:42:48 +01:00
prom.h MIPS: prepare for user enabling of CONFIG_OF 2015-06-21 21:54:14 +02:00
ptrace.h MIPS: OCTEON: Save/Restore wider multiply registers in OCTEON III CPUs 2015-02-20 15:28:29 +01:00
r4k-timer.h
r4kcache.h MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes 2015-04-10 15:41:46 +02:00
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h mips: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
setup.h
sgialib.h MIPS: ARC: Add declarations for a few missing ARC firmware functions. 2015-01-13 16:04:28 +01:00
sgiarcs.h
shmparam.h
sigcontext.h
signal.h
sim.h
smp-cps.h
smp-ops.h
smp.h MIPS: c-r4k: Fix cache flushing for MT cores 2015-07-10 10:59:16 +02:00
sni.h
socket.h
sparsemem.h
spinlock.h MIPS: spinlock: Adjust arch_spin_lock back-off time 2015-06-24 14:57:46 +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: asm: stackframe: Do not preserve the HI/LO registers on MIPS R6 2015-02-17 15:37:17 +00:00
stackprotector.h
stacktrace.h
string.h
switch_to.h MIPS: MSA: bugfix - disable MSA correctly for new threads/processes. 2015-06-10 11:24:53 +02:00
syscall.h MIPS: Fix syscall_get_nr for the syscall exit tracing. 2015-02-04 16:40:09 +01:00
termios.h
thread_info.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-04-17 15:50:54 -04:00
time.h clocksource: mips-gic: Use CPU notifiers to setup the timer 2014-11-24 07:45:16 +01:00
timex.h
tlb.h
tlbdebug.h
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 2015-06-27 12:44:34 -07:00
uasm.h MIPS: Add MFHC0 and MTHC0 instructions to uasm. 2014-11-24 22:47:31 +01:00
unaligned.h
unistd.h
vdso.h
vga.h
vpe.h
war.h
watch.h
wbflush.h