On 28 Jan 2021, at 2:03, Matthew Wilcox (Oracle) wrote: > These are the folio equivalents of VM_BUG_ON_PAGE and VM_WARN_ON_ONCE_PAGE. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > --- > include/linux/mmdebug.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h > index 5d0767cb424a..77d24e1dcaec 100644 > --- a/include/linux/mmdebug.h > +++ b/include/linux/mmdebug.h > @@ -23,6 +23,13 @@ void dump_mm(const struct mm_struct *mm); > BUG(); \ > } \ > } while (0) > +#define VM_BUG_ON_FOLIO(cond, folio) \ > + do { \ > + if (unlikely(cond)) { \ > + dump_page(&folio->page, "VM_BUG_ON_FOLIO(" __stringify(cond)")");\ > + BUG(); \ > + } \ > + } while (0) > #define VM_BUG_ON_VMA(cond, vma) \ > do { \ > if (unlikely(cond)) { \ > @@ -48,6 +55,17 @@ void dump_mm(const struct mm_struct *mm); > } \ > unlikely(__ret_warn_once); \ > }) > +#define VM_WARN_ON_ONCE_FOLIO(cond, folio) ({ \ > + static bool __section(".data.once") __warned; \ > + int __ret_warn_once = !!(cond); \ > + \ > + if (unlikely(__ret_warn_once && !__warned)) { \ > + dump_page(&folio->page, "VM_WARN_ON_ONCE_FOLIO(" __stringify(cond)")");\ > + __warned = true; \ > + WARN_ON(1); \ > + } \ > + unlikely(__ret_warn_once); \ > +}) > > #define VM_WARN_ON(cond) (void)WARN_ON(cond) > #define VM_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond) > @@ -56,11 +74,13 @@ void dump_mm(const struct mm_struct *mm); > #else > #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) > #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) > +#define VM_BUG_ON_FOLIO(cond, folio) VM_BUG_ON(cond) > #define VM_BUG_ON_VMA(cond, vma) VM_BUG_ON(cond) > #define VM_BUG_ON_MM(cond, mm) VM_BUG_ON(cond) > #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) > #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) > #define VM_WARN_ON_ONCE_PAGE(cond, page) BUILD_BUG_ON_INVALID(cond) > +#define VM_WARN_ON_ONCE_FOLIO(cond, folio) BUILD_BUG_ON_INVALID(cond) > #define VM_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) > #define VM_WARN(cond, format...) BUILD_BUG_ON_INVALID(cond) > #endif > -- > 2.29.2 LGTM. Reviewed-by: Zi Yan <ziy@xxxxxxxxxx> — Best Regards, Yan Zi
Attachment:
signature.asc
Description: OpenPGP digital signature