From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 A052837A833 for ; Sun, 9 Aug 2026 05:13:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786252427; cv=none; b=IT421O6XvRzIkd758lY2lJYerBMGsP9NeLgwefMezivs78H+I9RJeUGop7Xo64o4M53dpKAis62d0tyJb/YNLVKxBvuDiEcqeDeQPXbUKwAVujKj9i4MJevtXnmHI5Zy8vvB6u2l6cLv/exAWXtUgfMUucoGpq67HEpe6pk04V0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786252427; c=relaxed/simple; bh=6dvuqsiO+YdPjPwRh19aCBcWaR+23zUclPcA+B2P6Dg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mCVcIc3Ulcg8fHyPSNGQWbgt3fDmSz8qE290UGRafP3zcytRPPEUy84OFu7vnMTG8XWYrFOwAPreuZ6+LPPBCM/6q4nMfZs3A2PyrE4VgY0Wh63Sw6sKTdIAiIhmsMlurZEayy/Q/iytnXyZsDWFf+xoSRkfblAu1XnE0igZPdQ= 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=dBDLj/bL; arc=none smtp.client-ip=209.85.214.182 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="dBDLj/bL" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2cf52d15d88so5967855ad.2 for ; Sat, 08 Aug 2026 22:13:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786252425; x=1786857225; 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=Jxy36nydTdeDBb8ceeDdse8qoQ8B4JIq+QDkrcZSSIw=; b=dBDLj/bLXv+2dsIvrDLTpf17GSosidU0YlW2IZo8ww03ino1uSCNqfZUymy67F1lfy AGF8oUtuepmu75bEFNVzvW7b805IpL2rYt/KTm2b25T8ff1Tn+k/QzJZjiBRg6DX2Xq3 lf9HiP50ql1fWSOTWqqoqmKNghZU6Xtxl1nmJujUQXSAzpue7zUIuh178iq34PskBk8L L3D1j0jGhFbe4627Pu/30rlgLpiVOZuydl+pcD+X35CufNFbxhjKoABogLcPpdPGZkdI v88xXUrPy8NYDml2yQ1o/z98wHVpbK1srp7shC0b3ghAzprIBr9VXphhGz+Ayfb35vt8 xFgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786252425; x=1786857225; 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=Jxy36nydTdeDBb8ceeDdse8qoQ8B4JIq+QDkrcZSSIw=; b=Od3Ngs+cauVztnXcxymZLdnPYozo8F7/1reyK1Al9TUnzWvGieWg9bxgkyUfW4Em9W aqKTm75wp4NbROSrGEnTdS1rXta+OQ5zwEBDZOvnhzw10obdFawMJCMhBvwtvlmhSN6t WiveSrBBgVtH7ERmyQW53oq/rVWgqKgfJ0VyQuQc/HGTNEo1I/h3sBy9koHtqgCK5I3X qi8HoEU+OyMinSYjxEV+W2+T3BVNBCl5k9qWPxoqOTtxGMmfVC1wnI4+gilPhp5x8QrB lL3qRTFnwoAK5a1EzxU16fzrYejgl5WEb7N9rqZNcARM61nAHpVT4mkbebOgMa1+W4GE 9qNg== X-Forwarded-Encrypted: i=1; AHgh+RrhtXE++iO6iG6ZKePvj4buB+u1bQ9Tizj5lMJFdonZIzmarbWbTGzxUBSqdm0uqOlyy/wPinIvMZPdMgE=@vger.kernel.org X-Gm-Message-State: AOJu0Yz+knIb85VTvslklEzI9TgcAeM5bI3GcFJpoGRvEIV/ke7ggG7q Vn9MK4rnmQk2aUbK9Vt2zfUfJ9mDFnf0HSj/H294jbSrvsyhens/OWMy X-Gm-Gg: AR+sD11EzMj/JbWjWLwRFQDl7MoSqK0JPk8huUQE9qG9+93of1yhs/MAxUNQyVXRwIt cYv6HRNSsZmRtdXwVZdFqLrFbkS3/CUuMTk+Me9tt4j2062faWCUxHCTL7LC8EgYUV8+vMY4k/F FZ9c5yQVzxVhYx43nBS1T/TZgpbdYBZwbPlzAMQFK3AhuDUtrAK8vjSkzLy818tV8oyUsqRoXZB EjQdoYOKq9706zRXGP2dlsv7sBu7hS8/MffkVKSKiQ3j1Qe5XKVvXkjxeD9AO9oRPfmFU6uiTLj 59DPfUNCag9/TArb0ORLJstojJt5QMDbrqv5QOs910msgq7qydwWORxJmeDrAud4vTmG+Fnr89W Nj/HQmQH1jzdwKsKKaUuhEZxPQqclKtIgjasKeoZwnK6gnYvSh4jR5GQGAZ5EDrEtWuuGo6+OaO 5/y4KFmyqOOPpxrERxWG9fsEdU4vm3t0HBwotzn4IYxW4CuKvowYioaD/rAuUf/gOIdz/DAKTfc MnbsRKas6r9 X-Received: by 2002:a05:6a21:69a:b0:3c8:e313:8d42 with SMTP id adf61e73a8af0-3cbce96f6dcmr12821608637.31.1786252424949; Sat, 08 Aug 2026 22:13:44 -0700 (PDT) Received: from localhost.localdomain ([103.178.204.108]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315be8a7395sm27095702eec.9.2026.08.08.22.13.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 22:13:44 -0700 (PDT) From: Sreeraj S Kurup To: alexander.deucher@amd.com, christian.koenig@amd.com Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, airlied@gmail.com, simona@ffwll.ch, Sreeraj S Kurup Subject: [PATCH v3 6/6] drm/amdgpu/ras: Cancel delayed work before ACA teardown in amdgpu_ras_fini Date: Sun, 9 Aug 2026 05:12:00 +0000 Message-ID: <20260809051200.3276-7-sreekuttan2156239@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260809051200.3276-1-sreekuttan2156239@gmail.com> References: <20260809051200.3276-1-sreekuttan2156239@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 In amdgpu_ras_fini(), cancel_delayed_work_sync() is currently called after ACA subsystems and locks are destroyed. If the delayed work (ras_counte_delay_work) runs concurrently during teardown, it can evaluate aca_handle_is_valid() right before remove_aca_handle() frees the handle and destroys its mutex, resulting in a use-after-free and locking violation. Move cancel_delayed_work_sync() to the beginning of amdgpu_ras_fini() to ensure all pending work is flushed and stopped before resource deallocation starts. Signed-off-by: Sreeraj S Kurup --- drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index 764cd4950408..118716ad0437 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -4751,6 +4751,7 @@ int amdgpu_ras_fini(struct amdgpu_device *adev) if (!adev->ras_enabled || !con) return 0; + cancel_delayed_work_sync(&con->ras_counte_delay_work); amdgpu_ras_critical_region_fini(adev); mutex_destroy(&con->critical_region_lock); @@ -4785,8 +4786,6 @@ int amdgpu_ras_fini(struct amdgpu_device *adev) if (AMDGPU_RAS_GET_FEATURES(con->features)) amdgpu_ras_disable_all_features(adev, 0); - cancel_delayed_work_sync(&con->ras_counte_delay_work); - amdgpu_ras_set_context(adev, NULL); kfree(con); -- 2.54.0