From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 1781441CB4B for ; Fri, 10 Jul 2026 11:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783683388; cv=none; b=hwMd827fu5h5pXHFvK3NCyiS1f0Tlry3jEYNCXHs84qzQ2T+EfGDW8U7/COp2HWTIY55dwfwYKvo+iQvT5AqyPL6f0heO1D4YTo/AFaZwqsyDIgXnnGjG4SsLxJVpHOp29omDUxChanelOHQXYlXSgh6TK8rbW/HpBIZ7oa1fzM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783683388; c=relaxed/simple; bh=Y784NiPo/Lkfm2UuRmEX6I6Vl39TYNfqDYa75fJKlg4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MoYWYPlpnX33FLKDu5+rJjr9vIr7oFqMJjdsUl9YhX7KEiN9JU2Ar8HBbLxJxOdz1w5nwe7h2+1jq7vDh2FOQIeDoz5Jon0ievvB+2gL1HEp2LHrRoNHZJnEhsNEwR7RRKB5QQqTnuzy8Hi4P2cpj8m73Djvm4jY16rXEYXxa84= 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=IAZLJk3a; arc=none smtp.client-ip=209.85.128.53 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="IAZLJk3a" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-493f431e317so4475275e9.0 for ; Fri, 10 Jul 2026 04:36:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783683376; x=1784288176; 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=Wr86uApLkpfSeVw0S+gM2kwm+DgPZ+faPytZybQHxag=; b=IAZLJk3aKuCNJ/H9jHH+OXOWehB2wuOkp0vMH/0NnqnalBYvfkmyH21a4KlSpGJR1Z d/4QPBd5Vli3m93FNi56imqlzowtXR2nGhzQDRSsRCHLw21SqzuaTx3BFyrVNbMmfRAn 4dJ6loRZ0zBttlK0eDLglM6C2nUB8GOtNjL6IFq5F6I+8zuPOf2I3ClzgcmfoozjqL6j dIStpAGTD9nJuSA5g2fiY6VtMGDNbKaK25m88LvzU0GIA8ulA9bM/wURHRjvOFkaGY+b HEWwmytCZA4MQ7KZFGltUA4l7u1rQrpdrmeqnnchZNcyBUtt8IUU4iqcA1/C8lBIGgMV s4Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783683376; x=1784288176; 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=Wr86uApLkpfSeVw0S+gM2kwm+DgPZ+faPytZybQHxag=; b=cetn4xgvb/qjNiInwL6XP1zalEb+UwfB32lXwn6Mq7UNGsVrO8cfNkKDwYpZ8clHeP bPUKKKIwbroePBjW4F5Eqdrgj8w3nfDmzdIKOxLb5QFQbRwKfS9Y/tPL3Thxnl3Vne/b /QNaGzKAZrWOtJjgksNShYZ81sZcVOVc3FuoGy5+jUpb7wI3sD31dBdyCK6R5oVNj9js iB+1VSe2sPYAyFUn/oWb4lrLZ5J7injCN9yYt9LgakrReuEmwQLcLuBb9V2bXOQdjuXI WutEHjlYm4YcRaNHhJH4tf55WCXA27zq69cZEqy9AB9buIv6rwGeWL8+KZbzvOi/7nBr n1ow== X-Forwarded-Encrypted: i=1; AHgh+Ro5Iksu/D1pHle16n+4okE4m5poTRA2h4Gp5s2YCMEHr5vy8U6KXLBwq7W4VvvF24B2OLY9BS4OItdPzWU=@vger.kernel.org X-Gm-Message-State: AOJu0YzKxBGYpRJ6knKve0xHyJA3IQRtz0boDF8F6FbHK1pU6C2tWRQY 7YvCBLiK6n62pRjorClZzFb35YuFZMpaq8Q8ddHqghz8RFJixN562gVn X-Gm-Gg: AfdE7clmDlfNkjGsTYxIbQCuJD84zME4pHLPln2tp4KGxJ4+BPEH1W0XpjswC6w7KBW sDN5x69D0hUHlQWqj7nIa+38m54mG3tP9tQFtxrnVWPyMw0csZRELLk168DtPFyuhEN9VTpqNUb FpFYgGQ3SJRx3D15Uhtk9S+n0OzaY0HmlRCFvCtqLPTRikgsUtLcrRCj0aTU/qo4KpH8VEjoRZi X3SYPX+bRCwgfTgfhc5TrcytC/BGNjrdP5HmUc2Kv/CFV7gHlGskIqCmE3yIrIFrfKoxupBBQYC qMxs3lcEFB+V0Cp7doVCjL7/zvI/AMGITgZE42+rbh449q8rAt9Q7gzAJbMTIocZT3K8ZK2Byvt gXdfHZvG+DKYTZAuv6DTOLSn0kAi+zltJMBQ0kKPY05IfwTLmKZo39qc4CI+Tn5jaQSJbjLdb5b zjZPSfQawXrthVLXBd/JT4tCMdJEu0rANsJNyCEp25tLNwSeHGn6g6yx8ndEQn23POVxEJdrzy0 p7tDA== X-Received: by 2002:a05:600c:3e15:b0:493:f6e6:ce2a with SMTP id 5b1f17b1804b1-493f6e6ce2fmr7629615e9.2.1783683375885; Fri, 10 Jul 2026 04:36:15 -0700 (PDT) Received: from fedora ([196.121.194.252]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2e77c2esm37069885e9.2.2026.07.10.04.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 04:36:15 -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 v2 2/2] EDAC/device: Don't re-arm workqueue during teardown Date: Fri, 10 Jul 2026 12:35:48 +0100 Message-ID: <20260710113548.46266-2-inasj268@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260710113548.46266-1-inasj268@gmail.com> References: <20260710113548.46266-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. However, writing to poll_msec triggers edac_device_reset_delay_period(), which unconditionally re-arms the workqueue. If writes occur during that window, the re-armed work runs after edac_dev has been freed. Fix this by checking op_state in reset_delay_period(). del_device() already sets it to OP_OFFLINE before tearing down the workqueue, so the new guard causes reset_delay_period() to skip mod_work() when the device is being removed. 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