On Mon 30-03-20 12:21:37, Anshuman Khandual wrote: > Enumerate all existing bad page reasons which can be used in bad_page() for > reporting via __dump_page(). Unfortunately __dump_page() cannot be changed. > __dump_page() is called from dump_page() that accepts a raw string and is > also an exported symbol that is currently being used from various generic > memory functions and other drivers. This reduces code duplication while > reporting bad pages. I dunno. It sounds like over engineering something that is an internal stuff. Besides that I consider string reasons kinda obvious and I am pretty sure I would have to check them for each numeric alias when want to read the code. Yeah, yeah, nothing really hard but still... So I am not really sure this is all worth the code churn. Besides that I stongly suspect you wanted ... > -static void bad_page(struct page *page, const char *reason, > +static void bad_page(struct page *page, int reason, > unsigned long bad_flags) ... enum page_bad_reason reason here, right? What is the point of declaring an enum when you are not using it? -- Michal Hocko SUSE Labs