linux-next/arch
Helge Deller 70be49f2f6 parisc: Fix userspace graphics card breakage due to pgtable special bit
Commit df24e1783e ("parisc: Add vDSO support") introduced the vDSO
support, for which a _PAGE_SPECIAL page table flag was needed.  Since we
wanted to keep every page table entry in 32-bits, this patch re-used the
existing - but yet unused - _PAGE_DMB flag (which triggers a hardware break
if a page is accessed) to store the special bit.

But when graphics card memory is mmapped into userspace, the kernel uses
vm_iomap_memory() which sets the the special flag. So, with the DMB bit
set, every access to the graphics memory now triggered a hardware
exception and segfaulted the userspace program.

Fix this breakage by dropping the DMB bit when writing the page
protection bits to the CPU TLB.

In addition this patch adds a small optimization: if huge pages aren't
configured (which is at least the case for 32-bit kernels), then the
special bit is stored in the hpage (HUGE PAGE) bit instead. That way we
can skip to reset the DMB bit.

Fixes: df24e1783e ("parisc: Add vDSO support")
Cc: <stable@vger.kernel.org> # 5.18+
Signed-off-by: Helge Deller <deller@gmx.de>
2022-10-14 10:45:12 +02:00
..
alpha provide arch_test_bit_acquire for architectures that define test_bit 2022-08-27 09:49:54 -07:00
arc Kbuild updates for v5.20 2022-08-10 10:40:41 -07:00
arm ARM: SoC fixes for 6.0-rc7 2022-09-27 16:49:42 -07:00
arm64 ARM: SoC fixes for 6.0-rc7 2022-09-27 16:49:42 -07:00
csky Merge 'irq/loongarch', 'pci/ctrl/loongson' and 'pci/header-cleanup-immutable' 2022-08-11 21:06:14 +08:00
hexagon provide arch_test_bit_acquire for architectures that define test_bit 2022-08-27 09:49:54 -07:00
ia64 provide arch_test_bit_acquire for architectures that define test_bit 2022-08-27 09:49:54 -07:00
loongarch LoongArch: Clean up loongson3_smp_ops declaration 2022-09-29 10:15:00 +08:00
m68k provide arch_test_bit_acquire for architectures that define test_bit 2022-08-27 09:49:54 -07:00
microblaze - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
mips MIPS: Loongson32: Fix PHY-mode being left unspecified 2022-09-19 16:31:32 +02:00
nios2 nios2: add force_successful_syscall_return() 2022-08-15 11:25:32 -05:00
openrisc Updates to various subsystems which I help look after. lib, ocfs2, 2022-08-07 10:03:24 -07:00
parisc parisc: Fix userspace graphics card breakage due to pgtable special bit 2022-10-14 10:45:12 +02:00
powerpc 26 hotfixes. 8 are for issues which were introduced during this -rc 2022-09-26 13:23:15 -07:00
riscv RISC-V Fixes for 6.0-rc7 2022-09-23 08:51:05 -07:00
s390 KVM: s390: pci: register pci hooks without interpretation 2022-09-21 16:18:38 +02:00
sh asm-generic: Conditionally enable do_softirq_own_stack() via Kconfig. 2022-09-05 17:20:55 +02:00
sparc asm-generic: Conditionally enable do_softirq_own_stack() via Kconfig. 2022-09-05 17:20:55 +02:00
um arch: um: Mark the stack non-executable to fix a binutils warning 2022-09-21 09:11:42 +02:00
x86 Misc fixes: 2022-10-02 09:41:27 -07:00
xtensa Merge 'irq/loongarch', 'pci/ctrl/loongson' and 'pci/header-cleanup-immutable' 2022-08-11 21:06:14 +08:00
.gitignore
Kconfig asm-generic: Conditionally enable do_softirq_own_stack() via Kconfig. 2022-09-05 17:20:55 +02:00