On 3/2/26 12:17, Yuvraj Sakshith wrote: > Drivers can pass order of pages to be reported while > registering itself. Today, this is a magic number, 0. > > Label this with PAGE_REPORTING_ORDER_UNSPECIFIED and > check for it when the driver is being registered. > > This macro will be used in relevant drivers next. > > Signed-off-by: Yuvraj Sakshith <[email protected]> > --- > include/linux/page_reporting.h | 1 + > mm/page_reporting.c | 14 +++++--------- > 2 files changed, 6 insertions(+), 9 deletions(-) > > diff --git a/include/linux/page_reporting.h b/include/linux/page_reporting.h > index fe648dfa3..d1886c657 100644 > --- a/include/linux/page_reporting.h > +++ b/include/linux/page_reporting.h > @@ -7,6 +7,7 @@ > > /* This value should always be a power of 2, see page_reporting_cycle() */ > #define PAGE_REPORTING_CAPACITY 32 > +#define PAGE_REPORTING_ORDER_UNSPECIFIED 0 > > struct page_reporting_dev_info { > /* function that alters pages to make them "reported" */ > diff --git a/mm/page_reporting.c b/mm/page_reporting.c > index e4c428e61..51cd88faf 100644 > --- a/mm/page_reporting.c > +++ b/mm/page_reporting.c > @@ -12,7 +12,7 @@ > #include "internal.h" > > /* Initialize to an unsupported value */ > -unsigned int page_reporting_order = -1; > +unsigned int page_reporting_order = PAGE_REPORTING_ORDER_UNSPECIFIED; > > static int page_order_update_notify(const char *val, const struct > kernel_param *kp) > { > @@ -25,12 +25,7 @@ static int page_order_update_notify(const char *val, const > struct kernel_param * > > static const struct kernel_param_ops page_reporting_param_ops = { > .set = &page_order_update_notify, > - /* > - * For the get op, use param_get_int instead of param_get_uint. > - * This is to make sure that when unset the initialized value of > - * -1 is shown correctly > - */ > - .get = ¶m_get_int, > + .get = ¶m_get_uint, > }; > > module_param_cb(page_reporting_order, &page_reporting_param_ops, > @@ -369,8 +364,9 @@ int page_reporting_register(struct > page_reporting_dev_info *prdev) > * pageblock_order. > */ > > - if (page_reporting_order == -1) { > - if (prdev->order > 0 && prdev->order <= MAX_PAGE_ORDER) > + if (page_reporting_order == PAGE_REPORTING_ORDER_UNSPECIFIED) { > + if (prdev->order != PAGE_REPORTING_ORDER_UNSPECIFIED && > + prdev->order <= MAX_PAGE_ORDER) > page_reporting_order = prdev->order; > else > page_reporting_order = pageblock_order;
I think the change to page_reporting_order (and param_get_int) should come after patch #4. Otherwise, you temporarily change the semantics of page_reporting_param_ops() etc. So you should perform the page_reporting_order changes either in patch #4 or in a new patch #5. Apart from that LGTM. -- Cheers, David

