summaryrefslogtreecommitdiff
path: root/mm/debug.c
diff options
context:
space:
mode:
authorRodrigo Vivi <rodrigo.vivi@intel.com>2024-12-09 09:56:45 -0500
committerRodrigo Vivi <rodrigo.vivi@intel.com>2024-12-09 09:59:47 -0500
commitbc893280751ab566892399fe4e81a9a67a4097be (patch)
treeb67f2114392d7888adb463a30fe2e368ccb90697 /mm/debug.c
parent26bba754539a274fb4905cb07d244ca291bcc5d0 (diff)
parentfac04efc5c793dccbd07e2d59af9f90b7fc0dca4 (diff)
downloadlwn-bc893280751ab566892399fe4e81a9a67a4097be.tar.gz
lwn-bc893280751ab566892399fe4e81a9a67a4097be.zip
Merge drm/drm-next into drm-xe-next
Catch up with -rc2 and fixing namespace conflict issue caused by commit cdd30ebb1b9f ("module: Convert symbol namespace to string literal") and commit 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices") Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'mm/debug.c')
-rw-r--r--mm/debug.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/debug.c b/mm/debug.c
index aa57d3ffd4ed..95b6ab809c0e 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -124,19 +124,22 @@ static void __dump_page(const struct page *page)
{
struct folio *foliop, folio;
struct page precise;
+ unsigned long head;
unsigned long pfn = page_to_pfn(page);
unsigned long idx, nr_pages = 1;
int loops = 5;
again:
memcpy(&precise, page, sizeof(*page));
- foliop = page_folio(&precise);
- if (foliop == (struct folio *)&precise) {
+ head = precise.compound_head;
+ if ((head & 1) == 0) {
+ 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);
}