linux_dsm_epyc7002/include
David S. Miller 0f05da6d57 [SPARC64]: Fix %tstate ASI handling in start_thread{,32}()
Niagara helps us find a ancient bug in the sparc64 port :-)

The ASI_* values are plain constant defines, thus signed 32-bit
on sparc64.  To put shift this into the regs->tstate value we were
doing or'ing "(ASI_PNF << 24)" into there.

ASI_PNF is 0x82 and shifted left by 24 makes that topmost bit the
sign bit in a 32-bit value.  This would get sign extended to 64-bits
and thus corrupt the top-half of the reg->tstate value.

This never caused problems in pre-Niagara cpus because the only thing
up there were the condition code values.  But Niagara has the global
register level field, and this all 1's value is illegal there so
Niagara gives an illegal instruction trap due to this bug.

I'm pretty sure this bug is about as old as the sparc64 port itself.

This also points out that we weren't setting ASI_PNF for 32-bit tasks.
We should, so fix that while we're here.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-20 01:13:57 -08:00
..
acpi [ACPI] ACPICA 20060127 2006-01-31 03:25:09 -05:00
asm-alpha [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-arm [ARM] 3364/1: [cleanup] warning fix - definitions for enable_hlt and disable_hlt 2006-03-15 23:17:26 +00:00
asm-arm26 [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-cris [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-frv [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-generic [PATCH] __get_unaligned() gcc-4 fix 2006-03-08 14:14:00 -08:00
asm-h8300 [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-i386 [PATCH] i386: port ATI timer fix from x86_64 to i386 II 2006-03-08 18:10:31 -08:00
asm-ia64 [IA64-SGI] Make number of TIO nodes configurable 2006-02-27 15:32:28 -08:00
asm-m32r [PATCH] m32r: fix and update for gcc-4.0 2006-02-24 14:31:36 -08:00
asm-m68k [PATCH] m68k: fix cmpxchg compile errors if CONFIG_RMW_INSNS=n 2006-03-09 19:47:38 -08:00
asm-m68knommu [PATCH] m68knommu: hardirq.h needs definition of NR_IRQS 2006-02-07 16:16:54 -08:00
asm-mips [MIPS] Sibyte: Fix race in sb1250_gettimeoffset(). 2006-03-18 16:59:30 +00:00
asm-parisc [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-powerpc [PATCH] powerpc: properly configure DDR/P5IOC children devs 2006-03-16 16:55:07 +11:00
asm-ppc [PATCH] powerpc: remove duplicate exports 2006-02-20 10:44:31 +11:00
asm-s390 [PATCH] s390: fix compile with VIRT_CPU_ACCOUNTING=n 2006-03-06 18:40:44 -08:00
asm-sh [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-sh64 [PATCH] sh/sh64: Fix bogus TIOCGICOUNT definitions 2006-02-01 08:53:20 -08:00
asm-sparc [SPARC]: Kill off these __put_user_ret things. 2006-03-20 01:13:15 -08:00
asm-sparc64 [SPARC64]: Fix %tstate ASI handling in start_thread{,32}() 2006-03-20 01:13:57 -08:00
asm-um [PATCH] uml: avoid "CONFIG_NR_CPUS undeclared" bogus error messages 2006-02-01 08:53:23 -08:00
asm-v850 [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
asm-x86_64 Revert "[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC assumption on IBM systems" 2006-02-27 20:41:56 -08:00
asm-xtensa [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [SPARC64]: Add SUN4V Hypervisor Console driver. 2006-03-20 01:12:18 -08:00
math-emu
media V4L/DVB (3388): tuner_params->tda988x is currently unused, so disable 2006-01-15 21:28:17 -02:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [AX.25]: Fix potencial memory hole. 2006-03-19 13:20:06 -08:00
pcmcia [PATCH] pcmcia: Add macro to match PCMCIA cards by numeric ID and first vendor string 2006-03-01 11:11:26 +01:00
rdma IB: Add node_guid to struct ib_device 2006-01-10 07:39:34 -08:00
rxrpc
scsi [PATCH] add scsi_execute_in_process_context() API 2006-02-14 11:14:26 -06:00
sound [PATCH] DocBook: fix kernel-doc comments 2006-01-10 08:01:53 -08:00
video [PATCH] neofb: avoid resetting display config on unblank (v2) 2006-02-15 15:32:21 -08:00