linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Pasha Tatashin <pasha.tatashin@soleen.com>
To: pasha.tatashin@soleen.com, jmorris@namei.org, sashal@kernel.org,
	ebiederm@xmission.com, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, corbet@lwn.net,
	catalin.marinas@arm.com, will@kernel.org,
	linux-arm-kernel@lists.infradead.org, maz@kernel.org,
	james.morse@arm.com, vladimir.murzin@arm.com,
	matthias.bgg@gmail.com, linux-mm@kvack.org, mark.rutland@arm.com,
	steve.capper@arm.com, rfontana@redhat.com, tglx@linutronix.de,
	selindag@gmail.com, tyhicks@linux.microsoft.com,
	kernelfans@gmail.com, akpm@linux-foundation.org,
	madvenka@linux.microsoft.com
Subject: [PATCH v17 15/15] arm64: trans_pgd: remove trans_pgd_map_page()
Date: Thu, 16 Sep 2021 19:13:25 -0400	[thread overview]
Message-ID: <20210916231325.125533-16-pasha.tatashin@soleen.com> (raw)
In-Reply-To: <20210916231325.125533-1-pasha.tatashin@soleen.com>

The intend of trans_pgd_map_page() was to map contiguous range of VA
memory to the memory that is getting relocated during kexec. However,
since we are now using linear map instead of contiguous range this
function is not needed

Suggested-by: Pingfan Liu <kernelfans@gmail.com>
Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com>
---
 arch/arm64/include/asm/trans_pgd.h |  5 +--
 arch/arm64/mm/trans_pgd.c          | 57 ------------------------------
 2 files changed, 1 insertion(+), 61 deletions(-)

