diff mbox series

mm: fix the type of a parameter

Message ID 20211201181236.2315-1-caoyixuan2019@email.szu.edu.cn (mailing list archive)
State New
Headers show
Series mm: fix the type of a parameter | expand

Commit Message

Yixuan Cao Dec. 1, 2021, 6:12 p.m. UTC
The type of "last_migrate_reason" in struct page_owner is short.
However, the type of "reason" in the argument list of following functions
__set_page_owner_migrate_reason
set_page_owner_migrate_reason

is int, which is inconsistent.

Signed-off-by: Yixuan Cao <caoyixuan2019@email.szu.edu.cn>
---
 include/linux/page_owner.h | 6 +++---
 mm/page_owner.c            | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

Comments

Andrew Morton Dec. 2, 2021, 3:34 a.m. UTC | #1
On Thu,  2 Dec 2021 02:12:36 +0800 Yixuan Cao <caoyixuan2019@email.szu.edu.cn> wrote:

> The type of "last_migrate_reason" in struct page_owner is short.
> However, the type of "reason" in the argument list of following functions
> __set_page_owner_migrate_reason
> set_page_owner_migrate_reason
> 
> is int, which is inconsistent.

Well.

I'd say "no", because `int' is a natural type and the packing of that
scalar into a `short' is an expedient little space-saving hack (ie, an
"implementation detail") which should be hidden from callers rather
than propagated back up the call stack.

However, all these `int's should be of type `enum migrate_reason'.  And
the lowest-level hack of stuffing that enum into a `short' should
remain an implementation detail, hidden from callers.
diff mbox series

Patch

diff --git a/include/linux/page_owner.h b/include/linux/page_owner.h
index 119a0c9d2a8b..c537315ec02f 100644
--- a/include/linux/page_owner.h
+++ b/include/linux/page_owner.h
@@ -13,7 +13,7 @@  extern void __set_page_owner(struct page *page,
 			unsigned short order, gfp_t gfp_mask);
 extern void __split_page_owner(struct page *page, unsigned int nr);
 extern void __folio_copy_owner(struct folio *newfolio, struct folio *old);
-extern void __set_page_owner_migrate_reason(struct page *page, int reason);
+extern void __set_page_owner_migrate_reason(struct page *page, short reason);
 extern void __dump_page_owner(const struct page *page);
 extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,
 					pg_data_t *pgdat, struct zone *zone);
@@ -41,7 +41,7 @@  static inline void folio_copy_owner(struct folio *newfolio, struct folio *old)
 	if (static_branch_unlikely(&page_owner_inited))
 		__folio_copy_owner(newfolio, old);
 }
-static inline void set_page_owner_migrate_reason(struct page *page, int reason)
+static inline void set_page_owner_migrate_reason(struct page *page, short reason)
 {
 	if (static_branch_unlikely(&page_owner_inited))
 		__set_page_owner_migrate_reason(page, reason);
@@ -66,7 +66,7 @@  static inline void split_page_owner(struct page *page,
 static inline void folio_copy_owner(struct folio *newfolio, struct folio *folio)
 {
 }
-static inline void set_page_owner_migrate_reason(struct page *page, int reason)
+static inline void set_page_owner_migrate_reason(struct page *page, short reason)
 {
 }
 static inline void dump_page_owner(const struct page *page)
diff --git a/mm/page_owner.c b/mm/page_owner.c
index 4f924957ce7a..4c23e910caf9 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -182,7 +182,7 @@  noinline void __set_page_owner(struct page *page, unsigned short order,
 	__set_page_owner_handle(page_ext, handle, order, gfp_mask);
 }
 
-void __set_page_owner_migrate_reason(struct page *page, int reason)
+void __set_page_owner_migrate_reason(struct page *page, short reason)
 {
 	struct page_ext *page_ext = lookup_page_ext(page);
 	struct page_owner *page_owner;