[PATCH] mm: vmscan: fix get_swappiness() return value type

Zhiguo Jiang posted 1 patch 2 years, 3 months ago
mm/vmscan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
mode change 100644 => 100755 mm/vmscan.c
[PATCH] mm: vmscan: fix get_swappiness() return value type
Posted by Zhiguo Jiang 2 years, 3 months ago
Fix bool to int of the get_swappiness() return value type in
lruvec_is_sizable().

The get_swappiness() return value type is int, but the
get_swappiness() return value type is bool in lruvec_is_sizable().
So there is a possibility of value overflow.

Signed-off-by: Zhiguo Jiang <justinjiang@vivo.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 mode change 100644 => 100755 mm/vmscan.c

diff --git a/mm/vmscan.c b/mm/vmscan.c
index ea57a43ebd6b..f383e5b14598
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -4575,7 +4575,7 @@ static bool lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc)
 {
 	int gen, type, zone;
 	unsigned long total = 0;
-	bool can_swap = get_swappiness(lruvec, sc);
+	int can_swap = get_swappiness(lruvec, sc);
 	struct lru_gen_folio *lrugen = &lruvec->lrugen;
 	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
 	DEFINE_MAX_SEQ(lruvec);
-- 
2.39.0
Re: [PATCH] mm: vmscan: fix get_swappiness() return value type
Posted by Matthew Wilcox 2 years, 3 months ago
On Thu, Sep 07, 2023 at 12:40:45PM +0800, Zhiguo Jiang wrote:
> Fix bool to int of the get_swappiness() return value type in
> lruvec_is_sizable().
> 
> The get_swappiness() return value type is int, but the
> get_swappiness() return value type is bool in lruvec_is_sizable().
> So there is a possibility of value overflow.

Have you looked at how the C spec defines int->bool conversion?