On Mon, Sep 27, 2021 at 10:15:38AM +0800, Kefeng Wang wrote:
Commit ("0937502af7c9 slub: Add check for kfree() of non slab objects.")Is dump_page() really the best way to catch such a thing? I would have
add the ability, which should be needed in any configs to catch the
invalid free, they even could be potential issue, eg, memory corruption,
use after free and double-free, so replace VM_BUG_ON_PAGE to WARN_ON, and
add dump_page() to help use to debug the issue.
thought that printing the address of 'object' would be more helpful.
@@ -3522,7 +3522,8 @@ static inline void free_nonslab_page(struct page *page, void *object).
{
unsigned int order = compound_order(page);
- VM_BUG_ON_PAGE(!PageCompound(page), page);
+ if (WARN_ON(!PageCompound(page)))
+ dump_page(page, "invalid free nonslab page");