All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty()
@ 2023-01-29  2:44 Kefeng Wang
  2023-01-29  4:09 ` [PATCH resend] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty_slowpath() Kefeng Wang
  2023-01-29 21:48 ` [PATCH] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty() Andrew Morton
  0 siblings, 2 replies; 11+ messages in thread
From: Kefeng Wang @ 2023-01-29  2:44 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Tejun Heo, Jens Axboe, Jan Kara, Shakeel Butt, Naoya Horiguchi,
	linux-kernel, linux-mm, Kefeng Wang, Ma Wupeng

As commit 18365225f044 ("hwpoison, memcg: forcibly uncharge LRU pages"),
hwpoison will forcibly uncharg a LRU hwpoisoned page, the folio_memcg
could be NULl, then, mem_cgroup_track_foreign_dirty_slowpath() could
occurs a NULL pointer dereference, let's do not record the foreign
writebacks for folio memcg is null in mem_cgroup_track_foreign() to
fix it.

Reported-by: Ma Wupeng <mawupeng1@huawei.com>
Fixes: 97b27821b485 ("writeback, memcg: Implement foreign dirty flushing")
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 include/linux/memcontrol.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index eb6e5b18e1ad..35478695cabf 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -1688,10 +1688,13 @@ void mem_cgroup_track_foreign_dirty_slowpath(struct folio *folio,
 static inline void mem_cgroup_track_foreign_dirty(struct folio *folio,
 						  struct bdi_writeback *wb)
 {
+	struct mem_cgroup *memcg;
+
 	if (mem_cgroup_disabled())
 		return;
 
-	if (unlikely(&folio_memcg(folio)->css != wb->memcg_css))
+	memcg = folio_memcg(folio);
+	if (unlikely(memcg && &memcg->css != wb->memcg_css))
 		mem_cgroup_track_foreign_dirty_slowpath(folio, wb);
 }
 
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-02-01 17:21 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-29  2:44 [PATCH] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty() Kefeng Wang
2023-01-29  4:09 ` [PATCH resend] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty_slowpath() Kefeng Wang
2023-01-29 10:38   ` mikoxyzzz
2023-01-29 21:48 ` [PATCH] mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty() Andrew Morton
2023-01-30  1:16   ` Kefeng Wang
2023-01-30  8:48     ` Michal Hocko
2023-01-30 12:20       ` Kefeng Wang
2023-01-30 13:02         ` Michal Hocko
2023-01-30 19:30         ` Yang Shi
2023-02-01  8:07           ` Michal Hocko
2023-02-01 17:21             ` Yang Shi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.