public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: kvm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
	borntraeger@de.ibm.com, frankja@linux.ibm.com, nsg@linux.ibm.com,
	nrb@linux.ibm.com, seiden@linux.ibm.com,
	schlameuss@linux.ibm.com, hca@linux.ibm.com, svens@linux.ibm.com,
	agordeev@linux.ibm.com, gor@linux.ibm.com, david@redhat.com,
	gerald.schaefer@linux.ibm.com
Subject: [PATCH v3 01/23] KVM: s390: Refactor pgste lock and unlock functions
Date: Thu,  6 Nov 2025 17:10:55 +0100	[thread overview]
Message-ID: <20251106161117.350395-2-imbrenda@linux.ibm.com> (raw)
In-Reply-To: <20251106161117.350395-1-imbrenda@linux.ibm.com>

Move the pgste lock and unlock functions back into mm/pgtable.c and
duplicate them in mm/gmap_helpers.c to avoid function name collisions
later on.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
 arch/s390/include/asm/pgtable.h | 22 ----------------------
 arch/s390/mm/gmap_helpers.c     | 23 ++++++++++++++++++++++-
 arch/s390/mm/pgtable.c          | 23 ++++++++++++++++++++++-
 3 files changed, 44 insertions(+), 24 deletions(-)

diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index b7100c6a4054..c1a7a92f0575 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -2055,26 +2055,4 @@ static inline unsigned long gmap_pgste_get_pgt_addr(unsigned long *pgt)
 	return res;
 }
 
-static inline pgste_t pgste_get_lock(pte_t *ptep)
-{
-	unsigned long value = 0;
-#ifdef CONFIG_PGSTE
-	unsigned long *ptr = (unsigned long *)(ptep + PTRS_PER_PTE);
-
-	do {
-		value = __atomic64_or_barrier(PGSTE_PCL_BIT, ptr);
-	} while (value & PGSTE_PCL_BIT);
-	value |= PGSTE_PCL_BIT;
-#endif
-	return __pgste(value);
-}
-
-static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste)
-{
-#ifdef CONFIG_PGSTE
-	barrier();
-	WRITE_ONCE(*(unsigned long *)(ptep + PTRS_PER_PTE), pgste_val(pgste) & ~PGSTE_PCL_BIT);
-#endif
-}
-
 #endif /* _S390_PAGE_H */
diff --git a/arch/s390/mm/gmap_helpers.c b/arch/s390/mm/gmap_helpers.c
index d4c3c36855e2..e14a63119e30 100644
--- a/arch/s390/mm/gmap_helpers.c
+++ b/arch/s390/mm/gmap_helpers.c
@@ -15,7 +15,6 @@
 #include <linux/pagewalk.h>
 #include <linux/ksm.h>
 #include <asm/gmap_helpers.h>
