From nobody Mon Jun 8 07:22:06 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 8E08E7261A for ; Mon, 1 Jun 2026 00:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274173; cv=none; b=sgTia7CGjUZ01Zeyu04oJ3QzvelYIhddUAwH/7hLb+xQ7NyreTVGn6TU04eziR5PZncmwpoa8H6hmh3aSzvBmH1SntFnhT6rMXaQRzluMEzcSDzzIy7Vq8gbOfmfoHuggK1mvG5Vca/UJk8CtyVW54GYlPbBBgcbunejpNzPOTw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274173; c=relaxed/simple; bh=hx410UHSdlgBtjJ9H09sx+B50T4kbh0WwKJI7BtUBdU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rlpb/q01UcY3bNaKOmYQfl+OpkInwnl5B+dyQt642FD1R9hwaddZbRHzb0QPd9QXXK3H71ufh4HpYI98A6PCgBsBBOtL+iPpGeTxCUhG7yLXiul6WferAwSagHXq60oi+uoVc5sNncT7RAYMEsopoj7afYXUUih6gBRL3bLUwEU= 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=dNQn7RlP; arc=none smtp.client-ip=209.85.214.172 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="dNQn7RlP" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2bf1f074a12so27851015ad.0 for ; Sun, 31 May 2026 17:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780274172; x=1780878972; 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=4Rpz+kGKDCFvWJqFvwgzUCdW4hrGHMFwU4vFb8j+Ivs=; b=dNQn7RlP3PtQEZlRmGSPx/WZo/y8U68kVPvnveuJnSflkfIayFRBa2QoOXPrVDhdnq aa5UCbLqP0Bh+xr1nRur6A7moz/zd1CEqOJjTkjklXu+xHxAFmcnvx08HhL4XhxuIv9K OD7Me1g2RDiW+8r025EovUXGIGwNhIYgoSX0AMrwsXc4gUJM176u0yJKcxsIA1PT/R2X CjpAK84VNVRc/gwuC9ZnfFEuD1H4u+fG9B52LIs8xyRGxNsTdHogztv821ggbl9qd8tb RkqYnNswOZ0Lm+redcdOJR3H73DzqHUTKr+eUaUurVI3f1FLuIIuh0n5VlvHs8spmvDx lN5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780274172; x=1780878972; 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=4Rpz+kGKDCFvWJqFvwgzUCdW4hrGHMFwU4vFb8j+Ivs=; b=iuSbIsH0b2Tnzss3bo3HW+tKTAVNaN5t1KOJKpu7ezkmnimZCK0k8C+5X1CcSSIqMx sGzCF4bCw/SCaW3QQxH7cOZsPnAtPf0I7dPRK5gkT2r314qrY6fRdwwY3yTwLljBCOoc 6SaZkdya2QTjjNkwqvj0gbPFuf4dxa64h4o1xfIQ2DEx8rgDdB4wpza3JINb+UtvByxP F26SMV0csB4jjiQVIUpLwuJy/E/5Y0VhKFNXLJ075oUHlxyIR6jF6giSRuNoYHnBUquD K2vb19aniqJ0zA/tAM49WuIjBFiIcxPR0EbnSwFoHKb21DXhkZZAxtJeSMWI/rlofib/ oo3A== X-Forwarded-Encrypted: i=1; AFNElJ/KmAeQvP5qZL4XjhdERRD7Fw0s0re+pdRHvEiEDI7UzD0r7NPAvooyqJ4dtBqmMUufKu/EUabReKuBUYY=@vger.kernel.org X-Gm-Message-State: AOJu0YyJbl6Eh2jvPVOYfFGxQ95Q4ZqmOHOahqPn5KViAd+FdJz7AJFZ WprEtrlQ1G5I9LqpP0QZkckc/OSzrya9w09fpLNxX5Ptt3KVcrR87p+L X-Gm-Gg: Acq92OGO6Bkiv5OrMmPwbmyTU6fwegWukXoKOjK2TnSGB1K/2R8ncGQBynkYhiQj3PX T7pxP48g4ql13uo7FlnUq+vNXI9eKn2Ly1J4dcc2e71F4iEsXMbZlbqmDFOgmoLaKFkNgvuqYRE JlWdV2KyCLg9KYtjOErRemt2E21gvYTMkv/n7As3icOcSzTZik6V0u114fGVcZWR8nLV+qtLDv7 cEIPAQC8kVa9aTMENpFEbSDz8Tygi+6xS3X57xbV7PeGEU2OS5vUDK4/SGWZTy5lLCPdoDpSwWR D5h3L9tt6l7qPaCN1cX3x+DEYw3fvSlnDINTSd76l5Gl4338JXNUX5GGgxUAhHaBLmqiIie8LfS QVgi1aoWvEjliGklVdda7eQTfe31BX+ZJlWnQqV7xDCXN9pO028C5Q4CbFxKVr0a2HaVYeaCiQ6 VoHqBOUtT4XKFiV8IP1EKUpnPScBbwd08eGxQZPz3LXgGK39Pc5F2A72yRrGl/kYiP3td4UNRxh O7NuoyAn8EbFkDJRGR1/pdAuVoVmZqjpd8d2a6lhREYxw== X-Received: by 2002:a17:903:244e:b0:2c0:d097:51bb with SMTP id d9443c01a7336-2c0d0975539mr32384195ad.1.1780274171867; Sun, 31 May 2026 17:36:11 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf23b011f7sm111929565ad.41.2026.05.31.17.36.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 17:36:11 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Peter Ujfalusi , Vinod Koul , Frank Li , Haotian Zhang , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 1/5] dmaengine: ti: omap-dma: fix missing return in probe error path Date: Sun, 31 May 2026 17:35:49 -0700 Message-ID: <20260601003553.72573-2-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260601003553.72573-1-rosenp@gmail.com> References: <20260601003553.72573-1-rosenp@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: quoted-printable Content-Type: text/plain; charset="utf-8" If of_dma_controller_register() fails, the error path omits the return statement, causing probe to continue (and eventually succeed) despite the DMA controller not being registered. Add the missing return rc;. Fixes: 2e1136acf8a8 ("dmaengine: omap-dma: fix dma_pool resource leak in er= ror paths") Cc: stable@vger.kernel.org Assisted-by: Opencode:BigPickle Signed-off-by: Rosen Penev --- drivers/dma/ti/omap-dma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index 55ece7fd0d99..0f6dd6b0a301 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1828,6 +1828,7 @@ static int omap_dma_probe(struct platform_device *pde= v) if (od->ll123_supported) dma_pool_destroy(od->desc_pool); omap_dma_free(od); + return rc; } } =20 --=20 2.54.0 From nobody Mon Jun 8 07:22:06 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 91D373FCC for ; Mon, 1 Jun 2026 00:36:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274174; cv=none; b=oH5WnmsazbBQT8llK6X1F1kRPe2oRxjPCRVr98+8k+d4ZAy/kC/WnyKWsKT0jkcDP10M7q8skpLzglWH9LESvGDR6PTj5OS/ztONItFaQyRwQm8GK9nzxX3dWoG9k0sS5ZGu66ZhjlmHa1ggaDnoCH6kPNcKCFnjs5HmbxeTsNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274174; c=relaxed/simple; bh=IQfxgm2MWgvf9AN1+HadB8z6n3kjnD8BRuJ/NOZfTVg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mc8dDaHYyWQq2O6CXcc9fg9c7pqNT+sA2faapBhXBVwO2UORmBrs9wKHnOlNWv9kSwk7Gng4mYH+aqYO1YIJblFbY6LVxF7lQmJhxGmrXwHnXOZCG8xbMikDz20Fw5YVLV5ywHov4EC26dmMxGPZqeHJ2X29AZH4HfRC0n3i5hk= 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=ItnLthEj; arc=none smtp.client-ip=209.85.214.172 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="ItnLthEj" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2bf30d530bdso21531245ad.3 for ; Sun, 31 May 2026 17:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780274173; x=1780878973; 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=Ev7p7h9heSSNp8XX7uho86JPebrwudJ97FaZXIjk1zc=; b=ItnLthEjG6BRR3uZqcEr6OCP+yLHKI8gJQvfXw/GbO1FzwWbQzDoQW74AZiwU5ve1K RG4qIlpDRkfUrTv0HddR+fYiqV/fF1UsXa23pwwsJABveVWEQJpO3PpjjUGAQlOnYTmg JGHYvoNQeE94S4NAZbmT/zDSAPdkANtp5I9gvPfhg8qL596qVngdMPD5KjCVhiedDy7E JE3hxbrjb2scKdJ0W5xmY3KC7IQTMQZdrhMTa8s3Vf0x0jp+x2/B3mYwA6DgsKHAdZaV xQ7HwCK8ESWWYes34CJoZ8Wg4C7nD01RibGuls2CscYxz9UEubJTTlAsNZ05MYTIVwl+ GR7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780274173; x=1780878973; 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=Ev7p7h9heSSNp8XX7uho86JPebrwudJ97FaZXIjk1zc=; b=WdlwK007uv3kcFndEoSS+m89xtPimB8EYG+Yx4GII5VAZau9m8S1XkwNt9kPlAd1oQ Nnfk7l6MfOMgC4EAMG/i6DziETMUXnUkTK425JbKS8Q3TyWQn2k8D7nBunskatUnszsM rR67pbCOnuGKJZR4IQ/pG1cj4LhPP6cKp92xLLj2zCX7zFLklzR4Uy7A3LDZwBs/7dcT JepGK0xkAQ8+MSXDamkfF5J8sHztp56F83DravLn8E+BR2gHnHvGkVc//pPgk7j4cqxK tg4Dfi0gQz73R6o/LV/qoA54vF0/b6CK6AC0ohFpRY9HJdudRG75ApP3j9WPketKh8v7 c1kQ== X-Forwarded-Encrypted: i=1; AFNElJ8E5Z/Z8ZJIv/tEKgwygspcmKae7WtW4FW54eGmZIlz4MzNszl2oRvvwGmpZUACL+WBC93wpL1zfVPEKY0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2EQc6yToHs/PNH+1jm1Babvq3318JvVprPAoQ7JBoZiXSq7Tr FYpsToB9yT9EI7sr5qsRvhVyJmkIx2TLqXUqVn6HJ4qUzpV538YEhzCL X-Gm-Gg: Acq92OHw663DqgN5LP9gjrPcATLSiWAF8gR1xAuhttDcP4omXZy8K3bRBfQrjYZ0/1u GEh5lEwpoYbMR3150ExnyxAcAhhqlsLZ7RE+AydxDH8Y/c3kHfZSnZeX8XVCsmccDcFeP32a7Qv mOA4foQQRvlc3DBTkLKNiE1rorCz9tQEtgEyRXpD49gkF3ZETPaUsC0PzrNYRt5ALl97igIAamA uaItPeGRc8ObwQz5m+jhRBaqsYR1sTJNRmQj11QRAblYLJS5BleaBXIfx+fpy2nO+AeCWCjvUaJ ibSMtCswAe13GmX7xgmqvNgaIjxoeDBPrD2+A66Lb59os7E5ebMdiX2naOStEqydfHaeqCBK+Nd uUB/PgoWKCiREN2P0SJLA+1ozM4csEQnQMwnWCEJpiYuQ3h8zPwKHrcXDo6oRBZc3i3top1jvLB tVC2LyT1IT3FoQFGpPMWr8kmefXSZTNRUNDIgxkhIE0Uc/Au7cl27HMR0yVezvi/YliRjgOkcHj B5tusfeNC/XMlj3+m2yJ2IuVreGTJYjNfRmfwF4IG5MeQ== X-Received: by 2002:a17:902:c942:b0:2be:39bd:8dd8 with SMTP id d9443c01a7336-2bf36841438mr103458605ad.33.1780274172925; Sun, 31 May 2026 17:36:12 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf23b011f7sm111929565ad.41.2026.05.31.17.36.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 17:36:12 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Peter Ujfalusi , Vinod Koul , Frank Li , Haotian Zhang , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 2/5] dmaengine: ti: omap-dma: fix notifier leak in remove Date: Sun, 31 May 2026 17:35:50 -0700 Message-ID: <20260601003553.72573-3-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260601003553.72573-1-rosenp@gmail.com> References: <20260601003553.72573-1-rosenp@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: quoted-printable Content-Type: text/plain; charset="utf-8" The notifier may be registered for needs_busy_check (omap2420) rather than may_lose_context (omap3). The remove path only checks may_lose_context, leaving the notifier registered during driver removal. Check both flags. Fixes: 2e1136acf8a8 ("dmaengine: omap-dma: fix dma_pool resource leak in er= ror paths") Cc: stable@vger.kernel.org Assisted-by: Opencode:BigPickle Signed-off-by: Rosen Penev --- drivers/dma/ti/omap-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index 0f6dd6b0a301..839e04f53fc2 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1853,7 +1853,7 @@ static void omap_dma_remove(struct platform_device *p= dev) struct omap_dmadev *od =3D platform_get_drvdata(pdev); int irq; =20 - if (od->cfg->may_lose_context) + if (od->cfg->needs_busy_check || od->cfg->may_lose_context) cpu_pm_unregister_notifier(&od->nb); =20 if (pdev->dev.of_node) --=20 2.54.0 From nobody Mon Jun 8 07:22:06 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.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 BB2441B87C0 for ; Mon, 1 Jun 2026 00:36:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274176; cv=none; b=m5PM/kKBI5FG4vE3YTyk6ofqkvIP5IrP/ESJoZdHzVqtgeCSIvslZRRQ69CiUkEeUNlyPBu2cf92kClRkvcE6rCjMWqjuCT5T+KtuX/4VeDZ5cM2IO/cQgEP/qa2PhyxeqUtH1jaoXHVre1CHhqg56YcRWegw76euVAMvRHuwZQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274176; c=relaxed/simple; bh=uuAw+Wh8b6dndSMT4KfsWlWqDY3OC7zXcn/LPa8xH08=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fKn3N7W5xM6utiyO8I6uISIwNC1vgOhm0UH/c7DceOXQ4/mLTeQIQd7MStyq0UDtrqFLJ0fM2Hoi4bUr/WscWd7iAnsxntW2PZe9BSBERQSK+2AA/+kYeWKvpCLXf8pSJEzA3+XAVqFNIcfYC8HjipRL84UiV4tJWBOfD7pqakw= 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=UIBZd50x; arc=none smtp.client-ip=209.85.214.180 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="UIBZd50x" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2bf1cda2b17so19289515ad.1 for ; Sun, 31 May 2026 17:36:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780274174; x=1780878974; 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=URm5CekzJYxc5s9juYhDgo8eAbfkbMZqryXqUOBN3KQ=; b=UIBZd50x/9C+1VtnBElodaXc9/yLfW4es93wn2zOS3miRnXHByC/HL5/hfVIIqTG8d 1R+NLAx4Okp7ecYs5bv90s7JmsacrrRLbWuZ0i1Pcx/jD/Yz1okx5Qvgct94mT8OytZu LfDBLCR+4SrIlvzIAwxolyJ+3XP4JP36e+m8G669Cky5yIg1u5pxDdxMvyDNH0DQWb0Z tHw9ICr4mLEiIxwo17n0LMi2DtowpVs2fn/U2wz/2hGssA0OoNLmvOyI3QZ609XKp7qp 1en5vLv4bd+d7niJcUCH4nCUXDGPaLWz5bECKKwZjgVawgTHSVDPVCbpNdlLS+Bas7Z1 ztkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780274174; x=1780878974; 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=URm5CekzJYxc5s9juYhDgo8eAbfkbMZqryXqUOBN3KQ=; b=KohWp1vFwfKxvBJFt06sD4U5KcbJzs7G6RSBo2bFr25kykg4pd0g0mx9bKukv1HTT0 Ufa9qvW3v3l2qnaErgOLXwQgRHxPoE3NLS+QteS4nKBZLgc97KhFCn9RJj89B8gI/QYq DWG0DtuaGfh6OJ4gBR0w6zHBngwbHo8KSUuKiXnXBcRA7vvZHFK2hEuIJd1vjiSztiI9 HW1DixXTLRrurLL/CsTGmxYXh/9uW7/KT9/SDhahopVQcwW5e4dtJxIwSBYoNfSNcAAk /pi233kDbM7FgNB6b968hyivdTjU3LwhH6/ZudVbLrLwuToLe1yBTvCz0XxnBEcRdjZU sJng== X-Forwarded-Encrypted: i=1; AFNElJ/j1rCSlDRYrzIE+XJPaFDUFOey0gBluAs4qGMfEVaWszRAOLmitB675jbkuekzi8oR0WUT5LpxoGyefbQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+WmT0pGTWRnctfVBVrP7J0r9kpK4FUhO06iM81+1o0IUt42Z0 7uuBuQEy0bTw60vRCg8yZOVyTo+oUI7eRvFRx+LD/gLyYKNTHK65Vpgw X-Gm-Gg: Acq92OH8B4oh6op2DJCk0azQwA+R2eQq0WrPHqu4lxocmnZB5aFZbDwLFY274u2PzV5 H5xGDOMbF5Wqil730bcF0++X5WJeHeYye7gWd2xBZrImgoLwqJEOti3AJ1F7BfTZJVGqXikZTaC VxeLK5t39iL3ccuhx8q+JMysZv1E3Lh9P5Jlz2WY4nnksBXhCi5pwFBLc7TAjOY+mH8YjXlTCoB crhPrZT/Q3qmCtL5eQuRSqNw0T85o+FXtPTEoeLQF4seQpvUYCFs5oSLzOr5sKuNdLKVfrryEMO 6m8KspvOxflj/uMb37ayZXrU1vyHSskZk6Q9tmGuF54cD+8CxDpp7kDiTEEs7qrfo7RZhOMJjVW lAFbfwJ2Ftx4zaldMUB3wS+4W+SKKaQVFPhgOOFh+5a5a5JenHpUx8toJKLZmOHWrxjaEGcmNeu QF0UJCmlLXfg8RFvFdJQJTQkvUYK8NTmRm9NdBzUtY78gKPOyB7F0gGSgPWyol4dnS6kTri5j77 n1001lJbrGJFqICvNWNVEwl//taQvCLfa0Qm4/PPISD8Q== X-Received: by 2002:a17:903:2acd:b0:2b2:4bbc:14b0 with SMTP id d9443c01a7336-2bf20533582mr107605305ad.20.1780274174045; Sun, 31 May 2026 17:36:14 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf23b011f7sm111929565ad.41.2026.05.31.17.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 17:36:13 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Peter Ujfalusi , Vinod Koul , Frank Li , Haotian Zhang , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 3/5] dmaengine: ti: omap-dma: fix dma_pool_destroy before omap_dma_free in error paths Date: Sun, 31 May 2026 17:35:51 -0700 Message-ID: <20260601003553.72573-4-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260601003553.72573-1-rosenp@gmail.com> References: <20260601003553.72573-1-rosenp@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: quoted-printable Content-Type: text/plain; charset="utf-8" The probe error paths and remove path called omap_dma_free() after dma_pool_destroy(), leaving the desc_pool dangling while freeing channel descriptors that may reference it. Reorder so omap_dma_free() comes first. While here, fix two additional pre-existing issues: - The probe error paths that run after the IRQ handler is registered did not disable hardware interrupts before freeing channels. If an IRQ fires concurrently, the handler could access freed channel memory via lch_map[]. Disable IRQENABLE_L1 and clear irq_enable_mask under the spinlock, then readback the register to flush the posted write, before calling omap_dma_free(). - omap_dma_free() did not drain the virt-dma descriptor lists (desc_allocated, desc_submitted, desc_issued, desc_completed) before kfree() of the channel. This leaked pending descriptors when the error or remove path tore down channels without going through omap_dma_free_chan_resources(). Call vchan_free_chan_resources() before freeing the channel structure. Fixes: 2e1136acf8a8 ("dmaengine: omap-dma: fix dma_pool resource leak in er= ror paths") Cc: stable@vger.kernel.org Assisted-by: Opencode:BigPickle Signed-off-by: Rosen Penev --- drivers/dma/ti/omap-dma.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index 839e04f53fc2..dde270646bb9 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1522,6 +1522,7 @@ static void omap_dma_free(struct omap_dmadev *od) =20 list_del(&c->vc.chan.device_node); tasklet_kill(&c->vc.task); + vchan_free_chan_resources(&c->vc); kfree(c); } } @@ -1808,9 +1809,14 @@ static int omap_dma_probe(struct platform_device *pd= ev) if (rc) { pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n", rc); + spin_lock_irq(&od->irq_lock); + od->irq_enable_mask =3D 0; + omap_dma_glbl_write(od, IRQENABLE_L1, 0); + spin_unlock_irq(&od->irq_lock); + omap_dma_glbl_read(od, IRQENABLE_L1); + omap_dma_free(od); if (od->ll123_supported) dma_pool_destroy(od->desc_pool); - omap_dma_free(od); return rc; } =20 @@ -1825,9 +1831,14 @@ static int omap_dma_probe(struct platform_device *pd= ev) if (rc) { pr_warn("OMAP-DMA: failed to register DMA controller\n"); dma_async_device_unregister(&od->ddev); + spin_lock_irq(&od->irq_lock); + od->irq_enable_mask =3D 0; + omap_dma_glbl_write(od, IRQENABLE_L1, 0); + spin_unlock_irq(&od->irq_lock); + omap_dma_glbl_read(od, IRQENABLE_L1); + omap_dma_free(od); if (od->ll123_supported) dma_pool_destroy(od->desc_pool); - omap_dma_free(od); return rc; } } @@ -1869,10 +1880,10 @@ static void omap_dma_remove(struct platform_device = *pdev) omap_dma_glbl_write(od, IRQENABLE_L0, 0); } =20 + omap_dma_free(od); + if (od->ll123_supported) dma_pool_destroy(od->desc_pool); - - omap_dma_free(od); } =20 static const struct omap_dma_config omap2420_data =3D { --=20 2.54.0 From nobody Mon Jun 8 07:22:06 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 8D0D61F872D for ; Mon, 1 Jun 2026 00:36:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274178; cv=none; b=YvOUAUtGuUHVY5b9cDJG/wd5/UngactjbbtTm/R74jhHuhUv5n3Pb7eFHNRbYabO5IX13tpJD8s6L0OJawHEoglD1wSTz+ZoSdm8wRjhnsubGaRkRh2uOorRNV5DrDgVvT4T/feN/NIrd4Opbooj5O0BMghl+IokMn8bd2HkKTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274178; c=relaxed/simple; bh=IXal1n7+ZETZvFREA5V3rXNx8P5RBdGRelFW0RYF+ik=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cLhmIkAqht4K0IWTZW4ylC+5BbxnbT5Y1cD9n+LLfSesjCLVuwcSfRZpeNR9ApV0IsUOEugTQ9OXJpMQA9Id2XFEYa2kattiTlo2wTxHFXKGbWacZXr3zQKld8esMXUIBDHHe+o9nlp8zjPlMTBulBt4n8fD4tMgGZvl0Noz6Ok= 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=KSh5bwWT; arc=none smtp.client-ip=209.85.214.169 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="KSh5bwWT" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2be1dd4af34so142258275ad.1 for ; Sun, 31 May 2026 17:36:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780274176; x=1780878976; 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=fFhVfMwhRWdAZl7eEyRfgzenuQkgzBp5jMXHeHSYMMw=; b=KSh5bwWTGBFTBJ6H1NnCuZsuQGZZZJQ9qNOZ6x+fy3tzUJoPXOR4cXSKfuBPXDGpeP i1QcdfjuV/vqZCtGvAzBouIAcRbOuRm3HE5zpqacqc2iRGEnGIin0GBOB8iTKZVCBVK2 AJX+mSjfJsxDvOtiT0pPU7hZ053TJPgvqDbjfAJbUzpk/qHEs7Y2wR1b7/6fRQ4t+Fla C5BAY+NhALzHDD1v+20be+m5xf6Q8sgWZ6YyT0GkbllTyNPG8UuGsYpD5gl5G2aQCKIc mefsl7txlZr+8+EPD6o5PAKYyyhkdpErQ8sqMYxfyfAvWYzxH9iNb2VDMl9vWvhLZhwx xtGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780274176; x=1780878976; 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=fFhVfMwhRWdAZl7eEyRfgzenuQkgzBp5jMXHeHSYMMw=; b=j7pnOivaHVGDLl0fXlg6COX9SzrP3J5jwUm7vhMEVk3QVJ10/MNH07RQ12IxZkyDDI JBuZ2QD3XCbP2SfLH8Y+Z5TlGcuHCDfC67jQsj9cNyx3oMOAbmbQzOKaTuekzepvX6UV WVu9vsahi2K3Fn7DI8M/d/71YKAU4qDcto7+w0u8ZzxpG/f+hXbr0TEUJsW0KvDzCExu KjGPbmOWa7Vx1/dAMsuOVRbeQM9cOT2NGulmrnN4w+QH3rIWE9nPn61aGIzXAB3hok9N OfvlBbbbLjFlT6EVVQVulDgtylpJ+eEzxhwJxNwHnQVwyjDLE6K/vqIn6nrZwfgCu9tR sV8w== X-Forwarded-Encrypted: i=1; AFNElJ8ytW/o3629j13srN8UbjQtdM0QakM2ZblGv/q+5lDcODhVk8qHNSmtVCuWGfCRh7WMTF+RbdO3Q1GfVC4=@vger.kernel.org X-Gm-Message-State: AOJu0Yyjm94Ud/h+rx2rzCjo5YSzl1OBM9DJXY7vaS2ZemcoYNJ5swmH Bl9jlahvrvGussUJiJpvPMkPKLRfqXpWCHcTktmK1aZeW9GSk7Y62njG X-Gm-Gg: Acq92OEYrVsi3GzAQTHpNV1MMy+Q7xyMiv7GnBktS0WuwymBslKYCy4gyEDyzUeZ8/m 41s92JFul6PHlTC9JqbXDthuY12vmYh0A5oo4XU1D+cBosRfTUtHZQWteL7M9WAWSiPCoXzDuer KX5dKLoknMbs4grfN8Hh2zP2bEYyNOI0jhwiWD4rC+ME3CMPWtr2gdjpe/fgTlQa/04K5RvBUX7 MX8o0AOiOsLQKr4U716NI5KZfT5sEVJIZ0mSuk3GQqIpoblIlRjKavzpVUOjDF7FNdP5waJYzni PwoIlDC3EQ22SY1/9dlJhEt4a4eEwbS8S7bsaxY6wIeh+1td0qNvOcetejQX2gU+WBw62r6tZ9Q aORUH6CnP387nNX+tTHUKJE3L70g10o39F+KFag6M8ZR+rlIN6mfO52L9ygTqLSEkzqoTryaaqX 0K2/ND4qxWsuhRwnFYDGJmwv31gBHVvGu6XRBR8cVuFy+5z4QqNsYzSvQ1b7k1hkCsSSxBoljsq Wy+Fv0ZnvkaBrUmQ/dQgm8wSlZ6AezRcNGFbZXVVo2vwazkRP6xiUxC X-Received: by 2002:a17:903:22c3:b0:2c0:b35d:ed49 with SMTP id d9443c01a7336-2c0b35deee9mr59897065ad.2.1780274175781; Sun, 31 May 2026 17:36:15 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf23b011f7sm111929565ad.41.2026.05.31.17.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 17:36:14 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Peter Ujfalusi , Vinod Koul , Frank Li , Haotian Zhang , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 4/5] dmaengine: ti: omap-dma: fix interrupt handling in remove Date: Sun, 31 May 2026 17:35:52 -0700 Message-ID: <20260601003553.72573-5-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260601003553.72573-1-rosenp@gmail.com> References: <20260601003553.72573-1-rosenp@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: quoted-printable Content-Type: text/plain; charset="utf-8" The remove path had several pre-existing bugs: 1. Interrupts are enabled via IRQENABLE_L1 in probe and alloc_chan_resource= s, but the remove path writes to IRQENABLE_L0, which has no effect on the L1 interrupt line. The DMA engine can continue asserting its IRQ during removal. Write to IRQENABLE_L1 instead. 2. devm_free_irq() was called before disabling hardware interrupts. With IRQF_SHARED, the hardware may still assert the IRQ line after the handler is freed, causing unhandled interrupts that can lead to the kernel permanently disabling the shared IRQ line. Disable interrupts first. 3. platform_get_irq() return value was not checked before devm_free_irq(). If it returns an error code (<=3D 0), passing it to devm_free_irq() is incorrect. Add a guard. 4. Clearing od->irq_enable_mask and writing to IRQENABLE_L1 raced with the interrupt handler, which reads irq_enable_mask under the spinlock. Hold irq_lock around the disable. 5. The posted write to IRQENABLE_L1 used _relaxed accessors with no readback to drain the write buffer. Add a readback flush before devm_free_irq() to ensure the hardware has actually disabled the interrupt line. 6. omap_dma_free() unconditionally freed all channel memory without checking whether clients still held references. A sysfs unbind of the DMA controller does not synchronously unbind consumers, so active clients could access freed channel memory. Skip freeing channels that still have active clients. Fixes: 2e1136acf8a8 ("dmaengine: omap-dma: fix dma_pool resource leak in er= ror paths") Cc: stable@vger.kernel.org Assisted-by: Opencode:BigPickle Signed-off-by: Rosen Penev --- drivers/dma/ti/omap-dma.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index dde270646bb9..8c32b7ab50f6 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1516,13 +1516,21 @@ static int omap_dma_chan_init(struct omap_dmadev *o= d) =20 static void omap_dma_free(struct omap_dmadev *od) { + struct omap_chan *c; + while (!list_empty(&od->ddev.channels)) { - struct omap_chan *c =3D list_first_entry(&od->ddev.channels, - struct omap_chan, vc.chan.device_node); + c =3D list_first_entry(&od->ddev.channels, + struct omap_chan, vc.chan.device_node); =20 list_del(&c->vc.chan.device_node); tasklet_kill(&c->vc.task); vchan_free_chan_resources(&c->vc); + if (c->vc.chan.client_count) { + dev_warn(od->ddev.dev, + "chan%d freed with %u client(s)\n", + c->dma_ch, c->vc.chan.client_count); + continue; + } kfree(c); } } @@ -1870,16 +1878,20 @@ static void omap_dma_remove(struct platform_device = *pdev) if (pdev->dev.of_node) of_dma_controller_free(pdev->dev.of_node); =20 - irq =3D platform_get_irq(pdev, 1); - devm_free_irq(&pdev->dev, irq, od); - dma_async_device_unregister(&od->ddev); =20 if (!omap_dma_legacy(od)) { - /* Disable all interrupts */ - omap_dma_glbl_write(od, IRQENABLE_L0, 0); + spin_lock_irq(&od->irq_lock); + od->irq_enable_mask =3D 0; + omap_dma_glbl_write(od, IRQENABLE_L1, 0); + spin_unlock_irq(&od->irq_lock); + omap_dma_glbl_read(od, IRQENABLE_L1); } =20 + irq =3D platform_get_irq(pdev, 1); + if (irq > 0) + devm_free_irq(&pdev->dev, irq, od); + omap_dma_free(od); =20 if (od->ll123_supported) --=20 2.54.0 From nobody Mon Jun 8 07:22:06 2026 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 B9B773FCC for ; Mon, 1 Jun 2026 00:36:17 +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=1780274178; cv=none; b=OWMhpfgYHEOflsmubhQtKCXxkJbnfMlj/QSZKgyBQqiu3juUp29hf7U9ts2ENxM3hWxlCPmwYL7hM0jJOJqvGFmzgTCf+bdRC5bWMiIFtDBHYsX/XNEvn98lLY+5z7M03eQrbjjyQIgamK7tk2rKgX101P1Co+Qu3/qgUh1xyDY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780274178; c=relaxed/simple; bh=F36T/8vrzMlC5yvZm/9OkGm1W8NNSS1qMIE6aZEPPLk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k/IzVSHqmpuRg9tDKFZu0m/jC173lZNHRw7UiR7reMB0+8X8nTP4edEIJFrjR4r1iI2JdIItdUjX7z863GaeX9mnnUA4cVeV9a0Il5+JzPl3BCMsnvZl8VvtSuL8tAi2XQWJZrQq7xf0nzpb4zlqmQVJIGFzfNIrYHSn/4XcUDo= 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=UPOB73fB; 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="UPOB73fB" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2c0c1e0b0faso4788165ad.0 for ; Sun, 31 May 2026 17:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780274177; x=1780878977; 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=YLx2I+SI6ZAAbvwA7AP1QE/bdiqJuNwqRo7WWHC7m6E=; b=UPOB73fBDW5AK3GsVl4AJVaq/5dIXPaU/YVYXxIGyDIrwvbbjrAewzZhDr1wpRmbAU FJ46m/MfOWLCSQDKlk26HQNfN6DgBT3mCoJA6HGdo6J7kPKK+03tzHJvYZoCq9CXOFOH QXH+IhTWNrWWUCDpcoqVxmeWCW4vED+5vtc+Z4y0xbPSrXq2rjs3k/jFQSBMjbqnudf3 uXa0N5nH7JjloUbaGeIJZswS0n9BDvmicFF1OrXQpguo8triV+KrnFxRealxwusLzXgz CUCDIadnggrAQlAURC78erCYS8bdfhmGM5FWM1NnBf4laYFuYim1mxVso7z2f09WoZ7+ YG8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780274177; x=1780878977; 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=YLx2I+SI6ZAAbvwA7AP1QE/bdiqJuNwqRo7WWHC7m6E=; b=Z1Pd15tM0mygbwzBNc91JZ8zzaOSIhZqsYxayTS+pT26wuKMCx1TLXn2L5WyeWK96Z W3MYzWzzO4awYzIi65waTn0MW2BSN6xIZFo+ZqmX2+wyhv+Cx2Se06CxKdPSIj/jvHdL SLt5Ug7mIVMo7kAJ6IRyxWd7eAkbp5QOM0kWbnVud73V7szBiRUDyxGbZvXmYKihuKKA nd0K1dhDNbH84sZlnFnHsCHElGrEQsHpNPGhDoqiPu7t3fDiHB7ayjhPYsUoxZjM12Vz 1Vl5bRbg7UfKxq8Pcluemvxkzcze7l4h170mK7qC6akU2skluDfDAksnlJrSbhbsanDU rR4A== X-Forwarded-Encrypted: i=1; AFNElJ+5iyG5BKdMCxWYXHt2cKdbDKGlix2nueJS/4yDVIAtjMmBS+mZjcVH3F2f5HzkOJFIEbBtItWPeF0c1yY=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4TPbKvoUYAGXs6v2Db/pHtYf/Vj4vymTLnbMj2+Y9FG+O60GC CTK4A2oG3dSxvoQ5LRuj/10MKFQUGoRqJPJEhK+3b2UXX+eRO5xo+arX X-Gm-Gg: Acq92OG78Cbp9neb534zBqOg8kMIJm9hSkDAjp/P+MDyHNJY1TtAAGdZB0O+MtY9fLc JqvkATP8Kiwj3bR95CxINDJT5L8h5yjkRNIH/Y0uGML+M8VnCItRaV7woD1nBNydyoP3dxP/amc 6UGZPVyqC3t5kU+1exSP3hOer+j6dQjXxoWdjlz9gbgDe85qvpusoMsQZ0vPSKrraT0QfBJ9oWG /2CmWtf/IQ84cNqelLHbOwwCoCbwQXxtIJdGmAaYxodLS4rvwlm1QvI4oqvjaVyYjtHo7heDftg HeabGq69SmiAulb2N9wz82IKDQ7NvJQ4y6wJj9uuFIsLM4GZdkduMWEl161Q6uj1YY9LfeLWEhc pKayi7zgFvDRyvItUSrJuSjqnUm/8YrlN/YytiozxiwhHxO3xN7Xflp3Gii2XfYqqE0qvV2z0Nt 8J4bhL68JDaiUbVO7gC9uqXzxQF4+58I+7WEs38OAjfX5E3BYBzEXaMExDOffZzF4KUbqj8hZMg tTjN5im9xSFDHeIZ88QADTI8j+wrTi0nW1Z7h5DeY4Txg== X-Received: by 2002:a17:903:1b64:b0:2b7:aa20:3c61 with SMTP id d9443c01a7336-2bf36858f5bmr97140315ad.33.1780274177013; Sun, 31 May 2026 17:36:17 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf23b011f7sm111929565ad.41.2026.05.31.17.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 17:36:16 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Peter Ujfalusi , Vinod Koul , Frank Li , Haotian Zhang , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 5/5] dmaengine: ti: omap-dma: use devm for dmaengine registration Date: Sun, 31 May 2026 17:35:53 -0700 Message-ID: <20260601003553.72573-6-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260601003553.72573-1-rosenp@gmail.com> References: <20260601003553.72573-1-rosenp@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: quoted-printable Content-Type: text/plain; charset="utf-8" Use dmaenginem_async_device_register() instead of dma_async_device_register() so that unregistration is handled automatically by devres on probe failure or driver detach. This lets us drop: - The explicit dma_async_device_unregister() in the of_dma_controller_register error path (devres unwind runs it after omap_dma_free() has emptied the channels list, making the iteration a safe no-op). - The explicit dma_async_device_unregister() and the redundant devm_free_irq() call in the remove path (devres handles both in the correct order after the remove callback returns). Assisted-by: Opencode:Big-Pickle Signed-off-by: Rosen Penev --- drivers/dma/ti/omap-dma.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index 8c32b7ab50f6..4bf34569d82b 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1813,7 +1813,7 @@ static int omap_dma_probe(struct platform_device *pde= v) } } =20 - rc =3D dma_async_device_register(&od->ddev); + rc =3D dmaenginem_async_device_register(&od->ddev); if (rc) { pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n", rc); @@ -1838,7 +1838,6 @@ static int omap_dma_probe(struct platform_device *pde= v) of_dma_simple_xlate, &omap_dma_info); if (rc) { pr_warn("OMAP-DMA: failed to register DMA controller\n"); - dma_async_device_unregister(&od->ddev); spin_lock_irq(&od->irq_lock); od->irq_enable_mask =3D 0; omap_dma_glbl_write(od, IRQENABLE_L1, 0); @@ -1870,7 +1869,6 @@ static int omap_dma_probe(struct platform_device *pde= v) static void omap_dma_remove(struct platform_device *pdev) { struct omap_dmadev *od =3D platform_get_drvdata(pdev); - int irq; =20 if (od->cfg->needs_busy_check || od->cfg->may_lose_context) cpu_pm_unregister_notifier(&od->nb); @@ -1878,8 +1876,6 @@ static void omap_dma_remove(struct platform_device *p= dev) if (pdev->dev.of_node) of_dma_controller_free(pdev->dev.of_node); =20 - dma_async_device_unregister(&od->ddev); - if (!omap_dma_legacy(od)) { spin_lock_irq(&od->irq_lock); od->irq_enable_mask =3D 0; @@ -1888,10 +1884,6 @@ static void omap_dma_remove(struct platform_device *= pdev) omap_dma_glbl_read(od, IRQENABLE_L1); } =20 - irq =3D platform_get_irq(pdev, 1); - if (irq > 0) - devm_free_irq(&pdev->dev, irq, od); - omap_dma_free(od); =20 if (od->ll123_supported) --=20 2.54.0