From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 8773744A71D for ; Wed, 8 Jul 2026 14:10:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783519814; cv=none; b=Jcgqsk0fOd3QKmHiKwjO8LaGQZwY6urqmW928wAgbs4ZucPTiqMqjYb+DiufcpShl0qIHw2hwRh69mMuhHUkOXmVk9jmYP/mnA/kM80zx2kbvOe1P7FXcpT8wLCZIBkND/QAKAoqRcqvgo5gNuEE/DtnfVHT6A2aKpGlqmvnNcQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783519814; c=relaxed/simple; bh=05ucUDnwOHNaxkux3/UftcRKvD5KwS5v8V1vZCmV6ok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hJml1856Fct8u+4+DNPvBwoSe5F5O0lpwi26lIEuirWEGjRa2KtHkEBx8ROzbbyZxQsfpD0+KwsUBKrynaOkBryzJXScwuh0yUCj0x/2hZw/l4fC3M0cCJ3s3EwT+44wGUjqO8hDBIif2dRbu5aJQ13qHAycMVnh+qlrW/GgyZQ= 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=BSLYhxk/; arc=none smtp.client-ip=209.85.218.42 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="BSLYhxk/" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-c15cb6f5c12so148050266b.0 for ; Wed, 08 Jul 2026 07:10:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783519812; x=1784124612; 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:content-type; bh=d8WQTKp+DQlkWDWV6K0fBqOjwjvG0ClbVN/kOQS8hWI=; b=BSLYhxk/H6Y4EKy+NfZgEgevrMdJZvQIJt/thDNh9MHWZ3FGimFU8TsvmZtHTtnV1d uAlH+aVYi5c92Mt2JIkBfK2WtKTeOEUVfwi+pyyf2pQ0sL91VQY/1/8ANdgHMzcjqu5N exGyA3PS+UVQNq/6pP6BnrzhzYlRbfMfUtx1nVFdiymdoFOIeIFssTpeuWe7osmVftWP B1NNEDaJ0PxVm0ImulscEbjBelFc51O+Q/HG7Djm+CBxvb9bGfp56m7hfTC4IrDiG0J8 PVIFenEwfbwt8qmK78RGd7Ad7uw/HqjDGISbutkIuzkcXxQgLpVFibBlz3tbaYTg+sEE wg9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783519812; x=1784124612; 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:content-type; bh=d8WQTKp+DQlkWDWV6K0fBqOjwjvG0ClbVN/kOQS8hWI=; b=NX3UM9nuik/0t6XVQg2G7SrolNjQcBekTEYRv2TsBkXkkRGktZD9I4LUo7NlLQkE1v uIrWQopty/F02DtuGmr9ueRHO8X45SVA9NFjEqV9nhRBXUn1qXzTvZNhIAELW5qTvTxa jsV3XJqepMqi/MxZxa9BkopgTt1inNNFkvNTEEoZk7ovkViszod/LIzBj1hI0yp3R0qY MENRoplgJe37wwZqlSlEFw1DYm6vTTIsrLR7oVrGYp1TTfb+AwqzdVAGcQ1lG8YmG7ch 3Q2upfoCbM2o5oiV1fv98aikLyQQN2/ORrEgkRMxq8qX4msYf/t6z0nlUjPWNK/1/8+F no6A== X-Forwarded-Encrypted: i=1; AHgh+RrBNa+HHSURO7/dc2J+RwjNTih74hZDSDWoktkLFcHICUweQ6KKhC17U4bwnmaDzThYGsu5dHsnpDniONw=@vger.kernel.org X-Gm-Message-State: AOJu0YwV5llA8Uimc6vK4T1HR6qVWb740+BA9TcfnXY48+cunWKY70Kn lXeb16zSXO6mBHWR7unaYhro5bI70RN9riMZ5v9w2xMEWKqRht63I+fwTVXlpA== X-Gm-Gg: AfdE7cnHpzYEh+yEX4lxx41QzhL8hAotD/ZbDUkxW76p7RmCmhjjHL4j3HF3pfmjcsV 7fctI26HzKH/svsZ8PMm8dw2II2tN6On9CZ0xgOzfbtxShBr9TT/3vsf4+CVQd191YcGMqP1VG/ 666L2s9VH71JGeTdV0yFSwvLA98vff13QrXMKcb6cvFxOGeKH5oRMbwmfqdBL+jrQAYwz9GcnPb SP8UJL0r06aoAAERXYb5P853V3q0VwtSERcI0LdvmXLXYx0i+XxSDWQYARac3Cm9Etx2WmFCQdg +OUJ4B1V+ACaLKzEYYXxKqXWrhWC8VRbkU/vzw2BmknSXoih+ITHIdcOPPP21h+BVKVSG0HmgGR pGqyjBWyjchQHJ9NSW2j5FK9i8aor29jXC14XMsmSGmxNVn7z4XUoI6WEDnksr2c4dgDgPfbpc8 WBACweTw9Yq+un6nMTlr5FjVEcS37udErT/pHZqMM9MZYHfAin14IX+/EywCIEjZsptlH9CQJKL 1+b X-Received: by 2002:a17:907:7ba9:b0:c12:8a3f:3e16 with SMTP id a640c23a62f3a-c15ce092b2fmr141410466b.44.1783519811737; Wed, 08 Jul 2026 07:10:11 -0700 (PDT) Received: from fedora ([102.78.186.161]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ad84bc3dsm335198366b.21.2026.07.08.07.10.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 07:10:11 -0700 (PDT) From: Jad Keskes To: Borislav Petkov , Tony Luck Cc: linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, Jad Keskes Subject: [PATCH 2/2] edac: edac_device: don't re-arm workqueue during teardown Date: Wed, 8 Jul 2026 15:10:00 +0100 Message-ID: <20260708141000.1764100-2-inasj268@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260708141000.1764100-1-inasj268@gmail.com> References: <20260708141000.1764100-1-inasj268@gmail.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 edac_device_del_device stops the workqueue then removes the sysfs attributes. But the sysfs store for poll_msec calls edac_device_reset_delay_period which unconditionally re-arms the workqueue. If someone writes to poll_msec in that window, the re-armed work runs after edac_dev is freed. Check op_state instead. del_device already sets it to OP_OFFLINE before tearing down the workqueue, so reset_delay_period will see it and skip the mod_work call. Signed-off-by: Jad Keskes --- drivers/edac/edac_device.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c index cf0d3c2dfc04..50ae7f1e5152 100644 --- a/drivers/edac/edac_device.c +++ b/drivers/edac/edac_device.c @@ -354,6 +354,10 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev, edac_dev->poll_msec = msec; edac_dev->delay = msecs_to_jiffies(msec); + /* Don't re-arm the workqueue if the device is being torn down */ + if (edac_dev->op_state == OP_OFFLINE) + return; + /* See comment in edac_device_workq_setup() above */ if (edac_dev->poll_msec == DEFAULT_POLL_INTERVAL) edac_mod_work(&edac_dev->work, round_jiffies_relative(edac_dev->delay)); -- 2.55.0