From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 BA4671D63F3 for ; Mon, 23 Feb 2026 17:24:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771867463; cv=none; b=tIZuB8RXBeUXDPLd6od3eun6i50NdX4/T0PqU10dYuXSWr8VzQNrQpKNVkd+0EqIrjdrRu6yiewbIM/ZzdB7Ll07DfPgguzwXsesE6SdZWIyQ5Anen0XEX2MQzHs+is1tRI2a8qa1+hQWFXeSmY8QnFBYa/84n0tDRmu/03stzo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771867463; c=relaxed/simple; bh=cL1tFFFxUuEE+UHLQZFCYfp0xPt14XXjFFwBnN7Q4Yk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DYaevYsfKu9BY+LS3qXtCEdYp5+PbONJUbgVglR8offgVntaq1uK8LKR76uzEn1PXGtMDaEGOSDubqNB5qIlReeAZY2CsUGYIuFNvBqN4RCcIQXv/M+vG73AtevBXSjiImiV3yGMg1sJNSW4LVtMhjncINXyjalwJkjKgNHh8Cc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cloudlinux.com; spf=pass smtp.mailfrom=cloudlinux.com; dkim=pass (2048-bit key) header.d=cloudlinux.com header.i=@cloudlinux.com header.b=Gmyp87Eg; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cloudlinux.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cloudlinux.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cloudlinux.com header.i=@cloudlinux.com header.b="Gmyp87Eg" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-824ac5d28f9so4727635b3a.0 for ; Mon, 23 Feb 2026 09:24:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudlinux.com; s=google; t=1771867461; x=1772472261; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kovlhYTHEWCe+6Hv08nwU/ged3f6bHNO5rTkjbt/oo8=; b=Gmyp87EgmrNPG5tThDQx1cfGlbZ/n/z5V5ycOLSiaxPKFb90k46ismMEI+EadZ75gM xs63o1tlO0uMnrRLKK6XxoGL9k8niaIZxrMbwQSyD5e4StOasq+lvoC1b0AWWBc++kNw QAvsbs8ObbNMgb+3f3xd0gAcO7Q8RWKIUFYohUvOc1Q1tl0qromNyehQVoYW8F/TvtfZ JPHVjgclgKFu05dHKI5eDNDA2vCkqnhN5sR3p3NeoWIhb/e+2AnXW0f5DgV+Q1iEZaDL n/pgVOgpxEN8PWvpVOXluufKdL9fZjCig2m+qIKpSxVVyy+xiU6ZIeJKbhHEDdA0a3dD YU6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771867461; x=1772472261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kovlhYTHEWCe+6Hv08nwU/ged3f6bHNO5rTkjbt/oo8=; b=vbjx+/BqCyKmnzhNkjd3Y43+LdT0X8JyM6vSsXVN95guo5RPg1WWPi2T1cYCshg8Pv SBjm6qg4p+rpCU+fpuMubY/c+2Vxuv7OAo5i/u4t+3SxP1ZQv4y0mJrGct32M3UwAKD/ ZnGHUcaePJgM68kpfNdTRVmiFS3V3VfLag9czVjSY3lHSj0UQFLiBXXtaO0+lX5Q3HCd MzOaFLf7r2XV9EUCzYjCZPy+A1c9TvmMnpRqAJ4QDipZ3KHYRVpr7Em9JqQsZIxGEomv A1p5c6ZXnrvn+DtUYeQI2NMT6roppXpHkQex7QRQNJos2AbxtqjNh+EwBRQWt/WcmCgH Mxxg== X-Forwarded-Encrypted: i=1; AJvYcCWT/1W9zKJud5mokulvUbqPag0Pr7hwm5pg1k/Y2vBJmsg5Vb9vl2Jbn3qSVk7qZmzJapD9aJ+xiS9zLVc=@vger.kernel.org X-Gm-Message-State: AOJu0YyVB/XtLcJLDUuRbqQvg/VshHt3rEVzUOYvldGPwjZo7hI66amm v2m9oENr8JMWoDk8/lv95sB6hAogswRspdxZPcdC9DWX9G+yEywRdFAw+i6dyFQ5TNU= X-Gm-Gg: AZuq6aJJJJzCylVDUAueiGOE4t3rmFyA00k5SGCCrX0pgn5XLlFXVjU9/zD5di5cPSJ 5nJem+AGaQrWvZgUYrJZTb0UeyDgf4Fc0ECO0ZvKUsaEzpUHejbzIX3wSISbIs3xphAcfG0awr6 ZzyJWNjHExriInwrfrsbSLIkE8crOiD6pFcPRscZ/c796f3sJx78//eePIeeIAvvacRdMP8CzMZ hwNCw+N19N9Nh7g60lBd6E49X4/4atDRqqFFxodugwwO+JfzcbkKaq61uCNa7Dg34C6yrVBvwDc ZWqDtLB4mWeeSNrGes2cc+i2LRR0EQdKM+7E1DdQgn+R/O5U9JAW5HGv7Ws5VfC7khl1XHCQ2/t bc60IUv91NjMUHPdr5Gc0uLPI+LXwMgj/aLQ3fQdGfWRodbtLL7n505RXNj+/HRPLGmzRL/gicm EvQLrcFKLc+JLA4U+3KSKb9sELmgBApec= X-Received: by 2002:a05:6a20:9f96:b0:366:14ac:e1dd with SMTP id adf61e73a8af0-39545fc297dmr8671445637.67.1771867460985; Mon, 23 Feb 2026 09:24:20 -0800 (PST) Received: from outpost.localdomain ([110.44.9.85]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c70b724321esm7802332a12.16.2026.02.23.09.24.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 09:24:20 -0800 (PST) From: Jaskaran Singh To: stable@vger.kernel.org, james.smart@broadcom.com, kbusch@kernel.org, axboe@fb.com, hch@lst.de, sagi@grimberg.me Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org, Jaskaran Singh , Marco Patalano , Justin Tee , "Ewan D . Milne" Subject: [PATCH 6.1.y 2/2] nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl() Date: Mon, 23 Feb 2026 22:54:05 +0530 Message-Id: <20260223172405.292040-3-jsingh@cloudlinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260223172405.292040-1-jsingh@cloudlinux.com> References: <20260223172405.292040-1-jsingh@cloudlinux.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit commit 0a2c5495b6d1ecb0fa18ef6631450f391a888256 upstream. nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called. Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed. Otherwise the following can occur: [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue: 0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS: 0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074] [ 1136.063179] ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540] ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898] ? move_linked_works+0x4a/0xa0 [ 1136.075998] ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744] ? __die_body.cold+0x8/0x12 [ 1136.085584] ? die+0x2e/0x50 [ 1136.088469] ? do_trap+0xca/0x110 [ 1136.091789] ? do_error_trap+0x65/0x80 [ 1136.095543] ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289] ? exc_invalid_op+0x50/0x70 [ 1136.105127] ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874] ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059] ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806] move_linked_works+0x4a/0xa0 [ 1136.124733] worker_thread+0x216/0x3a0 [ 1136.128485] ? __pfx_worker_thread+0x10/0x10 [ 1136.132758] kthread+0xfa/0x240 [ 1136.135904] ? __pfx_kthread+0x10/0x10 [ 1136.139657] ret_from_fork+0x31/0x50 [ 1136.143236] ? __pfx_kthread+0x10/0x10 [ 1136.146988] ret_from_fork_asm+0x1a/0x30 [ 1136.150915] Fixes: 19fce0470f05 ("nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context") Cc: stable@vger.kernel.org Tested-by: Marco Patalano Reviewed-by: Justin Tee Signed-off-by: Ewan D. Milne Signed-off-by: Keith Busch Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jaskaran Singh --- drivers/nvme/host/fc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c index 9b5976c80803..a355db38edc8 100644 --- a/drivers/nvme/host/fc.c +++ b/drivers/nvme/host/fc.c @@ -3264,13 +3264,13 @@ nvme_fc_delete_ctrl(struct nvme_ctrl *nctrl) { struct nvme_fc_ctrl *ctrl = to_fc_ctrl(nctrl); - cancel_work_sync(&ctrl->ioerr_work); cancel_delayed_work_sync(&ctrl->connect_work); /* * kill the association on the link side. this will block * waiting for io to terminate */ nvme_fc_delete_association(ctrl); + cancel_work_sync(&ctrl->ioerr_work); } static void -- 2.43.7