From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17E7D27456 for ; Sat, 15 Aug 2026 00:14:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786752874; cv=none; b=BW4sH3yWpBPVu8fgUBMcgT3uCJpecXsk4t7tC8qmZA1iaglkywLLjs2Pl3rs8B0+TLFfwOLC2akUP5rnmROighdsDeWJHZiZvm+myEPXzMcG42mGbUaj5AXN1oU8lLSCpzjqGwdfpY4m66SzJRrfHYSio5i4pAApck88Zbi2RlA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786752874; c=relaxed/simple; bh=/Whztue2tCEx1xL3bSqW6ZiMs/a2ovkA84nzHZh9p7Q=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=EnhliEk4csPhPM9Wb/SGCxv7JuOg/Cu44ZpWmO7r2VeuaI+ED6uTge/3l0M39SYjLkKwvj7l3U38JRcZqWeDOTq0WxxOCQBYUfj4F27grOdqwBGd6E5SU/OiFykTxJxfbPp+WLSMvoU3/0XKLfzzDW1LZ4mkYfoRyZ4gQkGsk5s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OXCo87j/; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OXCo87j/" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-47362928f65so1475617f8f.2 for ; Fri, 14 Aug 2026 17:14:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786752871; x=1787357671; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=3FGO108lsW0Q2DmOOQyHg7JpVvYJd0aNzzzQnAbrcaw=; b=OXCo87j/ny88pgW8N8VryEhZLTOfH1nL9Nwf68evuBQ9N3R8WuXqfyFPWaciptOEFd KyK9b9C0JUP9dlkMo7IbS/GJz4KiFM9/Hcxwv1Jd5UPCDPvUte1JhjIpQ5ftCry97Nay QBz96YF047SE/dFmY7JkDxxFQq0ghFXgcSEf8LCSuZ8/w514+dMAIdvYciZGGy/Ww0xb kHV0CcVaQXzWlACbEz40nEfokwgEmOWjYGReDEwAjBbyb1sC85ND5ZgfBKWmIkzzpagA pfJcEiQOhMWTi6BfG3lFkbc1pQw9g0sZQVwDP96bb2uzljsb842lCr/HhYF1cHufkS71 wltQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786752871; x=1787357671; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=3FGO108lsW0Q2DmOOQyHg7JpVvYJd0aNzzzQnAbrcaw=; b=nbSZ8o0NA40fzuvlC2zaRZ0Q9sY38M8/8jDeMBHe8hVYbrPtzDLffggsxaJrPHL62S LGHxlkpVCRhMQAkiQrlpcPcf6EiKJJpujjp8nA62PPHxS5Tp+xbRDsr1TiTwAF6x3WDo r/TLvi+pRryEzuaptFatcyer08shcmrBzcbfdVQT61VSIAZ3mQwWdgTAdxpoz0BYpO1q 6xsaQ5d/bfxtCQpjCH9V7Y0VdBMgIOAWbeEKxDRQG2gHZYaACNtZY9ckRBZotO49uAl1 eLFcH/1Fd5rJNL1VAfrjem3o8B8+Sbty8JQDag5/xFT20SntL/u9QVQCyApV7BTaY4ta jOeg== X-Forwarded-Encrypted: i=1; AHgh+RqPGqjzWCosqDi5Vk4CEjcxT6IsySR0myWHG3xQbK3lTU1wSBJQrh/Qyfj3C95JPeWGwwCOPy4B2Untvz0=@vger.kernel.org X-Gm-Message-State: AOJu0YzhU5NKF44ccvbZ0JdmAAeq3Mlaby5x6l70LfZabi2nyA0z9GCq Jcyx7vJ4UhRoBtRRj31ks2QR+er4QE/C+LFLg4SGv+jBHYGYqVQG3+KIGzlZ X-Gm-Gg: AR+sD134eW7Q5uXhVLiLr05rfAPu5UTZCuc59jdzCvMOHB7sjydHZMitGniwnnasSOR iVnCw3YbOUqM8h5gZEirW7f8qCTdBHfmjhvoiIZiCGPtAAnJ5ds057tWCToza9yiJspV2JA87c3 2LYkD8S8VVyMuiPag06VEM+O5y4dYls/kMHHyDr0dKYguCU1VPy8GnOPGnL7ZTKJiVx87ljN7VT akqYroXW4u+Wx+/ikOisyOdG7FLe16cZW14/O6KyCdg+VGPvJCa52fwkbcjHtDF2d5zaXm1FX/R a5c7mvOehPwyz0WxPa74yG27iFJg7l2jUnfM6dUk3BIVE22pmE0hDbqc7wupodDDZkDx3+bUQ6p Mg+lEtVke6qNmxLIyui/gh2dKZXGEizXe0LBB6+7G3d+2rYM+hHt+nHCHGvyev3b4Skj+wLBgdk 7SUuz0rxmthkALrFYoL74l9z1ZTAMYM+iItGyP4zuH0g== X-Received: by 2002:a05:6000:4917:b0:47f:8f8f:db74 with SMTP id ffacd0b85a97d-48160714b64mr15386018f8f.12.1786752871267; Fri, 14 Aug 2026 17:14:31 -0700 (PDT) Received: from debian.. ([2001:41d0:303:db6b::]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815f2b1a91sm11431444f8f.21.2026.08.14.17.14.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 17:14:28 -0700 (PDT) From: Tristan Madani To: Keith Busch , Jens Axboe , Christoph Hellwig Cc: Sagi Grimberg , Caleb Sander , linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Tristan Madani Subject: [PATCH] nvme: add missing SRCU grace period in error path Date: Sat, 15 Aug 2026 00:14:27 +0000 Message-ID: <20260815001427.3148050-1-tristmd@gmail.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Tristan Madani nvme_alloc_ns() error path at out_unlink_ns removes ns from the namespace head siblings list with list_del_rcu(&ns->siblings) but does not wait for SRCU readers before freeing the namespace struct. Multipath code iterates the head->list under srcu_read_lock() in nvme_find_path() and nvme_mpath_revalidate_paths(), so a concurrent reader can still hold a reference to ns when kfree(ns) runs. The normal removal path in nvme_ns_remove() correctly calls synchronize_srcu(&ns->head->srcu) after list_del_rcu() to wait for in-progress readers. Add the same grace period in the error path. Fixes: ed754e5deeb1 ("nvme: track shared namespaces") Cc: stable@vger.kernel.org Signed-off-by: Tristan Madani --- drivers/nvme/host/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 453c1f0b2dd09..0f5f13ce0b438 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -4295,6 +4295,9 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, struct nvme_ns_info *info) last_path = true; } mutex_unlock(&ctrl->subsys->lock); + + /* guarantee not available in head->list */ + synchronize_srcu(&ns->head->srcu); if (last_path) nvme_put_ns_head(ns->head); nvme_put_ns_head(ns->head); -- 2.47.3