-#include <asm/pgtable.h>
 
 /**
  * ptep_zap_swap_entry() - discard a swap entry.
@@ -35,6 +34,28 @@ static void ptep_zap_swap_entry(struct mm_struct *mm, swp_entry_t entry)
 	free_swap_and_cache(entry);
 }
 
+static inline pgste_t pgste_get_lock(pte_t *ptep)
+{
+	unsigned long value = 0;
+#ifdef CONFIG_PGSTE
+	unsigned long *ptr = (unsigned long *)(ptep + PTRS_PER_PTE);
+
+	do {
+		value = __atomic64_or_barrier(PGSTE_PCL_BIT, ptr);
+	} while (value & PGSTE_PCL_BIT);
+	value |= PGSTE_PCL_BIT;
+#endif
+	return __pgste(value);
+}
+
+static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste)
+{
+#ifdef CONFIG_PGSTE
+	barrier();
+	WRITE_ONCE(*(unsigned long *)(ptep + PTRS_PER_PTE), pgste_val(pgste) & ~PGSTE_PCL_BIT);
+#endif
+}
+
 /**
  * gmap_helper_zap_one_page() - discard a page if it was swapped.
  * @mm: the mm
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 0fde20bbc50b..50eb57c976bc 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -24,7 +24,6 @@
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
 #include <asm/page-states.h>
-#include <asm/pgtable.h>
 #include <asm/machine.h>
 
 pgprot_t pgprot_writecombine(pgprot_t prot)
@@ -116,6 +115,28 @@ static inline pte_t ptep_flush_lazy(struct mm_struct *mm,
 	return old;
 }
 
+static inline pgste_t pgste_get_lock(pte_t *ptep)
+{
+	unsigned long value = 0;
+#ifdef CONFIG_PGSTE
+	unsigned long *ptr = (unsigned long *)(ptep + PTRS_PER_PTE);
+
+	do {
+		value = __atomic64_or_barrier(PGSTE_PCL_BIT, ptr);
+	} while (value & PGSTE_PCL_BIT);
+	value |= PGSTE_PCL_BIT;
+#endif
+	return __pgste(value);
+}
+
+static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste)
+{
+#ifdef CONFIG_PGSTE
+	barrier();
+	WRITE_ONCE(*(unsigned long *)(ptep + PTRS_PER_PTE), pgste_val(pgste) & ~PGSTE_PCL_BIT);
+#endif
+}
+
 static inline pgste_t pgste_get(pte_t *ptep)
 {
 	unsigned long pgste = 0;
-- 
2.51.1


  reply	other threads:[~2025-11-06 16:11 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-06 16:10 [PATCH v3 00/23] KVM: s390: gmap rewrite, the real deal Claudio Imbrenda
2025-11-06 16:10 ` Claudio Imbrenda [this message]
2025-11-11 11:19   ` [PATCH v3 01/23] KVM: s390: Refactor pgste lock and unlock functions Christoph Schlameuss
2025-11-06 16:10 ` [PATCH v3 02/23] KVM: s390: add P bit in table entry bitfields, move union vaddress Claudio Imbrenda
2025-11-06 16:10 ` [PATCH v3 03/23] s390: Move sske_frame() to a header Claudio Imbrenda
2025-11-06 16:10 ` [PATCH v3 04/23] KVM: s390: Add gmap_helper_set_unused() Claudio Imbrenda
2025-11-12  6:25   ` Christoph Schlameuss
2025-11-06 16:10 ` [PATCH v3 05/23] KVM: s390: Enable KVM_GENERIC_MMU_NOTIFIER Claudio Imbrenda
2025-11-13  9:46   ` Christoph Schlameuss
2025-11-06 16:11 ` [PATCH v3 06/23] KVM: s390: Rename some functions in gaccess.c Claudio Imbrenda
2025-11-13  9:52   ` Christoph Schlameuss
2025-11-06 16:11 ` [PATCH v3 07/23] KVM: s390: KVM-specific bitfields and helper functions Claudio Imbrenda
2025-11-13 10:18   ` Christoph Schlameuss
2025-11-06 16:11 ` [PATCH v3 08/23] KVM: s390: KVM page table management functions: allocation Claudio Imbrenda
2025-11-20  8:50   ` Heiko Carstens
2025-11-06 16:11 ` [PATCH v3 09/23] KVM: s390: KVM page table management functions: clear and replace Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 10/23] KVM: s390: KVM page table management functions: walks Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 11/23] KVM: s390: KVM page table management functions: storage keys Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 12/23] KVM: s390: KVM page table management functions: lifecycle management Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 13/23] KVM: s390: KVM page table management functions: CMMA Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 14/23] KVM: s390: New gmap code Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 15/23] KVM: s390: Add helper functions for fault handling Claudio Imbrenda
2025-11-18 15:10   ` Heiko Carstens
2025-11-19 11:06     ` Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 16/23] KVM: s390: Add some helper functions needed for vSIE Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 17/23] KVM: s390: Stop using CONFIG_PGSTE Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 18/23] KVM: s390: Switch to new gmap Claudio Imbrenda
2025-11-18 15:14   ` Heiko Carstens
2025-11-19 11:12     ` Claudio Imbrenda
2025-11-19 13:00     ` Claudio Imbrenda
2025-11-18 15:18   ` Heiko Carstens
2025-11-19 11:13     ` Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 19/23] KVM: s390: Remove gmap from s390/mm Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 20/23] KVM: S390: Remove PGSTE code from linux/s390 mm Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 21/23] KVM: s390: Enable 1M pages for gmap Claudio Imbrenda
2025-11-06 16:22   ` Christian Borntraeger
2025-11-06 16:36     ` Claudio Imbrenda
2025-11-06 16:37       ` Christian Borntraeger
2025-11-06 16:11 ` [PATCH v3 22/23] KVM: s390: Storage key manipulation IOCTL Claudio Imbrenda
2025-11-06 16:11 ` [PATCH v3 23/23] KVM: s390: Fix storage key memop IOCTLs Claudio Imbrenda
2025-11-18 15:28 ` [PATCH v3 00/23] KVM: s390: gmap rewrite, the real deal Heiko Carstens
2025-11-19 11:14   ` Claudio Imbrenda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251106161117.350395-2-imbrenda@linux.ibm.com \
    --to=imbrenda@linux.ibm.com \
    --cc=agordeev@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=nsg@linux.ibm.com \
    --cc=schlameuss@linux.ibm.com \
    --cc=seiden@linux.ibm.com \
    --cc=svens@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox