mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
mm/slub: Convert print_page_info() to print_slab_info()
Improve the type safety and prepare for further conversion. For flags access, convert to folio internally. [ vbabka@suse.cz: access flags via folio_flags() ] Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Roman Gushchin <guro@fb.com> Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
This commit is contained in:
parent
0393895b09
commit
fb012e278d
13
mm/slub.c
13
mm/slub.c
@ -788,12 +788,13 @@ void print_tracking(struct kmem_cache *s, void *object)
|
|||||||
print_track("Freed", get_track(s, object, TRACK_FREE), pr_time);
|
print_track("Freed", get_track(s, object, TRACK_FREE), pr_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void print_page_info(struct page *page)
|
static void print_slab_info(const struct slab *slab)
|
||||||
{
|
{
|
||||||
pr_err("Slab 0x%p objects=%u used=%u fp=0x%p flags=%pGp\n",
|
struct folio *folio = (struct folio *)slab_folio(slab);
|
||||||
page, page->objects, page->inuse, page->freelist,
|
|
||||||
&page->flags);
|
|
||||||
|
|
||||||
|
pr_err("Slab 0x%p objects=%u used=%u fp=0x%p flags=%pGp\n",
|
||||||
|
slab, slab->objects, slab->inuse, slab->freelist,
|
||||||
|
folio_flags(folio, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
||||||
@ -833,7 +834,7 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p)
|
|||||||
|
|
||||||
print_tracking(s, p);
|
print_tracking(s, p);
|
||||||
|
|
||||||
print_page_info(page);
|
print_slab_info(page_slab(page));
|
||||||
|
|
||||||
pr_err("Object 0x%p @offset=%tu fp=0x%p\n\n",
|
pr_err("Object 0x%p @offset=%tu fp=0x%p\n\n",
|
||||||
p, p - addr, get_freepointer(s, p));
|
p, p - addr, get_freepointer(s, p));
|
||||||
@ -903,7 +904,7 @@ static __printf(3, 4) void slab_err(struct kmem_cache *s, struct page *page,
|
|||||||
vsnprintf(buf, sizeof(buf), fmt, args);
|
vsnprintf(buf, sizeof(buf), fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
slab_bug(s, "%s", buf);
|
slab_bug(s, "%s", buf);
|
||||||
print_page_info(page);
|
print_slab_info(page_slab(page));
|
||||||
dump_stack();
|
dump_stack();
|
||||||
add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
|
add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user