From d8d45e68e81a9ce06d8427d98ef3603eb5de25cf Mon Sep 17 00:00:00 2001 From: Chao Leng Date: Tue, 14 Dec 2021 19:20:10 +0800 Subject: [PATCH] nvme-core: use list_add_tail_rcu instead of list_add_tail for nvme_init_ns_head mainline inclusion from mainline-v5.11-rc6 commit 772ea326a4a00b6b4b2c8f3606ad10c31f46c511 category: bugfix bugzilla: NA CVE: NA Link: https://gitee.com/openeuler/kernel/issues/I4JFBE?from=project-issue ------------------------------------------------- The "list" of nvme_ns_head is used as rcu list, now in nvme_init_ns_head list_add_tail is used to add ns->siblings to the rcu list. It is not safe. Should use list_add_tail_rcu instead of list_add_tail. Signed-off-by: Chao Leng Signed-off-by: Christoph Hellwig conflicts: drivers/nvme/host/core.c [adjust context] Signed-off-by: chengjike Reviewed-by: Ao Sun Reviewed-by: Zhenwei Yang Reviewed-by: Hou Tao Signed-off-by: Yang Yingliang --- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c523286c5ef1..0bcd3f9bf45c 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3219,7 +3219,7 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid, } } - list_add_tail(&ns->siblings, &head->list); + list_add_tail_rcu(&ns->siblings, &head->list); ns->head = head; out_unlock: -- GitLab