diff --git a/arch/arm64/include/asm/trans_pgd.h b/arch/arm64/include/asm/trans_pgd.h
index 7b04d32b102c..033d400a4ea4 100644
--- a/arch/arm64/include/asm/trans_pgd.h
+++ b/arch/arm64/include/asm/trans_pgd.h
@@ -15,7 +15,7 @@
 /*
  * trans_alloc_page
  *	- Allocator that should return exactly one zeroed page, if this
- *	  allocator fails, trans_pgd_create_copy() and trans_pgd_map_page()
+ *	  allocator fails, trans_pgd_create_copy() and trans_pgd_idmap_page()
  *	  return -ENOMEM error.
  *
  * trans_alloc_arg
@@ -30,9 +30,6 @@ struct trans_pgd_info {
 int trans_pgd_create_copy(struct trans_pgd_info *info, pgd_t **trans_pgd,
 			  unsigned long start, unsigned long end);
 
-int trans_pgd_map_page(struct trans_pgd_info *info, pgd_t *trans_pgd,
-		       void *page, unsigned long dst_addr, pgprot_t pgprot);
-
 int trans_pgd_idmap_page(struct trans_pgd_info *info, phys_addr_t *trans_ttbr0,
 			 unsigned long *t0sz, void *page);
 
diff --git a/arch/arm64/mm/trans_pgd.c b/arch/arm64/mm/trans_pgd.c
index 26bd8f2d95af..d7da8ca40d2e 100644
--- a/arch/arm64/mm/trans_pgd.c
+++ b/arch/arm64/mm/trans_pgd.c
@@ -217,63 +217,6 @@ int trans_pgd_create_copy(struct trans_pgd_info *info, pgd_t **dst_pgdp,
 	return rc;
 }
 
-/*
- * Add map entry to trans_pgd for a base-size page at PTE level.
- * info:	contains allocator and its argument
- * trans_pgd:	page table in which new map is added.
- * page:	page to be mapped.
- * dst_addr:	new VA address for the page
- * pgprot:	protection for the page.
- *
- * Returns 0 on success, and -ENOMEM on failure.
- */
-int trans_pgd_map_page(struct trans_pgd_info *info, pgd_t *trans_pgd,
-		       void *page, unsigned long dst_addr, pgprot_t pgprot)
-{
-	pgd_t *pgdp;
-	p4d_t *p4dp;
-	pud_t *pudp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	pgdp = pgd_offset_pgd(trans_pgd, dst_addr);
-	if (pgd_none(READ_ONCE(*pgdp))) {
-		p4dp = trans_alloc(info);
-		if (!pgdp)
-			return -ENOMEM;
-		pgd_populate(NULL, pgdp, p4dp);
-	}
-
-	p4dp = p4d_offset(pgdp, dst_addr);
-	if (p4d_none(READ_ONCE(*p4dp))) {
-		pudp = trans_alloc(info);
-		if (!pudp)
-			return -ENOMEM;
-		p4d_populate(NULL, p4dp, pudp);
-	}
-
-	pudp = pud_offset(p4dp, dst_addr);
-	if (pud_none(READ_ONCE(*pudp))) {
-		pmdp = trans_alloc(info);
-		if (!pmdp)
-			return -ENOMEM;
-		pud_populate(NULL, pudp, pmdp);
-	}
-
-	pmdp = pmd_offset(pudp, dst_addr);
-	if (pmd_none(READ_ONCE(*pmdp))) {
-		ptep = trans_alloc(info);
-		if (!ptep)
-			return -ENOMEM;
-		pmd_populate_kernel(NULL, pmdp, ptep);
-	}
-
-	ptep = pte_offset_kernel(pmdp, dst_addr);
-	set_pte(ptep, pfn_pte(virt_to_pfn(page), pgprot));
-
-	return 0;
-}
-
 /*
  * The page we want to idmap may be outside the range covered by VA_BITS that
  * can be built using the kernel's p?d_populate() helpers. As a one off, for a
-- 
2.25.1



  parent reply	other threads:[~2021-09-16 23:13 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-16 23:13 [PATCH v17 00/15] arm64: MMU enabled kexec relocation Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 01/15] arm64: kernel: add helper for booted at EL2 and not VHE Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 02/15] arm64: trans_pgd: hibernate: Add trans_pgd_copy_el2_vectors Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 03/15] arm64: hibernate: abstract ttrb0 setup function Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 04/15] arm64: kexec: flush image and lists during kexec load time Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 05/15] arm64: kexec: skip relocation code for inplace kexec Pasha Tatashin
2021-09-29 12:13   ` Will Deacon
2021-09-30  2:44     ` Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 06/15] arm64: kexec: Use dcache ops macros instead of open-coding Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 07/15] arm64: kexec: pass kimage as the only argument to relocation function Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 08/15] arm64: kexec: configure EL2 vectors for kexec Pasha Tatashin
2021-09-29 12:35   ` Will Deacon
2021-09-30  3:54     ` Pasha Tatashin
2021-09-30  8:16       ` Will Deacon
2021-09-30 11:59         ` Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 09/15] arm64: kexec: relocate in EL1 mode Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 10/15] arm64: kexec: use ld script for relocation function Pasha Tatashin
2021-09-29 12:45   ` Will Deacon
2021-09-30  3:57     ` Pasha Tatashin
2021-09-30  4:08     ` Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 11/15] arm64: kexec: install a copy of the linear-map Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 12/15] arm64: kexec: keep MMU enabled during kexec relocation Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 13/15] arm64: kexec: remove the pre-kexec PoC maintenance Pasha Tatashin
2021-09-16 23:13 ` [PATCH v17 14/15] arm64: kexec: remove cpu-reset.h Pasha Tatashin
2021-09-16 23:13 ` Pasha Tatashin [this message]
2021-09-29 16:43   ` [PATCH v17 15/15] arm64: trans_pgd: remove trans_pgd_map_page() Catalin Marinas
2021-09-30  4:12     ` Pasha Tatashin
2021-09-29 12:49 ` [PATCH v17 00/15] arm64: MMU enabled kexec relocation Will Deacon
2021-09-30  4:13   ` Pasha Tatashin
2021-09-29 17:21 ` Catalin Marinas
2021-09-30  4:13   ` Pasha Tatashin

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=20210916231325.125533-16-pasha.tatashin@soleen.com \
    --to=pasha.tatashin@soleen.com \
    --cc=akpm@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=ebiederm@xmission.com \
    --cc=james.morse@arm.com \
    --cc=jmorris@namei.org \
    --cc=kernelfans@gmail.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=madvenka@linux.microsoft.com \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=maz@kernel.org \
    --cc=rfontana@redhat.com \
    --cc=sashal@kernel.org \
    --cc=selindag@gmail.com \
    --cc=steve.capper@arm.com \
    --cc=tglx@linutronix.de \
    --cc=tyhicks@linux.microsoft.com \
    --cc=vladimir.murzin@arm.com \
    --cc=will@kernel.org \
    /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