| From: Roman Gushchin <roman.gushchin@linux.dev> |
| Subject: mm: memcg1: convert charge move flags to unsigned long long |
| Date: Fri, 12 Jul 2024 18:35:14 +0000 |
| |
| 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. |
| |
| Link: https://lkml.kernel.org/r/ZpF8Q9zBsIY7d2P9@google.com |
| Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev> |
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/memcontrol-v1.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/mm/memcontrol-v1.c~mm-memcg-move-charge-migration-code-to-memcontrol-v1c-fix |
| +++ a/mm/memcontrol-v1.c |
| @@ -44,8 +44,8 @@ static struct mem_cgroup_tree soft_limit |
| /* |
| * 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 */ |
| _ |