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 --- 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; -- 2.34.1