mm/damon/paddr: Fix folio-use-after-put bugs
Subsystems (3)
SeongJae Park
maintainercover mm/damon/paddr: Fix folio-use-after-put bugs
There are two folio accesses after folio_put() in mm/damon/paddr.c file. Fix those.
SeongJae Park (2):
mm/damon/paddr: fix folio_size() call after folio_put() in
damon_pa_young()
mm/damon/paddr: fix folio_nr_pages() after folio_put() in
damon_pa_mark_accessed_or_deactivate()
mm/damon/paddr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
Signature · 1 line
2.25.1
SeongJae Park
maintainerPATCH 1/2 mm/damon/paddr: fix folio_size() call after folio_put() in damon_pa_young()
damon_pa_young() is accessing a folio via folio_size() after folio_put() for the folio has invoked. Fix it.
--- mm/damon/paddr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
mm/damon/paddr.c +1 -2
@@ -130,7 +130,6 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz) accessed = false; else accessed = true; -folio_put (folio); goto out; }
@@ -144,10 +143,10 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz)if (need_lock)folio_unlock (folio); -folio_put (folio); out: *folio_sz =folio_size (folio); +folio_put (folio);return accessed; }
Signature · 1 line
2.25.1
Re: [PATCH 1/2] mm/damon/paddr: fix folio_size() call after folio_put() in damon_pa_young()
Quoted 6 lines · SeongJae Park
damon_pa_young()is accessing a folio viafolio_size()afterfolio_put()for the folio has invoked. Fix it.Fixes 397b0c3a584b ("mm/damon/paddr: remove folio_sz field from damon_pa_access_chk_result")Cc <[email protected]> # 6.3.xSigned-off-by SeongJae Park <[email protected]>
Re: [PATCH 1/2] mm/damon/paddr: fix folio_size() call after folio_put() in damon_pa_young()
In reply to SeongJae ParkQuoted 3 lines · SeongJae Park
damon_pa_young()is accessing a folio viafolio_size()afterfolio_put()for the folio has invoked. Fix it.
Quoted 31 lines
Fixes 397b0c3a584b ("mm/damon/paddr: remove folio_sz field from damon_pa_access_chk_result")Cc <[email protected]> # 6.3.xSigned-off-by SeongJae Park <[email protected]>--- mm/damon/paddr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)mm/damon/paddr.c +1
-2@@ -130,7 +130,6 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz) accessed = false; else accessed = true; -folio_put (folio); goto out; }@@ -144,10 +143,10 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz)if (need_lock)folio_unlock (folio); -folio_put (folio); out: *folio_sz =folio_size (folio); +folio_put (folio);return accessed; }
SeongJae Park
maintainerPATCH 2/2 mm/damon/paddr: fix folio_nr_pages() after folio_put() in damon_pa_mark_accessed_or_deactivate()
In reply to SeongJae Parkdamon_pa_mark_accessed_or_deactivate() is accessing a folio via folio_nr_pages() after folio_put() for the folio has invoked. Fix it.
--- mm/damon/paddr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/damon/paddr.c +1 -1
@@ -277,8 +277,8 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate(folio_mark_accessed (folio); elsefolio_deactivate (folio ); -folio_put (folio); applied +=folio_nr_pages (folio); +folio_put (folio); }return applied *PAGE_SIZE ; }
Signature · 1 line
2.25.1
Re: [PATCH 2/2] mm/damon/paddr: fix folio_nr_pages() after folio_put() in damon_pa_mark_accessed_or_deactivate()
Quoted 6 lines · SeongJae Park
damon_pa_mark_accessed_or_deactivate()is accessing a folio viafolio_nr_pages()afterfolio_put()for the folio has invoked. Fix it.Fixes f70da5ee8fe1 ("mm/damon: convert damon_pa_mark_accessed_or_deactivate() to use folios")Cc <[email protected]> # 6.3.xSigned-off-by SeongJae Park <[email protected]>
Re: [PATCH 2/2] mm/damon/paddr: fix folio_nr_pages() after folio_put() in damon_pa_mark_accessed_or_deactivate()
In reply to SeongJae ParkQuoted 3 lines · SeongJae Park
damon_pa_mark_accessed_or_deactivate()is accessing a folio viafolio_nr_pages()afterfolio_put()for the folio has invoked. Fix it.
Quoted 21 lines
Fixes f70da5ee8fe1 ("mm/damon: convert damon_pa_mark_accessed_or_deactivate() to use folios")Cc <[email protected]> # 6.3.xSigned-off-by SeongJae Park <[email protected]>--- mm/damon/paddr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/damon/paddr.c +1
-1@@ -277,8 +277,8 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate(folio_mark_accessed (folio); elsefolio_deactivate (folio ); -folio_put (folio); applied +=folio_nr_pages (folio); +folio_put (folio); }return applied *PAGE_SIZE ; }
Quoted 2 lines · SeongJae Park
There are two folio accesses after
folio_put()inmm/damon/paddr.cfile. Fix those.
I saw you send the bugfixes separately :)
Quoted 10 lines
SeongJae Park (2):
mm/damon/paddr: fixfolio_size()call afterfolio_put()in
damon_pa_young()
mm/damon/paddr: fixfolio_nr_pages()afterfolio_put()in
damon_pa_mark_accessed_or_deactivate()mm/damon/paddr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)