linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2]: check return value of pgtalbe_pmd_page_ctor
@ 2021-07-21  5:20 Huang Pei
  2021-07-21  5:20 ` [PATCH] MIPS: check return value of pgtable_pmd_page_ctor Huang Pei
  0 siblings, 1 reply; 10+ messages in thread
From: Huang Pei @ 2021-07-21  5:20 UTC (permalink / raw)
  To: Thomas Bogendoerfer, ambrosehua
  Cc: Bibo Mao, linux-mips, Jiaxun Yang, Paul Burton, Li Xuefeng,
	Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He

V2:

Adjust coding style, more readable, following Joshua Kinard's
advice




^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH V3]: MIPS: check return value of pgtable_pmd_page_ctor
@ 2021-07-21  9:30 Huang Pei
  2021-07-21  9:30 ` [PATCH] " Huang Pei
  0 siblings, 1 reply; 10+ messages in thread
From: Huang Pei @ 2021-07-21  9:30 UTC (permalink / raw)
  To: Thomas Bogendoerfer, ambrosehua
  Cc: Bibo Mao, linux-mips, Jiaxun Yang, Paul Burton, Li Xuefeng,
	Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He

V3:

add fixes tag



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH] MIPS: check return value of pgtable_pmd_page_ctor
@ 2021-07-21  3:43 Huang Pei
  2021-07-21  4:23 ` Joshua Kinard
  0 siblings, 1 reply; 10+ messages in thread
From: Huang Pei @ 2021-07-21  3:43 UTC (permalink / raw)
  To: Thomas Bogendoerfer, ambrosehua
  Cc: Bibo Mao, linux-mips, Jiaxun Yang, Paul Burton, Li Xuefeng,
	Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Joshua Kinard

+. According to Documentation/vm/split_page_table_lock, handle failure
of pgtable_pmd_page_ctor

+. use GFP_KERNEL_ACCOUNT instead of GFP_KERNEL|__GFP_ACCOUNT

Reported-by: Joshua Kinard <kumba@gentoo.org>
Signed-off-by: Huang Pei <huangpei@loongson.cn>
---
 arch/mips/include/asm/pgalloc.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
index d0cf997b4ba8..5c9597a6c60c 100644
--- a/arch/mips/include/asm/pgalloc.h
+++ b/arch/mips/include/asm/pgalloc.h
@@ -62,11 +62,15 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
 	pmd_t *pmd = NULL;
 	struct page *pg;
 
-	pg = alloc_pages(GFP_KERNEL | __GFP_ACCOUNT, PMD_ORDER);
+	pg = alloc_pages(GFP_KERNEL_ACCOUNT, PMD_ORDER);
 	if (pg) {
-		pgtable_pmd_page_ctor(pg);
-		pmd = (pmd_t *)page_address(pg);
-		pmd_init((unsigned long)pmd, (unsigned long)invalid_pte_table);
+		if(pgtable_pmd_page_ctor(pg)) {
+			pmd = (pmd_t *)page_address(pg);
+			pmd_init((unsigned long)pmd, (unsigned long)invalid_pte_table);
+		} else {
+			__free_pages(pg, PMD_ORDER);
+		}
+
 	}
 	return pmd;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-08-05  9:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-21  5:20 [PATCH V2]: check return value of pgtalbe_pmd_page_ctor Huang Pei
2021-07-21  5:20 ` [PATCH] MIPS: check return value of pgtable_pmd_page_ctor Huang Pei
2021-07-21  9:03   ` Thomas Bogendoerfer
  -- strict thread matches above, loose matches on Subject: below --
2021-07-21  9:30 [PATCH V3]: " Huang Pei
2021-07-21  9:30 ` [PATCH] " Huang Pei
2021-07-24 23:05   ` Joshua Kinard
2021-08-05  9:46   ` Thomas Bogendoerfer
2021-07-21  3:43 Huang Pei
2021-07-21  4:23 ` Joshua Kinard
2021-07-21  8:13   ` Huang Pei
2021-07-24 23:18     ` Joshua Kinard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).