[PATCH] mm: memcg1: convert charge move flags to unsigned long long

From: Roman Gushchin
Date: Fri Jul 12 2024 - 14:35:14 EST


Currently MOVE_ANON and MOVE_FILE flags are defined as integers
and it leads to the following Smatch static checker warning:
mm/memcontrol-v1.c:609 mem_cgroup_move_charge_write()
warn: was expecting a 64 bit value instead of '~(1 | 2)'

Fix this be redefining them as unsigned long long.

Even though the issue allows to set high 32 bits of mc.flags
to an arbitrary number, these bits are never used, so it doesn't
have any significant consequences.

Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Roman Gushchin <roman.gushchin@xxxxxxxxx>
---
mm/memcontrol-v1.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
index 6b3e56e88a8a..2aeea4d8bf8e 100644
--- a/mm/memcontrol-v1.c
+++ b/mm/memcontrol-v1.c
@@ -44,8 +44,8 @@ static struct mem_cgroup_tree soft_limit_tree __read_mostly;
/*
* Types of charges to be moved.
*/
-#define MOVE_ANON 0x1U
-#define MOVE_FILE 0x2U
+#define MOVE_ANON 0x1ULL
+#define MOVE_FILE 0x2ULL
#define MOVE_MASK (MOVE_ANON | MOVE_FILE)

/* "mc" and its members are protected by cgroup_mutex */
--
2.45.2.993.g49e7a77208-goog