[GIT PULL] s390 updates for 6.18-rc6

Heiko Carstens posted 1 patch 2 months, 3 weeks ago
arch/s390/include/asm/pgtable.h | 12 +++++-------
arch/s390/mm/pgtable.c          |  4 ++--
2 files changed, 7 insertions(+), 9 deletions(-)
[GIT PULL] s390 updates for 6.18-rc6
Posted by Heiko Carstens 2 months, 3 weeks ago
Hi Linus,

please pull a single fix for 6.18-rc6.

Thanks,
Heiko

The following changes since commit 64e2f60f355e556337fcffe80b9bcff1b22c9c42:

  s390: Disable ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP (2025-10-30 16:59:28 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.18-4

for you to fetch changes up to 31475b88110c4725b4f9a79c3a0d9bbf97e69e1c:

  s390/mm: Fix __ptep_rdp() inline assembly (2025-11-14 15:58:20 +0100)

----------------------------------------------------------------
s390 fixes for 6.18-rc6

- Fix a bug in the __ptep_rdp() inline assembly which may lead to
  missing TLB flushes

----------------------------------------------------------------
Heiko Carstens (1):
      s390/mm: Fix __ptep_rdp() inline assembly

 arch/s390/include/asm/pgtable.h | 12 +++++-------
 arch/s390/mm/pgtable.c          |  4 ++--
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index b7100c6a4054..6663f1619abb 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -1154,17 +1154,15 @@ static inline pte_t pte_mkhuge(pte_t pte)
 #define IPTE_NODAT	0x400
 #define IPTE_GUEST_ASCE	0x800
 
-static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep,
-				       unsigned long opt, unsigned long asce,
-				       int local)
+static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep, int local)
 {
 	unsigned long pto;
 
 	pto = __pa(ptep) & ~(PTRS_PER_PTE * sizeof(pte_t) - 1);
-	asm volatile(".insn rrf,0xb98b0000,%[r1],%[r2],%[asce],%[m4]"
+	asm volatile(".insn	rrf,0xb98b0000,%[r1],%[r2],%%r0,%[m4]"
 		     : "+m" (*ptep)
-		     : [r1] "a" (pto), [r2] "a" ((addr & PAGE_MASK) | opt),
-		       [asce] "a" (asce), [m4] "i" (local));
+		     : [r1] "a" (pto), [r2] "a" (addr & PAGE_MASK),
+		       [m4] "i" (local));
 }
 
 static __always_inline void __ptep_ipte(unsigned long address, pte_t *ptep,
@@ -1348,7 +1346,7 @@ static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma,
 	 * A local RDP can be used to do the flush.
 	 */
 	if (cpu_has_rdp() && !(pte_val(*ptep) & _PAGE_PROTECT))
-		__ptep_rdp(address, ptep, 0, 0, 1);
+		__ptep_rdp(address, ptep, 1);
 }
 #define flush_tlb_fix_spurious_fault flush_tlb_fix_spurious_fault
 
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 0fde20bbc50b..05974304d622 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -274,9 +274,9 @@ void ptep_reset_dat_prot(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
 	preempt_disable();
 	atomic_inc(&mm->context.flush_count);
 	if (cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id())))
-		__ptep_rdp(addr, ptep, 0, 0, 1);
+		__ptep_rdp(addr, ptep, 1);
 	else
-		__ptep_rdp(addr, ptep, 0, 0, 0);
+		__ptep_rdp(addr, ptep, 0);
 	/*
 	 * PTE is not invalidated by RDP, only _PAGE_PROTECT is cleared. That
 	 * means it is still valid and active, and must not be changed according
Re: [GIT PULL] s390 updates for 6.18-rc6
Posted by pr-tracker-bot@kernel.org 2 months, 3 weeks ago
The pull request you sent on Sat, 15 Nov 2025 17:22:11 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.18-4

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/f824272b6e3fe24950abc527136e8140f67b0b23

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html