Commit 9c147917 authored by Hao Chen's avatar Hao Chen Committed by Jakub Kicinski
Browse files

net: hns3: fix one incorrect value of page pool info when queried by debugfs



Currently, when user queries page pool info by debugfs command
"cat page_pool_info", the cnt of allocated page for page pool may be
incorrect because of memory inconsistency problem caused by compiler
optimization.

So this patch uses READ_ONCE() to read value of pages_state_hold_cnt to
fix this problem.

Fixes: 850bfb91 ("net: hns3: debugfs add support dumping page pool info")
Signed-off-by: default avatarHao Chen <chenhao288@hisilicon.com>
Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b8af344c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1081,7 +1081,8 @@ static void hns3_dump_page_pool_info(struct hns3_enet_ring *ring,
	u32 j = 0;

	sprintf(result[j++], "%u", index);
	sprintf(result[j++], "%u", ring->page_pool->pages_state_hold_cnt);
	sprintf(result[j++], "%u",
		READ_ONCE(ring->page_pool->pages_state_hold_cnt));
	sprintf(result[j++], "%u",
		atomic_read(&ring->page_pool->pages_state_release_cnt));
	sprintf(result[j++], "%u", ring->page_pool->p.pool_size);