From: Miles Chen <miles.chen@mediatek.com> To: Andrew Morton <akpm@linux-foundation.org>, Mike Rapoport <rppt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, David Hildenbrand <david@redhat.com> Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <wsd_upstream@mediatek.com>, Miles Chen <miles.chen@mediatek.com> Subject: [PATCH v3] mm/sparse: clarify pgdat_to_phys Date: Fri, 23 Jul 2021 20:33:42 +0800 [thread overview] Message-ID: <20210723123342.26406-1-miles.chen@mediatek.com> (raw) Clarify pgdat_to_phys() by testing if pgdat == &contig_page_data when CONFIG_NUMA=n. We only expect contig_page_data in such case, so we use &contig_page_data directly instead of pgdat. No functional change intended when CONFIG_BUG_VM=n. Comment from Mark [1]: " ... and I reckon it'd be clearer and more robust to define pgdat_to_phys() in the same ifdefs as contig_page_data so that these, stay in-sync. e.g. have: | #ifdef CONFIG_NUMA | #define pgdat_to_phys(x) virt_to_phys(x) | #else /* CONFIG_NUMA */ | | extern struct pglist_data contig_page_data; | ... | #define pgdat_to_phys(x) __pa_symbol(&contig_page_data) | | #endif /* CONIFIG_NUMA */ " [1] https://lore.kernel.org/linux-arm-kernel/20210615131902.GB47121@C02TD0UTHF1T.local/ Cc: Mike Rapoport <rppt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: David Hildenbrand <david@redhat.com> Signed-off-by: Miles Chen <miles.chen@mediatek.com> -- Change since v1: Thanks for Mike's comment, check if pgdat == &contig_page_data, so it is clearer that we only expect contig_page_data when CONFIG_NUMA=n. Change since v2: use VM_BUG_ON() to avoid runtime checking when CONFIG_BUG_VM=n --- mm/sparse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/sparse.c b/mm/sparse.c index 6326cdf36c4f..d13d831f88a5 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -348,7 +348,8 @@ size_t mem_section_usage_size(void) static inline phys_addr_t pgdat_to_phys(struct pglist_data *pgdat) { #ifndef CONFIG_NUMA - return __pa_symbol(pgdat); + VM_BUG_ON(pgdat != &contig_page_data); + return __pa_symbol(&contig_page_data); #else return __pa(pgdat); #endif -- 2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: Miles Chen <miles.chen@mediatek.com> To: Andrew Morton <akpm@linux-foundation.org>, Mike Rapoport <rppt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, David Hildenbrand <david@redhat.com> Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <wsd_upstream@mediatek.com>, Miles Chen <miles.chen@mediatek.com> Subject: [PATCH v3] mm/sparse: clarify pgdat_to_phys Date: Fri, 23 Jul 2021 20:33:42 +0800 [thread overview] Message-ID: <20210723123342.26406-1-miles.chen@mediatek.com> (raw) Clarify pgdat_to_phys() by testing if pgdat == &contig_page_data when CONFIG_NUMA=n. We only expect contig_page_data in such case, so we use &contig_page_data directly instead of pgdat. No functional change intended when CONFIG_BUG_VM=n. Comment from Mark [1]: " ... and I reckon it'd be clearer and more robust to define pgdat_to_phys() in the same ifdefs as contig_page_data so that these, stay in-sync. e.g. have: | #ifdef CONFIG_NUMA | #define pgdat_to_phys(x) virt_to_phys(x) | #else /* CONFIG_NUMA */ | | extern struct pglist_data contig_page_data; | ... | #define pgdat_to_phys(x) __pa_symbol(&contig_page_data) | | #endif /* CONIFIG_NUMA */ " [1] https://lore.kernel.org/linux-arm-kernel/20210615131902.GB47121@C02TD0UTHF1T.local/ Cc: Mike Rapoport <rppt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: David Hildenbrand <david@redhat.com> Signed-off-by: Miles Chen <miles.chen@mediatek.com> -- Change since v1: Thanks for Mike's comment, check if pgdat == &contig_page_data, so it is clearer that we only expect contig_page_data when CONFIG_NUMA=n. Change since v2: use VM_BUG_ON() to avoid runtime checking when CONFIG_BUG_VM=n --- mm/sparse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/sparse.c b/mm/sparse.c index 6326cdf36c4f..d13d831f88a5 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -348,7 +348,8 @@ size_t mem_section_usage_size(void) static inline phys_addr_t pgdat_to_phys(struct pglist_data *pgdat) { #ifndef CONFIG_NUMA - return __pa_symbol(pgdat); + VM_BUG_ON(pgdat != &contig_page_data); + return __pa_symbol(&contig_page_data); #else return __pa(pgdat); #endif -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek
next reply other threads:[~2021-07-23 12:34 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-23 12:33 Miles Chen [this message] 2021-07-23 12:33 ` [PATCH v3] mm/sparse: clarify pgdat_to_phys Miles Chen 2021-07-23 12:54 ` David Hildenbrand 2021-07-23 12:54 ` David Hildenbrand 2021-07-24 7:47 ` Mike Rapoport 2021-07-24 7:47 ` Mike Rapoport
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=20210723123342.26406-1-miles.chen@mediatek.com \ --to=miles.chen@mediatek.com \ --cc=akpm@linux-foundation.org \ --cc=david@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-mm@kvack.org \ --cc=mark.rutland@arm.com \ --cc=rppt@kernel.org \ --cc=wsd_upstream@mediatek.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.