Skip to contentSkip to conversation

parisc: Fix set_fixmap() on PA1.x CPUs

PATCH In review Helge Deller 2 participants 2 messages Nov 13, 2021 – Nov 15, 2021

Subsystems (2)
lore
Share & tools
lore

Helge Deller

author maintainer
#0 lore raw

PATCH 1/1 parisc: Fix set_fixmap() on PA1.x CPUs

Upstream commit 6e866a462867b60841202e900f10936a0478608c failed to apply to kernel v5.2 up to v5.4.
Below is the fixed backport patch.
Please apply to v5.2 up to v5.4.

Thanks,
Helge

--------------------
From: Helge Deller <[email protected]>
Date: Sun, 31 Oct 2021 21:58:12 +0100
Subject: [PATCH] parisc: Fix set_fixmap() on PA1.x CPUs

Upstream commit: 6e866a462867b60841202e900f10936a0478608c

Fix a kernel crash which happens on PA1.x CPUs while initializing the FTRACE/KPROBE breakpoints. The PTE table entries for the fixmap area were not created correctly.

Fixes ccfbc68d41c2 ("parisc: add set_fixmap()/clear_fixmap()")
arch/parisc/mm/fixmap.c +1 -4
index 474cd241c150..02e19a32e6c5 100644
@@ -18,12 +18,9 @@ void notrace set_fixmap(enum fixed_addresses idx, phys_addr_t phys)
 	pte_t *pte;
 
 	if (pmd_none(*pmd))
-		pmd = pmd_alloc(NULL, pgd, vaddr);
-
-	pte = pte_offset_kernel(pmd, vaddr);
-	if (pte_none(*pte))
 		pte = pte_alloc_kernel(pmd, vaddr);
 
+	pte = pte_offset_kernel(pmd, vaddr);
 	set_pte_at(&init_mm, vaddr, pte, __mk_pte(phys, PAGE_KERNEL_RWX));
 	flush_tlb_kernel_range(vaddr, vaddr + PAGE_SIZE);
 }
maintainer
#1 lore raw
Quoted 4 lines · Helge Deller

Upstream commit 6e866a462867b60841202e900f10936a0478608c failed to apply to kernel v5.2 up to v5.4.
Below is the fixed backport patch.
Please apply to v5.2 up to v5.4.

Now queued up, thanks.

greg k-h