mm/debug.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
This patch includes several minor fixes:
- Simplify compound page judgment conditions.
- Missing a newline character at the end of the format string.
Each change is independent.
Signed-off-by: Liu Ye <liuye@kylinos.cn>
---
V2 : drop Fix out-of-bounds access in page_type_name().
---
---
mm/debug.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/mm/debug.c b/mm/debug.c
index 8d2acf432385..544b2b05c567 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -132,15 +132,15 @@ static void __dump_page(const struct page *page)
again:
memcpy(&precise, page, sizeof(*page));
head = precise.compound_head;
- if ((head & 1) == 0) {
+ if (head & 1) {
+ foliop = (struct folio *)(head - 1);
+ idx = folio_page_idx(foliop, page);
+ } else {
foliop = (struct folio *)&precise;
idx = 0;
if (!folio_test_large(foliop))
goto dump;
foliop = (struct folio *)page;
- } else {
- foliop = (struct folio *)(head - 1);
- idx = folio_page_idx(foliop, page);
}
if (idx < MAX_FOLIO_NR_PAGES) {
@@ -165,7 +165,7 @@ static void __dump_page(const struct page *page)
void dump_page(const struct page *page, const char *reason)
{
if (PagePoisoned(page))
- pr_warn("page:%p is uninitialized and poisoned", page);
+ pr_warn("page:%p is uninitialized and poisoned\n", page);
else
__dump_page(page);
if (reason)
--
2.25.1
On Wed, Mar 12, 2025 at 11:23:44AM +0800, Liu Ye wrote:
> - Simplify compound page judgment conditions.
> @@ -132,15 +132,15 @@ static void __dump_page(const struct page *page)
> again:
> memcpy(&precise, page, sizeof(*page));
> head = precise.compound_head;
> - if ((head & 1) == 0) {
> + if (head & 1) {
> + foliop = (struct folio *)(head - 1);
> + idx = folio_page_idx(foliop, page);
> + } else {
> foliop = (struct folio *)&precise;
> idx = 0;
> if (!folio_test_large(foliop))
> goto dump;
> foliop = (struct folio *)page;
> - } else {
> - foliop = (struct folio *)(head - 1);
> - idx = folio_page_idx(foliop, page);
> }
>
> if (idx < MAX_FOLIO_NR_PAGES) {
How is this "simpler"? It seems like churn for the sake of churn.
NACK.
在 2025/3/12 20:20, Matthew Wilcox 写道:
>> - if ((head & 1) == 0) {
>> + if (head & 1) {
>> + foliop = (struct folio *)(head - 1);
>> + idx = folio_page_idx(foliop, page);
>> + } else {
>> foliop = (struct folio *)&precise;
>> idx = 0;
>> if (!folio_test_large(foliop))
>> goto dump;
>> foliop = (struct folio *)page;
>> - } else {
>> - foliop = (struct folio *)(head - 1);
>> - idx = folio_page_idx(foliop, page);
>> }
>>
>> if (idx < MAX_FOLIO_NR_PAGES) {
>
> How is this "simpler"? It seems like churn for the sake of churn.
> NACK.
This modification simplifies the condition check by directly testing
head & 1 instead of using ((head & 1) == 0). The updated logic first handles
the case where head & 1 is set, assigning foliop and idx accordingly.
This improves code readability and reduces unnecessary branching,
making the structure more straightforward and easier to maintain.
I am personally accustomed to this format, but if it is not accepted
by the majority, then drop it.
Thanks,
Liu Ye
On Wed, Mar 12, 2025 at 11:23:44AM +0800, Liu Ye wrote: > This patch includes several minor fixes: > > - Simplify compound page judgment conditions. > - Missing a newline character at the end of the format string. > > Each change is independent. If each change is indepenent, send a patch per change. Also CC Willy since he has been dealing with __dump_page lately. -- Oscar Salvador SUSE Labs
© 2016 - 2025 Red Hat, Inc.