linux_dsm_epyc7002/arch/mips/include/asm
Maciej W. Rozycki 03dce59527 MIPS: Fix a preemption issue with thread's FPU defaults
Fix "BUG: using smp_processor_id() in preemptible" reported in accesses
to thread's FPU defaults: the value to initialise FSCR to at program
startup, the FCSR r/w mask and the contents of FIR in full FPU
emulation, removing a regression introduced with 9b26616c [MIPS: Respect
the ISA level in FCSR handling] and f6843626 [MIPS: math-emu: Set FIR
feature flags for full emulation].

Use `boot_cpu_data' to obtain the data from, following the approach that
`cpu_has_*' macros take and avoiding the call to `smp_processor_id' made
in the reference to `current_cpu_data'.  The contents of FSCR have to be
consistent across processors in an SMP system, the settings there must
not change as a thread is migrated across processors.  And the contents
of FIR are guaranteed to be consistent in FPU emulation, by definition.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Tested-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Tested-by: Paul Martin <paul.martin@codethink.co.uk>
Cc: Markos Chandras <Markos.Chandras@imgtec.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10030/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-05-12 23:15:49 +02:00
..
dec DEC: Document the R4k MB ASIC mini interrupt controller 2014-06-04 22:50:41 +02:00
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 MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-au1x00 MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-bcm47xx MIPS: BCM47xx: Devices database update for 4.1 (or 4.2?) 2015-04-02 13:54:24 +02:00
mach-bcm63xx Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-04-17 15:50:54 -04:00
mach-bmips MIPS: BMIPS: Move post DMA flush implementation to common header 2015-04-08 23:52:32 +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 MIPS: Alchemy: fold mach-db1xxx/db1x00 headers into board code 2014-03-26 23:09:21 +01:00
mach-dec MIPS: Correct `nofpu' non-functionality 2015-04-08 01:09:49 +02:00
mach-emma2rh MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +02:00
mach-generic MIPS: DMA: Allow platforms to override only the post DMA hook 2015-04-08 23:52:33 +02:00
mach-ip22 MIPS: Correct `nofpu' non-functionality 2015-04-08 01:09:49 +02:00
mach-ip27 MIPS: DMA: Implement platform hook to perform post-DMA cache flushes. 2015-04-01 17:22:01 +02:00
mach-ip28 MIPS: IP28: Fix/clean spaces.h 2014-08-26 02:18:58 +02:00
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: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +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-loongson This is the bulk of GPIO changes for the v4.1 development 2015-04-18 08:22:10 -04:00
mach-loongson1 MIPS: Create a common <asm/mach-generic/war.h> 2015-03-31 11:59:40 +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
abi.h mips: Use get_signal() signal_setup_done() 2014-08-06 13:03:08 +02:00
addrspace.h MIPS: Add NUMA support for Loongson-3 2014-07-30 21:46:19 +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 Revert "MIPS: Don't assume 64-bit FP registers for context switch" 2015-03-27 19:42:48 +01:00
atomic.h MIPS: asm: atomic: Update ISA constraints for MIPS R6 support 2015-02-17 15:37:22 +00:00
barrier.h arch: Add lightweight memory barriers dma_rmb() and dma_wmb() 2014-12-11 21:15:06 -05:00
bcache.h
bitops.h MIPS: bitops.h: Avoid inline asm for constant FLS 2015-04-08 01:09:12 +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 MIPS: fix case mismatch in local_r4k_flush_icache_range() 2014-01-15 14:19:42 +07:00
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 clk: Add common __clk_get(), __clk_put() implementations 2013-12-04 17:19:44 +01:00
clock.h MIPS: Remove declaration of obsolete arch_init_clk_ops() 2014-11-24 07:45:37 +01:00
cmp.h MIPS: SMP: Remove plat_smp_ops cpus_done method. 2014-05-27 11:06:42 +02:00
cmpxchg.h MIPS: Fall back to generic implementation of cmpxchg64 on 32-bit platforms 2015-04-01 17:21:25 +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 MIPS: Prevent compiler warning from cop2_{save,restore} 2014-10-23 19:58:13 +02:00
cpu-features.h Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +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: Add R16000 detection 2015-04-01 17:22:13 +02:00
cpu.h Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +02:00
debug.h
delay.h
device.h
div64.h
dma-coherence.h MIPS: improve checks for noncoherent DMA 2014-01-22 20:43:10 +01:00
dma-mapping.h MIPS: Use bool function return values of true/false not 1/0 2015-04-01 17:22:16 +02:00
dma.h
ds1287.h
dsp.h
edac.h MIPS: asm: Rename GCC_OFF12_ASM to GCC_OFF_SMALL_ASM 2015-02-17 15:37:21 +00: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 MIPS: EVA: Add new EVA header 2014-08-26 02:18:56 +02:00
exec.h
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_emulator.h MIPS: Respect the ISA level in FCSR handling 2015-04-08 01:10:37 +02:00
fpu.h Merge branch '4.1-fp' into mips-for-linux-next 2015-04-13 16:01:37 +02: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
gpio.h
gt64120.h
hardirq.h
hazards.h MIPS: asm: hazards: Add MIPSR6 definitions 2015-02-17 15:37:19 +00:00
highmem.h mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
hpet.h MIPS: Loongson-3: Add RS780/SBX00 HPET support 2014-11-24 07:45:02 +01:00
hugetlb.h
hw_irq.h
i8259.h
ide.h
idle.h cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic 2014-11-12 21:17:27 +01:00
inst.h
io.h MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01: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
irq.h MIPS: Read CPU IRQ line that FDC to routed to 2015-03-31 12:04:12 +02:00
irqflags.h MIPS: asm: irqflags: Add MIPS R6 related definitions 2015-02-17 15:37:20 +00: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
Kbuild MIPS: Use generic checksum functions for MIPS R6 2015-02-17 15:37:19 +00:00
kdebug.h MIPS: Clear [MSA]FPE CSR.Cause after notify_die() 2015-03-27 21:25:06 +00:00
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_host.h MIPS: KVM: Add MSA exception handling 2015-03-27 21:25:20 +00:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
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 MIPS: Initialise MAARs 2014-08-02 00:06:46 +02:00
mc146818-time.h
mc146818rtc.h
mips_machine.h
mips_mt.h MIPS: MT: Remove SMTC support 2014-05-24 00:07:01 +02:00
mips-cm.h MIPS: mips-cm: Fix sparse warnings 2015-01-13 15:53:09 +01: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
mipsmtregs.h MIPS: MT: define write_c0_tchalt macro 2014-05-28 16:20:22 +01:00
mipsprom.h
mipsregs.h MIPS: math-emu: Define IEEE 754-2008 feature control bits 2015-04-08 01:10:31 +02:00
mmu_context.h MIPS: HTW: Prevent accidental HTW start due to nested htw_{start, stop} 2015-02-16 10:55:26 +01:00
mmu.h MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS 2015-02-12 12:30:29 +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 MIPS: fix read_msa_* & write_msa_* functions on non-MSA toolchains 2014-08-02 00:06:44 +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 MIPS: Remove prototype for copy_user_page 2015-04-02 13:54:18 +02:00
pci.h MIPS: PCI: Add a hook for IORESOURCE_BUS in pci_controller/bridge_controller 2015-04-01 17:22:16 +02:00
perf_event.h
pgalloc.h mips: handle pgtable_page_ctor() fail 2013-11-15 09:32:18 +09:00
pgtable-32.h MIPS: Add support for XPA. 2015-03-19 17:39:49 +01: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: Add support for XPA. 2015-03-19 17:39:49 +01:00
pgtable.h Revert "MIPS: Remove race window in page fault handling" 2015-03-25 13:48:00 +01:00
pm-cps.h MIPS: pm-cps: add PM state entry code for CPS systems 2014-05-28 16:20:31 +01: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: MSA: Fix big-endian FPR_IDX implementation 2015-03-27 19:42:48 +01:00
prom.h MIPS: Remove unused dt_setup_arch() 2015-01-16 13:10:42 +01: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 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 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 Revert "MIPS: Save/restore MSA context around signals" 2014-06-26 10:48:18 +01:00
signal.h
sim.h
smp-cps.h MIPS: pm-cps: Prevent use of mips_cps_* without CPS SMP 2014-07-30 20:47:39 +02:00
smp-ops.h MIPS: SMP: Remove plat_smp_ops cpus_done method. 2014-05-27 11:06:42 +02:00
smp.h MIPS: SMP: Fix build error. 2015-05-12 09:13:30 +02:00
sni.h
socket.h
sparsemem.h MIPS: Add NUMA support for Loongson-3 2014-07-30 21:46:19 +02:00
spinlock_types.h
spinlock.h MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case 2015-04-10 15:41:46 +02:00
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: Make use of the ERETNC instruction on MIPS R6 2015-02-17 15:37:37 +00: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 MIPS: Implement random_get_entropy with CP0 Random 2014-05-30 18:21:30 +02:00
tlb.h MIPS: tlb: Set the EHINV bit for TLBINVF cores when invalidating the TLB 2014-01-22 20:18:59 +01:00
tlbdebug.h
tlbflush.h
tlbmisc.h
topology.h MIPS: Move CPU topology macros to topology.h 2014-08-27 13:44:44 +02:00
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h MIPS: Remove now unused definition of phys_t. 2014-11-24 22:47:31 +01:00
uaccess.h MIPS: uaccess.h: Fix strnlen_user comment. 2014-11-24 07:45:33 +01:00
uasm.h MIPS: Add MFHC0 and MTHC0 instructions to uasm. 2014-11-24 22:47:31 +01:00
unaligned.h
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
vdso.h
vga.h
vpe.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-01-30 17:20:32 -08:00
war.h
watch.h
wbflush.h