From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.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 689723CEB8E for ; Fri, 5 Jun 2026 22:01:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696916; cv=none; b=tl7nnH34Zzfs72xheEOC4t2PRjPOmdQCtsUL10S5dSFSYDElJ2CJEG//47FovEDQzJl4bVZLJtHsHxmdOTCt50OBs1qbffuF9Sf50MUF/iZejemTFUUDDzxDRu3+CWIIdgk6qeMWU1ex3jyqr53pTkE9PjDVeRz48hE6WjuUSxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696916; c=relaxed/simple; bh=Bg1Ph+IpxoVLkz/WKf4vXKiBL9F/M23vAU1d0u4X7c4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pfL+7/6oCi0TQfsqHooKL2ZpW+Z1bNxz0b8T/7oI2izeGT2UN2etOEswBtf+7L00i/MhGNPoObJbUnPlutrgkqVV22BBd70CVsbSoDpYiimWU6m8XPe6AAsYLbnALy8KuxYrbXmkn/JGb4i4bujAGo72Du1BunYv78ohCZTaboQ= 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=HyR4SK9/; arc=none smtp.client-ip=209.85.210.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="HyR4SK9/" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-8423f420455so1088296b3a.3 for ; Fri, 05 Jun 2026 15:01:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696915; x=1781301715; 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=W3mpU00CFRN4T3ZBRPTrtzwzlNmgP77kODqdYKCW0Ak=; b=HyR4SK9/gqvpO9ZU+iEOl4UgLCLGsilp0aduHPXIH+9RsiofvtIlgEn17SnQ6Eovaj /7+LgrnJV4m0hfprf/cvCWOLq2B+DjQCb0dZZLpV/Q67TMP9Ku/zT7WHERPCTopc/fAD tOaIRSQQPlyLA88nGMa/PLsi18mLOeKA64wLFVZ1l4bmpOZI1ww+VfjrsRWNBuE7z5j3 G8gr5VbTPRUTnQDetAB1kKE1Rinn0/SgefijMrXC4caUlsj04yrGBqFNN3Ak/jDQNdkA JlzFq+9uk+1aVjMXHr3MUXwH2uE+IkJs4qswwYsC6Dspm0PXe56+snFowrTOnn6KWiRT CesA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696915; x=1781301715; 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=W3mpU00CFRN4T3ZBRPTrtzwzlNmgP77kODqdYKCW0Ak=; b=G/CSQiK17eLB3b5/5wQCAkijAaLqIz58eRwsbshQZN9WBI45wJhdeR5ZFlIbA7GeSg wWAFdxxprrxMqToN/Unko73+C56ijhBzTEWpP9ST+AAVrABkfIduV7jXHynXljR05FZz BoQfmytqBx5pUJbTiil0thgS0onW7Cwh7BtU3tKo5CRSie4v4LZPBV4uKq+8glS5VCDQ Zc4AasQuXoiXaw4WsOzOKV4UjWIOdNOeX+65dt31yj7lYviRXrHpHD+mZPIhYuwMJptm YNti3ptuEfyZ0AaB8Vr164DHs127bD5GFpf/Asr70HDO/32mW7xgU0re3gFkwTKySVcS eU6A== X-Forwarded-Encrypted: i=1; AFNElJ99wkj9Dwr8EEek1OHRVXW9F2g4H/0c56PBr7GhAdVCBijZ2Y2JGTQg49Rtlq3Pvdlx7b9n/2im9IWNRMo=@vger.kernel.org X-Gm-Message-State: AOJu0YxZlNPv1mDwxnr5JtdrhXIawVAcrpelGKmhA7m86ZR+F0JHPCYP DQSEAi5ojypvv/SJQVb7/zsKFI/PUlTNhSdxmgwWQrF/ypUNmf6pJ/cE X-Gm-Gg: Acq92OHye6sUIeoWZkWlqu2X6RN6Y7gkEbssb0svXikLghJXo4C5OY/bu+eRVvPag8c h2ggbsWjdtq6Ybq4sPb3GXivRHZQCDV1MtkqoPG5G3qdNUkd7eyQfqOt3zynoxP/gYJW9Aa81gN utYiHJzKNk8eaXTM0naOzX8AXhO+LaaE1woSgLt9u+FqIM8p/gjY9tbBIcg5+3q/+4SYLyLF3Yu 56QPURtVcTVDResRCxj/XTBRf/EekazCBf5nf/f/mOJwuu6i1//zn0rkoEnCIWQrhMinbWfGxSR Kn4O6ZdgQM3MkuDmc+GN4ZIAqgaPC+5K0wkfFyXLnoOZ48u0zHMnGpJYobcmDw3pGDj606frvm6 n+zrjuF6W4nTojLk5Q5WOuZtxT2AZRl/Q+hbiUmluz/N8Dd7TxjulzqNHk4n4O16N641b+ka/m/ 7rCf46iRM0QtHQiAlFppIoUxk6D7bAPEAlBMe9SY39vganplao6uCRW9if5GzoztfGSniFbP5T5 9BRM5Q7KqYrDhLfJj+iJqMZGNmz7cYEz3X32EqM8HDAEw== X-Received: by 2002:a05:6a00:32c7:b0:842:422b:259f with SMTP id d2e1a72fcca58-842b0e30c6dmr5022742b3a.10.1780696914650; Fri, 05 Jun 2026 15:01:54 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:01:53 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 01/10] dmaengine: fsldma: kill tasklet before removing channel Date: Fri, 5 Jun 2026 15:01:25 -0700 Message-ID: <20260605220134.43295-2-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Add tasklet_kill() in fsl_dma_chan_remove() to prevent a race where the tasklet, scheduled by the IRQ handler, runs after the channel has been torn down. With the recent devm conversions the channel struct is no longer freed in the remove path, so this is not a use-after-free crash fix, but rather correct shutdown sequencing to avoid the tasklet operating on a logically-removed channel. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 22d62d958abd..0e2f84862261 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1205,6 +1205,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, =20 static void fsl_dma_chan_remove(struct fsldma_chan *chan) { + tasklet_kill(&chan->tasklet); irq_dispose_mapping(chan->irq); list_del(&chan->common.device_node); iounmap(chan->regs); --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (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 28EC93D1CC1 for ; Fri, 5 Jun 2026 22:01:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696918; cv=none; b=FcWS4X4kBgitHLxifvGBxKaR6r6FBaXJYogVXAIDPvJ4pVkPlFxotcnvakuzLziZXv4P4qy9DuCvHYq3y+krQBvH/8XSoyqp7zLEW00VHsF98UfODDIt8nObVjW/886mAPY7DFW/OPOQ/pftlP8i+zJcNehtujw5GYHKHl1RdQg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696918; c=relaxed/simple; bh=dv4UoT3DiDLV5e+jIsTNR9SdROP2j8QTT16qF0sniOo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BXun7vAlsKgbKUPdIvmHlY1xNxKZGfOwSSaNeR6DA5OCgLIwRabYguCShc48dF/2d0hPNAUo7n0H9mR48uSXm4jM9VlZesp6B2tiuDycjnxf4nAIpiLlaEz5mYmsxUHe5oJVwLoG2Ua64As/EmyB9uFph4B7EutIxREt539bvEY= 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=CvcTHSUW; arc=none smtp.client-ip=209.85.210.177 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="CvcTHSUW" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-84234c83142so1018174b3a.1 for ; Fri, 05 Jun 2026 15:01:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696916; x=1781301716; 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=+5mTbmbGFqfQuWANwj/hsm3FmxeOXZxoynp4ibqSmkc=; b=CvcTHSUWxzm5dd9oPvh9Bzft88/cglbH4+hUhke5GOPwyZNhQ/U9r2ZFiJy3ObgE99 WUF+pwE2ShYfCticxb8DMW1gQ6n5z+BuRaTIbw/+A/i2plIyHQ2Pk855qppjSbIwRjx2 hrgPfAL/19/qpSR3Z0TmEkWTx7GYfMz2hOopwwSvANsoDutwEFSOEq0e8yf9jXijagTv rin0TnyNpjoSY6GNQvYvMKOD9rVJnEgYNBJ6p4wJHuX4pGt2lHBOAtDxnDl16goMwRlw QF4CMpvixH2lro7YvAjhM0Yx73/uNhmAu701kb1b+5aNh1wzgA0JvzD7+DXSl61PjQUw kR9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696916; x=1781301716; 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=+5mTbmbGFqfQuWANwj/hsm3FmxeOXZxoynp4ibqSmkc=; b=aNzcVaYgBcONZlTBeq/wMFd8/qlKLxQv51Kw9QqgTuTMJDMj7oXSVmsskQMmrqRDpp /FMkzubT7qMHDLL5PDzESC0phkUuF4ffoOxLrqSDSc1iFpBOAphPvScxyOqGpGRPs51j ikFYG5dkthjaUe1e4dxskOla+DEv/haGkbcySG19FGa5gr6GoJ0Dgho5zNO3oLZjNRXG uwWBKKSkbxeOeOqrEKvm/QeM6JZhjb5isZJHzZvXvG7Eup8jQbtBnA4r2sG5uPBsEITc R4zyPzXPri+iXG68CDAlZ4ik5oUgOyqN2g46OxpFFne2Uy4cWXj9Gf4QaqetHPcEyoOr P+tQ== X-Forwarded-Encrypted: i=1; AFNElJ9DoTAXZwbjEXUAHDRnHNOJ20Iq7WvZf4eXuBHnaQj0XqOe0wymnnpNbf0lLYU3f69YaREP98KNRnMVZgs=@vger.kernel.org X-Gm-Message-State: AOJu0YwG14+CeL5cQgPeiJuEGn88v4fkdrtjwz/Mj+GuZkEw+TV4xPpC OQ69hCeroALlI8ruv8oMmBWW7yyZEy2lM+/CP3OGgRPydarz0MTRdLjE X-Gm-Gg: Acq92OG79QwiEpLPMne70j3am+nwswNcBumBpxsLwZAcLdg6QaX/dmSgZQsaP6sy7Vk 3+w1/IFDMk1HKV8itVLDZWmImPKmH9gALl79oGT4YSOqtga+IPWS4uONM29q2+QDD/qT9rc1n3R W4z318C0L4T6IdeYeBGrxc6rzNEwocQk3FVaWNCqT+CiofHnr1rldIU9Z+93kPRYFRA8nY733EH e1rx+Fo7B0Aa5akO4LkMIK6OhOr3YOyDjJ354+tksWB0BCjEOcHep2cXEzVEP8CJOAB+obsSfTt gCusPOUoqG2xV9k+J0O/wZkcUbWNN2eNiozjhOgohfHtU93Di8rN+8NY55XqOOuj2yGQ8Ie3XfM iBFJBO1aCnJp1CqN+NPcrgM5DRP5cIXHEHxbQ7Vh7EG3cx54KBln1teTRkuwPhS4RGditRswDUK zB+o/dB245SklQBYDvG4izuZ2VZpHy/tccWPJYg1NTAUXfnkZENOv5hlC6zXw+LDekOBl4qS9YK CYdmCjZubH34XvGIhEaSK/TEAyLsDXnfAsE5ye76/mFcB1y6fNBKflj X-Received: by 2002:a05:6a00:3692:b0:842:5da3:9b84 with SMTP id d2e1a72fcca58-842b0fb2843mr5346862b3a.34.1780696916252; Fri, 05 Jun 2026 15:01:56 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.01.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:01:55 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 02/10] dmaengine: fsldma: check dma_async_device_register() return value Date: Fri, 5 Jun 2026 15:01:26 -0700 Message-ID: <20260605220134.43295-3-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Check the return value of dma_async_device_register() in the probe path and propagate errors instead of silently returning success. Previously, a registration failure would cause a NULL pointer dereference in list_del_rcu() during remove when dma_async_device_unregister() tried to remove the device's global_node from a list it was never added to. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 0e2f84862261..89b88447be1b 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1293,7 +1293,11 @@ static int fsldma_of_probe(struct platform_device *o= p) goto out_free_fdev; } =20 - dma_async_device_register(&fdev->common); + err =3D dma_async_device_register(&fdev->common); + if (err) { + dev_err(fdev->dev, "unable to register DMA device\n"); + goto out_free_fdev; + } return 0; =20 out_free_fdev: --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (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 BDAD93D4135 for ; Fri, 5 Jun 2026 22:01:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696920; cv=none; b=Ic5pl9JlBWI5SmCA8WTgh9TEqQqzRXlekJrp7+BaZX8OJ+FxPFPFEhb8RsMVlRRh+SUxuginvGqfNgcvRIVoNtA7luIpri+tt8SxTcORv2TlmQIQGMqnkMuVvJY05LrxJjq939ZRPdBaOH7GJg9JDWoNyg75ye5tz0TMxPzqHEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696920; c=relaxed/simple; bh=YUwtzio7DjFibcYHK1xR/I3InEukDqXu3lwj6BvlnHE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mhzE0W8OULoQhn3t26D5u7CZagCNckVdafekB7jEjgRQghJRIFO2zX1CWJfIbKCK7ugkiV3trEHy9CuuCMmuQGiRjMf42JQLCOti+R7CcwhWHDfL4+ly6vLQmBGo+Rj3Al3i+EXu+eC0b938WoH63Q9mWwd8gakAOp2cd4dowXQ= 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=cbB9pzGO; arc=none smtp.client-ip=209.85.210.176 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="cbB9pzGO" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-8419ab3a297so1068688b3a.2 for ; Fri, 05 Jun 2026 15:01:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696918; x=1781301718; 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=sFsQX2lLtec69DeOnNMYpEwpbYN8i05xT/hHGIXIjWY=; b=cbB9pzGOT/QY4YrdKAIt1lOG1ygioNMHPcSY8P8mYflPJSENNnHztC7GrJayUrw8Sq bD52tfhbJ9CuzOx7jZYq88zkiyLNHi8KZB5BudRLta+3sEnvRdfkyx1vwecOA5X2RM9S ZNIO0kwbCAD2vI5JPuu1r5tB65bRcLMpt/UdZR2/n8c2fsS1KOnUp04ulbLvNN56qEDo PbwQmwLVqZV9gbbm5OdtTxcwyb1jx6Ow953ENC7B4VwtSPtFNXdeh9guFVhFZAiuFXzk Y74RZLf+w60NxH3Oyk6mTjs8Bi2XuzuC3S7lEIW9n1zEhrNNUuwtINcVCWB1rL0wE+1+ Mwcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696918; x=1781301718; 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=sFsQX2lLtec69DeOnNMYpEwpbYN8i05xT/hHGIXIjWY=; b=flgpdzVBRowBSX4OZIM4RQKHgxam17wMa2dAWELvNgk5SM88QDX7o6AKbigU4NkPpv BigUjrOmLnmAVUASToUwqCmPzS9owM02GdqaeVf570pksHptvzANjWcHXMfb9HRah1vh XkqnidTPX45yT/QVKxHT7aloVLZEdj6ginE8v0xU1Dm/ar5irRPRYlYFfCiO1x+5CKyv cj8Rt/tos9pnleQOexfnvyOWlYoZHR85g2vaVMz4IRaUs2Uj20MQRGBlRO3GG8kq6b5U Xtxma6NFS6TGjqeEADLmK5KRB0MqQ/b1p/mVs1GPDg9E4zlTTohuETEvUW4luVEUzMoG 9oyw== X-Forwarded-Encrypted: i=1; AFNElJ8AYwyXCyX+krKHm21cV/o6PzuHXml5XpASsvWk+Dw0HzRXQgnsW4Ndg/NOSP5/4FpTnanCphljU7fVFSI=@vger.kernel.org X-Gm-Message-State: AOJu0YxJTNUvkR+RWwhlP37ThUD89Ijk3inEr5TbW1hPgEP1drX/g+mR wNC8C0fdCDLV3ZJFyfZT30O9D8LPlXq93vpl+ptJ/dNYSUxvveu4cMfqr7W3JA== X-Gm-Gg: Acq92OHL28v8o9XTD6Bo73uCUrgHqHcHyubAEzdV2hDm+L5WUJyQftK51zrF7rTIKNa vl7JiD3u2VybiAwtYLIEbZ3W+sPe8pGFrwv4IqZgByipmuKC24N73cKTZUZtu0S59wCe5tmr9KN dlULM4Kp2T9Cqg/Hn1uSUhGexmcwnn7xmfTjq5ZxE+OiRevFNe3dTDDBek1hhmzkjFGwzdvx65H tYDhvmpEJ2s631rrQB5b97Pzbhd6iv6banTSF5g39zv12M/c8lF2vdGOhc0s6uw0snBNC4yX+U0 EEPBs6S67l+dhQrQS5kuDr7yEHLj8kE7XpH97SuxqzV5mmqXyuSX3UaWTFe20JTTzJCLgFe+85Y gTrxHDfVeplaJLRGkvOhVMM4mskzSJ/C6X1neHXbBNGP8ydzVqpPrXiiDSTzCpe+9SeMZvK7Ktz +EcTIs9pAxx4jFcfcN0M5BM++JqdontBP3dN0EahOYv+NWiBbGXz+MgoE2uDvGBFR48Dso7YsP7 SoX52weMa83D8sMqlBCc9tb+30PUBzZYHMZJ6JoEGcRhw== X-Received: by 2002:a05:6a00:4510:b0:842:8500:95f1 with SMTP id d2e1a72fcca58-842b0fb6d77mr5329246b3a.40.1780696917721; Fri, 05 Jun 2026 15:01:57 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.01.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:01:57 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 03/10] dmaengine: fsldma: convert to platform_get_irq_optional() Date: Fri, 5 Jun 2026 15:01:27 -0700 Message-ID: <20260605220134.43295-4-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Replace the per-controller irq_of_parse_and_map() call with platform_get_irq_optional(). The controller IRQ is optional =E2=80=94 when absent (-ENXIO) the driver falls back to per-channel IRQs. Any other error is treated as fatal. The corresponding irq_dispose_mapping() calls in the probe error path and remove function are removed. The per-channel IRQ mapping in fsl_dma_chan_probe() uses a child device_node rather than the platform device's of_node, so it is not converted here. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 89b88447be1b..0d28f8299bf8 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1206,7 +1206,6 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, static void fsl_dma_chan_remove(struct fsldma_chan *chan) { tasklet_kill(&chan->tasklet); - irq_dispose_mapping(chan->irq); list_del(&chan->common.device_node); iounmap(chan->regs); kfree(chan); @@ -1239,7 +1238,14 @@ static int fsldma_of_probe(struct platform_device *o= p) } =20 /* map the channel IRQ if it exists, but don't hookup the handler yet */ - fdev->irq =3D irq_of_parse_and_map(op->dev.of_node, 0); + fdev->irq =3D platform_get_irq_optional(op, 0); + if (fdev->irq < 0) { + if (fdev->irq !=3D -ENXIO) { + err =3D fdev->irq; + goto out_iounmap; + } + fdev->irq =3D 0; + } =20 dma_cap_set(DMA_MEMCPY, fdev->common.cap_mask); dma_cap_set(DMA_SLAVE, fdev->common.cap_mask); @@ -1305,7 +1311,7 @@ static int fsldma_of_probe(struct platform_device *op) if (fdev->chan[i]) fsl_dma_chan_remove(fdev->chan[i]); } - irq_dispose_mapping(fdev->irq); +out_iounmap: iounmap(fdev->regs); out_free: kfree(fdev); @@ -1327,7 +1333,6 @@ static void fsldma_of_remove(struct platform_device *= op) if (fdev->chan[i]) fsl_dma_chan_remove(fdev->chan[i]); } - irq_dispose_mapping(fdev->irq); =20 iounmap(fdev->regs); kfree(fdev); --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (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 F31C33D45EA for ; Fri, 5 Jun 2026 22:01:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696921; cv=none; b=r1bWJldzT7xfmQJY61/GJKWskL271lp5V70T3oRhyY5ECGiVLxyU7ITlIwyMjSfoqblZjolst9VjTxqmNAxgAAbuv4rHcGRy8Zzt+vplX5Kjp9r/ixYPHukUBl1uCHiDpUA23YCA7c58eiQ8RFX4t0cof4JuyC+mn+mxEt/EjXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696921; c=relaxed/simple; bh=reYbgeVAQzFvOU2OYbCzswcoW1erxmIKcVROrzvbUos=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vf4ZyeL3vFJWHGfG6V5YgtbjeFjt/qQ2inlRmwUZOs94JwNAHcif355BcST27zOsJJmZtBSIGR/jFpeh77v2BE/8N+2Op12swXbCuIZbd9sfUwhG2oa8X6FNAAFqZDGhXAUWH+Rgv36y9NPkwShqg3qt5HICnfWOHSw1hitJC18= 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=pgNGDyyF; arc=none smtp.client-ip=209.85.210.174 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="pgNGDyyF" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-84231305a80so1333635b3a.0 for ; Fri, 05 Jun 2026 15:01:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696919; x=1781301719; 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=5sz7+xisuSM5PYR/do66zevMAZphs/3eVGB3/an7yPc=; b=pgNGDyyFl6/eyfS4xNkE5uGEcowoWkJP8/os4wKWcRX3yLVJVT5cdl3009qJzJl8As w4ascXMLXrjKgOzBJXrKHVcXCv0o3f2xB8laaFvNeBmN9pkVex8HiYRtoOGbDwL86vmG DXTLgKVyxXpjpFKQ3PzluOu3UgThg0eOGVvaWr/9iqKsdCDPudaepGPdFYfyWZ440Rab B9I4k0StaRCd5jv2tAE72gDT3TmTSxJ9EqoihlY4aHScAl8dvN8zov2XqgDc91OTx021 LvpC3QHvqnJxX9ZzxqN20ERIAiLhzcCyVPdtzzFyYFxS+vLWkZqQ9X1uVo+Dy6tVE1xD UHeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696919; x=1781301719; 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=5sz7+xisuSM5PYR/do66zevMAZphs/3eVGB3/an7yPc=; b=f4dPN3kp3EhSM1LZ5NGxF9TBCho+S8RRgTG/pTM4gjXl698kv2SXEm6PMi8zgtPs/f Hm92XxkcrTzOGk3hSu7HPsq5PuJ65ZO3rlg98HI0+imK5I6oAPhjI2e6RR/Rbo5+E4c2 hsh0/rkuUwrE3PebKMcS5sn5Yl9Mu4NH3ylTS3ItC6fPHxF6JCRBXYA52NzLyCC+UV8N lKC4uWMv6OeV6PlGuMZW04ytc7cMRbSlO/7ASZ1xrGYjVFPldyyeTdTNGG71t09PtCye b/ECsZRg9x0H5KS3z4Jy5XKuAEcp6xDE2j5ffSq0TcpMFjfzyqmFO8A7KrAVw3/1t/go qPag== X-Forwarded-Encrypted: i=1; AFNElJ9z8Vr/x900MBf9QhRpkD0vBNhO2BncpHuWVF8j1+u+Jn3+xXAOh/2Xe+xctYBQIiwHBftM0hgj4o4wrpE=@vger.kernel.org X-Gm-Message-State: AOJu0YzLGw6iSg+Mvh3VDlvPR4B4th5PkB1ZhXI9+cJlZtZ0FdQE5QS0 +YCSPzsuglLoYxxM9ykOR6GFo01Og7QM3bPitrtWaT3SnUEvrbpskA5t X-Gm-Gg: Acq92OF+j4uDbT/dZKClo2YVVdAzbBfXXntMk3DM4m1is0p51QYnKuUfq7VYBbDPSmr IYVSoLOTPkyOgkXtg6Epv0JbL7Rs9i1pwC+sJF5Bd28rBbXCOzUGEGh7jsXLCwSIrXNZICQ0cva A2izFXUs2A47jCwt1lNgUlTqMT1EZZ3/2jYIQZQ8ktiROxHy4zNLIDN+GfgYMRt6sg6bdHJARB/ K01nwAQvbDpaDQ+Tk9zBCDa3hLrNLTImPqCH60pMLGZsZHl37fS0SkTepxlG7vcVWdxKCTOXuii OjbxPa03w6r9ga5y+bYvKfVzCEbIm1lBpHyrz1lmkYHVkbPkEKqAH8JTUT0QNxBBCQTSyOy4D06 MutlwWdkCRg4vGxk951Dy3SNLntbVPMvaXd+hnsEyGBMSPpJQsLzPtXNGMTqCZhkcOwbnzeJxU1 DbstuYlcSjHV/RvzfLgM+qhYg8hYKmPZoaWPpFycAmW9wVdji70K5nEf7TdQsjrZbMEqKTVGbHV L+Z+eT+wXMZPqQHNJjgZIHDll2seSzK8d6UhG9+LxJGFNWDyd/f+Wg/ X-Received: by 2002:a05:6a00:21cf:b0:83a:3135:edbd with SMTP id d2e1a72fcca58-842b0e1e1f7mr5458741b3a.7.1780696919249; Fri, 05 Jun 2026 15:01:59 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.01.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:01:58 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 04/10] dmaengine: fsldma: convert to devm_kzalloc and fix error path Date: Fri, 5 Jun 2026 15:01:28 -0700 Message-ID: <20260605220134.43295-5-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Convert fdev allocation from kzalloc_obj to devm_kzalloc to simplify the probe error and remove paths by dropping the explicit kfree. While at it, fix a goto target mismatch introduced in the recent platform_get_irq_optional() conversion: goto err_iounmap should be goto out_iounmap. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 0d28f8299bf8..2efa16d12679 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1213,18 +1213,17 @@ static void fsl_dma_chan_remove(struct fsldma_chan = *chan) =20 static int fsldma_of_probe(struct platform_device *op) { + struct device *dev =3D &op->dev; struct fsldma_device *fdev; struct device_node *child; unsigned int i; int err; =20 - fdev =3D kzalloc_obj(*fdev); - if (!fdev) { - err =3D -ENOMEM; - goto out_return; - } + fdev =3D devm_kzalloc(dev, sizeof(*fdev), GFP_KERNEL); + if (!fdev) + return -ENOMEM; =20 - fdev->dev =3D &op->dev; + fdev->dev =3D dev; INIT_LIST_HEAD(&fdev->common.channels); /* The DMA address bits supported for this device. */ fdev->addr_bits =3D (long)device_get_match_data(fdev->dev); @@ -1233,8 +1232,7 @@ static int fsldma_of_probe(struct platform_device *op) fdev->regs =3D of_iomap(op->dev.of_node, 0); if (!fdev->regs) { dev_err(&op->dev, "unable to ioremap registers\n"); - err =3D -ENOMEM; - goto out_free; + return -ENOMEM; } =20 /* map the channel IRQ if it exists, but don't hookup the handler yet */ @@ -1313,9 +1311,6 @@ static int fsldma_of_probe(struct platform_device *op) } out_iounmap: iounmap(fdev->regs); -out_free: - kfree(fdev); -out_return: return err; } =20 @@ -1335,7 +1330,6 @@ static void fsldma_of_remove(struct platform_device *= op) } =20 iounmap(fdev->regs); - kfree(fdev); } =20 #ifdef CONFIG_PM --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 603EC3D6497 for ; Fri, 5 Jun 2026 22:02:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696922; cv=none; b=Mm8dVw3hDYJTTwL3wNp/bLVTN95uAjaXu3LvUKqiF0wIx0yKIY5WYZkBWdPdhaiQJgynsf3kOyed8rpJxHM3WwnIFW2qfN7uDbNtsS/d6bwHBfRTMXvmzOS/q9DnkMtKVYWf5GG7RIgeeBPgSHS/VnPFZpr8IankqlgObBkSgvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696922; c=relaxed/simple; bh=bKQWmItIKnc/fdJSRRktRi/1cUXUvo7d8EoyajRgfGY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U9RgrJADD47mUXWkoWydmO6RVlok3SRyAdYy9o8s/TbH+gSZj4PsAaQmRk/50T6WsApa/FENtDP+nNatJbjqPj2U+np41KhOOz0ZwBIReWtCosxg4FUw3oN09tHCeCmBl/Om3Zo2/ejBLcF/5edKkwk1F5z7nCg0GBYuSqavQN8= 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=XRe3w+67; arc=none smtp.client-ip=209.85.210.171 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="XRe3w+67" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-84234c83142so1018192b3a.1 for ; Fri, 05 Jun 2026 15:02:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696921; x=1781301721; 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=w0IcJHFrxrpFxcVE04G7XPPulmPSc2DO5kl+s9g50fo=; b=XRe3w+67XoX40v6/5lZDBtC7iEWyCjaWAUcaBLZ03eArr2xSpKaBWLiZk8h2t6Vdah uPrMQeo7CrxiP+Ind8TuFeQfXU+ZWf7al2xc/611eeO/F9jYVMhnTitbG0AIaRlHtXJg z/c9KyCQPwKAa7CmEmXvB/j351jxVSjYw2Z5++c96A8c8musz8af0gj/WSjZ8WzwQsDy bfeh5A3MLYkmuU1u1W3B+QU4D9nH25csyFT5iaprFVF7k/W9+bN/B60nREPhmxDYScF/ VkDqXx1pi4ERbPzVZ4cug027n1/DSyqO2y7xkDaOKAXyrVDKTBg/PMc/8ZF9WD8fGSnu oWig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696921; x=1781301721; 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=w0IcJHFrxrpFxcVE04G7XPPulmPSc2DO5kl+s9g50fo=; b=PSNdOgPjwNqEPQe7CU9F2rWZAR4JcnxVtDgdsEx2W3YwltiH0X4BY3/TNexFhpq4S1 khOCa0i1/WpI9GnLJIMqwId2Hdbr09uEk81fnXuyjWFh/Wfz7OJTyEtacXPM1bO93LJN xOYN1ALSLDZjHY486+WB2Du9dVmgE6k6dnpcuoURuOWAcqAoIiWXg/hKugnK6195D/Y/ HMZYWCgasefouOGqoYsOye9myhRs98fCqgoe8FTq8LEAPLk1xFHK7nivz4HRfAvqC11+ VYHpre5YNsVrTQkjj1cWAKwe/NbpniHDgw+qHn5GQkOXjdNRmJYUQL6p/nT+mlQRWMH4 9Pwg== X-Forwarded-Encrypted: i=1; AFNElJ/1ipH6dhdDI60v9H5H/OyVO82cAIieIcWlZ1PzpXrCuOkzY4UjlXbk79ofuC3htwB7ERFvaO6IeUrCICQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyZUewRB4bWos667SeqcUg7L4TWPFBRsL8bLc7VTK0qBvkj3hGh qFao1fKpSHP+D0GkxavQFS4e8ELHOwoi7cI9kcpt5+0fhqo5rUhTLuVo X-Gm-Gg: Acq92OG27cw8FiIpbAuDcKrj6xXgLpWiWHq7lKA2+5xbrnEHtNSdkTpAAcXJrXET7LF DD54Jytanq1InQYbK0CASC4d8SabJYQUMjYMzKonFCvLAvnw4aQwbMtibdmDXy6yTe9UCYsN67N M+7vTCWVxODgOD3F8EN65u39RQMGJ6djlHk8elztYckriGGASnldvtYKRYTJpf0X91ZUHkuECVv CiQvEUXCytBVNxmBY2BkGF8Ct9HBf49+u6XLEDOlrLzimMY3yU4QY4bSMlrQ912/AwDmNsC4eyg LGRPM+wy8UvMN6EqMDU6PXGNKYWOiwG7hlPNFtlLMkZblKBK+f0hzkYps8VekCoKkvTiHFq302F YtpPttIMaZJQy0bPoCFf/pcFNiuEpvR6SmnpawcRFu9nauNZpzj1meLQnb/0FYSKT0Umf6Qs11H yG2Ahi11vuNp01NkyOk0DQE8KZnPLANzuIjLm5oYfRwvyEp92Y5uT5hJ9yRgVQm7ApUMerGXmzP UxqPZbp0y75I/t2PHLlBJmkN8CZKK7D0VEOtBsVDH4jlA== X-Received: by 2002:a05:6a00:1c94:b0:842:6d5d:58dc with SMTP id d2e1a72fcca58-842b0feef0fmr5682549b3a.43.1780696920695; Fri, 05 Jun 2026 15:02:00 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.01.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:00 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 05/10] dmaengine: fsldma: convert ioremap to devm_platform_ioremap_resource Date: Fri, 5 Jun 2026 15:01:29 -0700 Message-ID: <20260605220134.43295-6-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Convert of_iomap to devm_platform_ioremap_resource to let the devm framework handle unmapping. This allows removing the out_iounmap label, out_return label, and the explicit iounmap in both the probe error path and the remove function. The DGSR (fdev->regs) and per-channel registers (chan->regs) map physically distinct regions in all supported variants (EloPlus/Elo/Elo3), so there is no overlap risk. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 2efa16d12679..2a6a247761a4 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1229,19 +1229,17 @@ static int fsldma_of_probe(struct platform_device *= op) fdev->addr_bits =3D (long)device_get_match_data(fdev->dev); =20 /* ioremap the registers for use */ - fdev->regs =3D of_iomap(op->dev.of_node, 0); - if (!fdev->regs) { + fdev->regs =3D devm_platform_ioremap_resource(op, 0); + if (IS_ERR(fdev->regs)) { dev_err(&op->dev, "unable to ioremap registers\n"); - return -ENOMEM; + return PTR_ERR(fdev->regs); } =20 /* map the channel IRQ if it exists, but don't hookup the handler yet */ fdev->irq =3D platform_get_irq_optional(op, 0); if (fdev->irq < 0) { - if (fdev->irq !=3D -ENXIO) { - err =3D fdev->irq; - goto out_iounmap; - } + if (fdev->irq !=3D -ENXIO) + return fdev->irq; fdev->irq =3D 0; } =20 @@ -1309,8 +1307,6 @@ static int fsldma_of_probe(struct platform_device *op) if (fdev->chan[i]) fsl_dma_chan_remove(fdev->chan[i]); } -out_iounmap: - iounmap(fdev->regs); return err; } =20 @@ -1328,8 +1324,6 @@ static void fsldma_of_remove(struct platform_device *= op) if (fdev->chan[i]) fsl_dma_chan_remove(fdev->chan[i]); } - - iounmap(fdev->regs); } =20 #ifdef CONFIG_PM --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) (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 0F8733D8903 for ; Fri, 5 Jun 2026 22:02:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696924; cv=none; b=hgPj4kc6H0a70h4mV+EyTGhJTOoG96rXB3GIJCYPipUvDY+I7Q0590q3LjVIgN5h9BBuiEeldZSNDBKicquuI5MuTLmnneuo9x2lAUkmieGTj+ZkBAsp3z1RZKHjHBr5OSmB9JyU9WkRYldDGIk/p5SQULl+2tBi/vVYfJlrICY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696924; c=relaxed/simple; bh=M1tCipKgh6sdfzfNx6Ayc+P63xEC6ccKKNUWUXQ278s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bEcPES3QZJGIVCLCxKnPUuVt/VC1w/AFMZ9VigOjaunS8/aWy5UVD+EA7x1DhkZf8J0KpmQHyzHoKl3v9T6MMbIvQIb6t/npbvrd41M9bNBA/R8bJ1JWQADOs0gf6j8VG6/tiNQW8njXRnzK36QcF6OA6gAWJexOoPqPcWPSCK8= 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=edIntREJ; arc=none smtp.client-ip=209.85.215.173 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="edIntREJ" Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-c8584bbbf2cso1544084a12.3 for ; Fri, 05 Jun 2026 15:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696922; x=1781301722; 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=3h60AiEE0ezQWif9mmBIRZAGzyRJ5Mypr0bfFicKOUY=; b=edIntREJmYyeRyEcwZbPPQxFR8U4Cl2O8UEeJEDelDNx9uavBZSmtEYOA4je7RXvJk XFz0myFGxYPf4xrQxh/YiaJ4bKR3vAfZ9s3zgMBIvTDCjdWP7rvNadeSMlcIGYHUgOYb IrogpyBf8bPWnqeJ6yR6SMDe0V/ANnflsWWB7EDBriMWjH/MW7ZymeHFtAVP1oIUwJ3x e9rC/f+EcOCLixUyiRxVVnMa5BbfqnyIpijG0hK23J/izENA4mlEBnqFqizsBjtPSZzA 0L5ilVjUDwEZ5hU9asLToCWbdbTOFH0UUOkeJLWTm/sITa1vZSy4sba9OiORJwxbacgD TQ+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696922; x=1781301722; 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=3h60AiEE0ezQWif9mmBIRZAGzyRJ5Mypr0bfFicKOUY=; b=Gjkq6JPu4K9kaFTaOKVVvPo0KmRhi/qreFFx3VdkVeRYB3UiM2Q2EUZ1RPDBHsa9Ht 14xiYDFpzPqJkrxvfHcYvCrId2kULRlUDmBzC7t/qIa5vXOmsJnZClS8xw3+E9kV9c7y MsEmG6klrPTOHnt5DcvPNrJAUmeSYj3H6hMq56ZSjR4jou/xj3+1Psf4gqlwHeQTfxdH 4s4eW9tTygBW+y4socjV6azrQOG/1/LhzXxtvMuPl+rHo9WW/Uhg/fgKgc6J8qwHVUNP cj8n8hOveUFM1KX4rvhD0RCi+pUnuJGm7v3s/dLrkoC4YL2+UXZA4UYtJL6ZyfCWx0ou f3OA== X-Forwarded-Encrypted: i=1; AFNElJ97HKCnI8pG5nEEl4SImRQqfxKBTODTxD4w48FVDn782Yc0Dh6W+tnGLdMYmGmR9lqsHMMeMBY5N4jYKM4=@vger.kernel.org X-Gm-Message-State: AOJu0YwkjVluVNuOm8PP6gZA1MQ2Phk24SKTiYeHjS4M7hTc0OYyAvcM ZZIOXtjhxIm86aAcX4LbJzIQdlOtoy6NnNT68yVChBR+nHQfn0q4HUWI X-Gm-Gg: Acq92OEKluQddp8Qq3LMLoGmD8ZZvoGHOlX/8Ia9qeUv6RFqu9Ra8AKIx8ys+C/C3dA CNwznYNn3a2rjlfsnH3jVMnyNoz7Loz0oB5MQvlmcLlLTce9tyEcW4xdrDAa60Y42K8QZ6n+zjA p7ibpvEAK9pKUu6TNQL/wkMg1ze0hiBhqDdnE4N121aEnIEr2e+VgYAqCKWvH702C1PnLLw8SbV Nwl7EWipdEGkbOE/TRchvVCXfh5h3uplZlvxGUduejO/1JakJi6CWdZVr1ThYwj21zNgYH2YDBh J9wuDkIFLNk97C+4yO44vMBCLzv3eY+goefHGRi9VCj+P1By/sYlGt6ZjzBuPY7TpCwrc+tBnaa VJ9lWRhUdS5OEZbXK2cmHIHasOOEu0uOI3kqtX0KA5dLeFJCJVVi+4DzvWZjYlQQVSjIELqglTT 7cL9jC3X5Zm3eOlBlZlst/sm2JudbhlWFP9TSznSO9cUEkJV/flBvypm3b4n5d4ps72bCsz1v+4 IUzpWXGuW+jOgv/pu4I9dtmFyPdyZoi5eRlrUuu3rEG4Q== X-Received: by 2002:a05:6a00:13a7:b0:842:48ae:1d6c with SMTP id d2e1a72fcca58-842b0f5477emr5790548b3a.24.1780696922232; Fri, 05 Jun 2026 15:02:02 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.02.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:01 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 06/10] dmaengine: fsldma: convert channel allocation to devm_kzalloc Date: Fri, 5 Jun 2026 15:01:30 -0700 Message-ID: <20260605220134.43295-7-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Convert fsl_dma_chan_probe from kzalloc_obj to devm_kzalloc, tying the channel lifetime to the parent DMA device. This removes the need for kfree(chan) in both the probe error path and the remove function. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev Reviewed-by: Frank Li --- drivers/dma/fsldma.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 2a6a247761a4..ee6e595c2972 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1111,11 +1111,9 @@ static int fsl_dma_chan_probe(struct fsldma_device *= fdev, int err; =20 /* alloc channel */ - chan =3D kzalloc_obj(*chan); - if (!chan) { - err =3D -ENOMEM; - goto out_return; - } + chan =3D devm_kzalloc(fdev->dev, sizeof(*chan), GFP_KERNEL); + if (!chan) + return -ENOMEM; =20 /* ioremap registers for use */ chan->regs =3D of_iomap(node, 0); @@ -1197,9 +1195,6 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, =20 out_iounmap_regs: iounmap(chan->regs); -out_free_chan: - kfree(chan); -out_return: return err; } =20 @@ -1208,7 +1203,6 @@ static void fsl_dma_chan_remove(struct fsldma_chan *c= han) tasklet_kill(&chan->tasklet); list_del(&chan->common.device_node); iounmap(chan->regs); - kfree(chan); } =20 static int fsldma_of_probe(struct platform_device *op) --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (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 0877F3DA7EE for ; Fri, 5 Jun 2026 22:02:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696927; cv=none; b=cXGckei2vYtDWUhDFOKfysfEd3tK9FZ8hUNRaTDy4tdwa9dj0zHBzh+z1v9xKPpzmQLCSYbz1WFybSF/U9uhKATLWIs2tz7ixzBzq3KyQcA8UzXBY2SoY4PMs7fHITW91pOqge8AHvZgDrz5vHPpKpRBXhM0H5NRsBvGlmuwDKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696927; c=relaxed/simple; bh=D9O4y8MzWm3dICcvhBAR8c5YwW29hJVK/MboyWCLTFM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rNTorxe2SCMmuTsL2PDdtvlbsr+DSw4nS8oVoQThn17dKox8WgeSEQZJsNCM900QJw3db8+XCNY2gp+RumiANWyDb3OnxBXehi6jCzOysONGi2QLYPaac16AlIbG0N2zKsswwAEVbVWlQe/wK2sJMoUbfDvdaKLb4E8psi4OD8g= 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=TTGSIWrv; arc=none smtp.client-ip=209.85.210.173 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="TTGSIWrv" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-8423efad617so1359787b3a.0 for ; Fri, 05 Jun 2026 15:02:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696925; x=1781301725; 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=0c+DTbgBfPPUhSPBSk+riIkjYOZTEz8XaKJeP18mVBg=; b=TTGSIWrvCHES/ma7UJoIpncBDI8YCvzFf7rxBMO0bhawTfUow/xtXn+30ik31x/9cB 96rnWh8kQYUJUXmzDh1kap2zIFDEZ0SLIRqEfwvX5W38Mnw3oCJPRYF82ZXyFv3g6GSz dcHiI8zZ1qKI572v2x5twza2M0vRnnAh6Wnhifgq+zx+f+RuS8xFWmQlc2+JgBOdg8m3 +G1uHC9CNNJupdPp8xt9IENmUQ4Nt0O0EM8I1rgb8brIgl9jK7o/HKhbr0J0mhWF0Wx8 tAiFDTTzjn/JpXh9p1oypsSZCPhg0spTvvkm82znUL+iH2B3sZxjq6gD/wbfknpEOErk kNjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696925; x=1781301725; 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=0c+DTbgBfPPUhSPBSk+riIkjYOZTEz8XaKJeP18mVBg=; b=UD9nbPWBwwKga4mDlzfW7jp6IK59XhhPX3xLQWbxmiapMvSq1Rh3kOELCKXGpmWd6U LL+6HD8kTq28XiHPJyD8RxEi1TheD6rYOUgHov/ToIckxc3YNqknpPld/S0f6ZlYqgf7 qw/xm8sJk3D1nPazKDVqjX3e1Ab5spzu8wLVwHIcoM5Lkm/sIIUXCmIbR4c6StiEiyKA ImPET3LKvl5a4mFW0YYjdSILDZ1dOPXqBFdvczK6duh3U5LMl3GVGzv5aAU7RyJ1cPzv R3QuOsF8qn40Yz5qupbJhfxFFBdAztevIOUDdV6OKe1d9PxftJ0Mpvjo7RiRNOL1geCB jAkw== X-Forwarded-Encrypted: i=1; AFNElJ/JAfJ/lAwrNPrpihVFhrIB0lJcwhYLp3GEnbrf7+SKgYnCanw0CkmiyW3z8pEcTml1d+ki6tw73K+OcbY=@vger.kernel.org X-Gm-Message-State: AOJu0YyigTJhCCW//yzhRobi3o5L9FXiWV50CUZXC/f+lN/sF7/sPtpl 8zv13LBAxzL4mlATZbz/BNmK2OmA50X/0jS6HF2c+/W6WoR9I5SLXPt2 X-Gm-Gg: Acq92OFfUJK95IbkJcQ7vITPU9NnaSKhzqr/Lzi+pNhp6nKbe9xcYY/mFhl8YLUSNvS DH1zH5ftFrhmMLk62cCHUFNxRuVuUWewVS1akV/t4kA63ixC66oRjhuX8ffHeH8EDZ8sK0f/pM4 TwICU6ALP5g9ZLu052PXzFfPTQqm0LzeOOlVD6wRJ29AAPsHVOMwBA8/+Ps8kZ/Y28tETbOY60T b/MwliJ0Z1ezvFduOr00X39A7cpBcILPIAQ13Q8cEfxcY0VLfsYTzXLuxxUOAku9r+wen+EIHqV uhCrg6wv9WgWR7+xKAXzpyn/FrNwp0+3KUeI1fyaPQDVMhbCcTWYlVRoWg+kyJHR+Y5CLR8XrO+ MXkks49Qy6qSAdN4UREuDY4aXEYGJrSng5Q7l5t7QJNHY019JhZFXce2JFGT0bGYolgSXEHEmbV j9yghvJ5RJ0h73BM5cAz6EtIpuCBpPVLHv7krqr2sxQwlmG5gjDLFahlgh01YxTHzGPGF8QWWUV FsJ/h3nFMMEqzOOj9Ae9yxYsJtaiduQpXS8efydEzYh/A== X-Received: by 2002:a05:6a00:66c1:b0:842:6004:3fb9 with SMTP id d2e1a72fcca58-842b0f52ecemr4959351b3a.25.1780696925057; Fri, 05 Jun 2026 15:02:05 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:04 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 07/10] dmaengine: fsldma: convert channel ioremap to devm_of_iomap Date: Fri, 5 Jun 2026 15:01:31 -0700 Message-ID: <20260605220134.43295-8-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Replace of_iomap with devm_of_iomap for per-channel register mappings. This eliminates the iounmap calls in both the probe error path and fsl_dma_chan_remove, and simplifies the error handling by returning directly on failure. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index ee6e595c2972..0d73ce3dbfe6 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1108,7 +1108,6 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, { struct fsldma_chan *chan; struct resource res; - int err; =20 /* alloc channel */ chan =3D devm_kzalloc(fdev->dev, sizeof(*chan), GFP_KERNEL); @@ -1116,17 +1115,16 @@ static int fsl_dma_chan_probe(struct fsldma_device = *fdev, return -ENOMEM; =20 /* ioremap registers for use */ - chan->regs =3D of_iomap(node, 0); - if (!chan->regs) { + chan->regs =3D devm_of_iomap(fdev->dev, node, 0, NULL); + if (IS_ERR(chan->regs)) { dev_err(fdev->dev, "unable to ioremap registers\n"); - err =3D -ENOMEM; - goto out_free_chan; + return PTR_ERR(chan->regs); } =20 - err =3D of_address_to_resource(node, 0, &res); + int err =3D of_address_to_resource(node, 0, &res); if (err) { dev_err(fdev->dev, "unable to find 'reg' property\n"); - goto out_iounmap_regs; + return err; } =20 chan->feature =3D feature; @@ -1145,8 +1143,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, ((res.start - 0x200) & 0xfff) >> 7; if (chan->id >=3D FSL_DMA_MAX_CHANS_PER_DEVICE) { dev_err(fdev->dev, "too many channels for device\n"); - err =3D -EINVAL; - goto out_iounmap_regs; + return -EINVAL; } =20 fdev->chan[chan->id] =3D chan; @@ -1192,17 +1189,12 @@ static int fsl_dma_chan_probe(struct fsldma_device = *fdev, chan->irq ? chan->irq : fdev->irq); =20 return 0; - -out_iounmap_regs: - iounmap(chan->regs); - return err; } =20 static void fsl_dma_chan_remove(struct fsldma_chan *chan) { tasklet_kill(&chan->tasklet); list_del(&chan->common.device_node); - iounmap(chan->regs); } =20 static int fsldma_of_probe(struct platform_device *op) --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.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 5FB403DC84C for ; Fri, 5 Jun 2026 22:02:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696928; cv=none; b=ksD3SBBvkiQ2JjKODk9MIOW9YFnv5y5FDDpV7BJqbdyCwby5qKbVuesH5aCwjN1Ct/slyeB56WR++DlrEZvlefcLB7T/dM8nd5NXxtCtOrT6iefN10bREQBcDTzKiodu/DqcwFgmMZALDR9P7kd9HbM98TKqAZc13wQtLyk7Hz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696928; c=relaxed/simple; bh=jRckM7Q/DiYZgoe/UjgP6+oEblX3ejArkHyi4yqjIho=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EdF+yvO9BXpcbid0nqPo7xRSTO57KvFN3WsJUUX9UWdtuyRXJFlqaoZSZfVyUbFXbPIvLbpjRkfulrh1mNL51Q55lY03M7aU09OnknGMvZXQzPRjjrwdcTyxooIw9Gc+JZlFAoMvm8b/f2M0u6aK5x363G8807+zCkaSGPi9qoA= 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=lKpRYODC; arc=none smtp.client-ip=209.85.210.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="lKpRYODC" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-8423f420455so1088361b3a.3 for ; Fri, 05 Jun 2026 15:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696927; x=1781301727; 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=KDWu5/hG//ENwpueDa3x2k+unyGwqq6tLB7KN2pYPhY=; b=lKpRYODCRRXbxBUzk37XEHD+f31cYk6GHwifjnNINpAmHy8WY2o6aZDVyqGJ8cUFMq 0MzYAgDhPU4hNB1w7TdX+v8+xNHwX+PcqoxbZLi/302lzNpmaBBBxXPgT4s7ztWX2Yfd raV4vyzpKR0dMabuPKDR5Nubp06tKc1Ft2NwJTMdd7gaKIziR3oQ0JDbbLCJinZlzt1e GOYvbqvq4krjrnmmIsiHC3IJBrYSMNVjLzlx3E7x5TWHC1Zwrr+3vqsdJYV7xX3hVjmW zTSWTBS90hJw8wha+OkZTqOaVuZYm2nhavu/EADofYa3rgpqRsf0IH6f8rxMnFxklvjI QPXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696927; x=1781301727; 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=KDWu5/hG//ENwpueDa3x2k+unyGwqq6tLB7KN2pYPhY=; b=exNCQBA7Fy0I6pDAwf2okG9pL5RslZ3Tv47NBygU6ycV6g/6c26T1n/FSKcpfAE9c7 8FuHRrXiP1s9mGoDqOp+7AgrGcYQH/5wTrbanncirPiOd5z5WssYjBZ+0Xr3MocUOsCN OMQHP0Mzybj0pdNTDhVp/jyaXMmozpwi07NBE9hejWRoJ0+m0baCHU/ORH8y85l0oPr0 /tj1yUuLvKLVCWcxWGL3B5dbwn+cVf6A0E7xvOLNmJ77lzgoXDJyAP03W+KmOy9J3zl5 q9QtWsStxjlQG8mfNHGRdUbNqQv+Pms9EnVxb1WrNMlwwZ7hjBD+vpuLDnjZRGYLG1jy kcfA== X-Forwarded-Encrypted: i=1; AFNElJ9no+NnN8sQ4Xmj3zXKtph3ur39ja0UeIoZe2abmcOkNjduiHxEAhOIgPlkjeQS1Bplo7/rjTxPXZqPlCE=@vger.kernel.org X-Gm-Message-State: AOJu0YyAGyXFTTmRsezb2ELss8Mp5fm/woYKb6lRj/L/ACaDE7CtY89y +Hoe4dY9rh/APKOR4iJDXKApCZ5D151wKX+BUUG66sxcOybUK3m1xX63 X-Gm-Gg: Acq92OEoU8Jn9X/lslYt8+VricEo/TCN5Zj7CkuWqH1yJ5T7DiGXrXmNYbJmGqTkgWz 46kcwhb6psnGhRlOEK0bBgrYlybS1j5R5RhJlAFAGdrm/H1bbTC0HsuUG54yGvhxlXFPSDpxCB6 +cmMZO2YBXzFMBAWKolgzZC7THTDNT/bdmdgukqA3IjPS7uFSljpNWk89xfK/BQ9ARHZTWqFEMj YdAhKKshr14Kojivf1SZl804qugGTOjraWRTFzSWGRl6p43cgwIH1XSecQVRtCjIUJenjfp8QSY 8NY4DqlrzrF+BA0M4YjLcboXTClhUHQK30LU2U+p4q7zr89pcwaGkvSzfT952RQEp+VhKehqYS+ KFf+fwr1cxgwqW4BkhxBcq0l8p5beFpLfDBl2AHZV1saRO3ynbmRicNC8wnLr/OiMrvThG+HlAz Lbnljps7/C7rk5ijtoCRIwlUhC0qB6MKKfnf6jzy9ue7oHVlqDCclKLFd4tRvoi+qY0jLx633qH EDi6bWjpRegsi78L0PQU4McPq4W0sjcdjVHRtbH3zFHdg== X-Received: by 2002:a05:6a00:bc81:b0:842:2ae0:968d with SMTP id d2e1a72fcca58-842b0f6f508mr5278874b3a.32.1780696926573; Fri, 05 Jun 2026 15:02:06 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:05 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 08/10] dmaengine: fsldma: replace irq_of_parse_and_map with of_irq_get Date: Fri, 5 Jun 2026 15:01:32 -0700 Message-ID: <20260605220134.43295-9-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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 of_irq_get which returns a negative error code on failure instead of silently returning 0. Update the IRQ validation checks in fsldma_request_irqs from !chan->irq to chan->irq <=3D 0 to handle both 0 and negative error returns correctly. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 0d73ce3dbfe6..79a268139b9f 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1067,7 +1067,7 @@ static int fsldma_request_irqs(struct fsldma_device *= fdev) if (!chan) continue; =20 - if (!chan->irq) { + if (chan->irq <=3D 0) { chan_err(chan, "interrupts property missing in device tree\n"); ret =3D -ENODEV; goto out_unwind; @@ -1090,7 +1090,7 @@ static int fsldma_request_irqs(struct fsldma_device *= fdev) if (!chan) continue; =20 - if (!chan->irq) + if (chan->irq <=3D 0) continue; =20 free_irq(chan->irq, chan); @@ -1180,7 +1180,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *f= dev, dma_cookie_init(&chan->common); =20 /* find the IRQ line, if it exists in the device tree */ - chan->irq =3D irq_of_parse_and_map(node, 0); + chan->irq =3D of_irq_get(node, 0); =20 /* Add the channel to DMA device channel list */ list_add_tail(&chan->common.device_node, &fdev->common.channels); --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 DC2B43DCDAC for ; Fri, 5 Jun 2026 22:02:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696930; cv=none; b=Li65SkHBneN+8aq3+74RwbrSAJccGmeb6fq1A3ENofXDKfN4rzKav6H4ttIKwpWzLGW2nqqMtewB44qs/C63b+f9gXl2ikduZGkGynPiZeNFP5iUrX5NRpm5TKL6Prs4e9qqmBM0yhp8lOVEIAgnLAfId3Esjsj2/TL4n5DSsoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696930; c=relaxed/simple; bh=ZIbZrZAamM8DHdzetSAyNZ32dsZlWnuLa36YcV5UTMo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AeM2r7LpqbUGmTsY3oojX+6X40SOVoQpx/E0In7eOz4dPd1kkM64+/ptry/EoH2fAS+fVQIEYLAcdAwWMA7PjUHsZ0eWiqvLpf5Z6SWtA+hFh0EQt8JjxM4kA+6/0KC8wN3QnaLhJeOI4nl2lgX8LNyE69E6cqz2fYx11oSqSLA= 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=snMMM9y/; arc=none smtp.client-ip=209.85.210.171 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="snMMM9y/" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-84226d0f1d2so1663921b3a.1 for ; Fri, 05 Jun 2026 15:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696928; x=1781301728; 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=XsujHfWeeEl/d7h28VlfSKrBHdpgYMwwQ54lzvrhDbE=; b=snMMM9y/tSQF3pOusN9Q61pLwqfZQgS2FSGQ4KqLpjk0VaR0IHPBfp2vpdEIC/v8ze kvl9ajCYCHzJeTRg9+W0GttU9jm6IDRwR80aBfJBlMSC+9n45g3NhBj+kMOyXL1ZUbin Xx7jfJGApCzeEjtVkilCmMAtOgXYcUKa4LVTJAJ6B03qEoCBU4Od4vowGt6iEmhVjXy+ Oh+g+BXfJs9xVMYmw94XFhj7k222mltJm92RHc+9/J9jgHFIw3IurYe7wCMZy8yRxyRW d++AhMSSRtfifh/zF+aKHUdfhoj43zjAWsxGLUSUUv78SNFXBvBNrs/fPncD38lhXQLz G5QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696928; x=1781301728; 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=XsujHfWeeEl/d7h28VlfSKrBHdpgYMwwQ54lzvrhDbE=; b=YwSiPelGmH04CIe+CyF3R+k4jNcsKK81uvc/CV69dOYSknFfLXln+w8/VcJ8AeC9M8 svqCQUt+gxTvx6PyRAxAzwXjdqtTq7++Px4N4u45+GZmcpxiqroo4GxH5CEVFWNs8WU5 XWwMnhXIlZEbag50l5mzphs9iyaqoF/x/mreza6kVKGjrponIBAcSEgryfEDedgkrMd0 sNqS0m0+YOKsXIJycVsRrcl1Rpfd81OHRSYaSmx3FeDrZa7oln5G9W7vF5cjLNDMYIFa 69d1JR49IlkXhXNj8llXbu3G/K6Lo3Jvf4JUeHP+GUFdDFbTrKHhszimYLNqOYvZvf7F 53fg== X-Forwarded-Encrypted: i=1; AFNElJ/SrB/quI/G2BbFXQFBwnLxGHHNgmh/YIkWl3ojMHD+8U4hwUKFYtasFwDycKL4GizCuvfr4Yrby8TF7SQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwGizM/r/3nQ9Um5Ysbol5B12OARuZ22r9LfZXMFVp8fvOagEnr IDij2kFrdPvFYoLMyz7hQ114ErDWvwR86LXSFmCf0uZrOxtO3LXP+wJd X-Gm-Gg: Acq92OF6l/izHNWj5MqhjcSEQGX8DPUxaf7I1+DKlT411fRI/3ga2/dmejTZV0f/lsP lxOfDgJ8WAPDLySUogKA69sDDFA8aAOEOetbFyw5CgtGVKyl/1YV+z1Xdfg3RR9u4tIphQyihq1 yuSMPlwUnwp0cRFYT0lfzo8Y4V4gkx47V34pYGzI8zgnGLMatFAtjVDmZznrhSGbmhw78iBVKp3 rdnR6VSACu+TUcbIUNL0hFFBvw1Hb/5gkcLguq7NpN/PdEqNbZMDzFJQqoWYpjj+FjV7GonMuM2 YHmxKn1r9WaM7nmEihqP+47eLXahQ0Nr9KPWoCyzEr6yHwr5gT2ASKosDCHhWCJ+0Ch68LMU8tV hk8mWcA39I4yVGNwgYD/e6O3ikHwejjAdAbOCuAFoD4/8p+QhzVnUZdFoNxbNotcEZKej2BwDP+ 9OLa51AuhIM4GK9nJp5Jr91Svap8X6tWfpRa1RkbJfZY3t/RChnlyUdgT36s9u25uJvzRlaEE/i cCoFTiM1GB76IH6HfKBTOkcRsgdBOWN566U+iMCRXtZoQ== X-Received: by 2002:a05:6a00:a13:b0:82c:d7c9:5479 with SMTP id d2e1a72fcca58-842b0e3da19mr5756498b3a.32.1780696928113; Fri, 05 Jun 2026 15:02:08 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:07 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 09/10] dmaengine: fsldma: convert to devm_request_irq Date: Fri, 5 Jun 2026 15:01:33 -0700 Message-ID: <20260605220134.43295-10-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" Replace request_irq/free_irq with devm_request_irq, tying IRQ lifetimes to the parent DMA device. This removes fsldma_free_irqs() entirely, eliminates the out_unwind error unwind label, and drops the explicit free_irq call from fsldma_of_remove. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/fsldma.c | 50 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 44 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 79a268139b9f..01c9cd27e795 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1027,26 +1027,6 @@ static irqreturn_t fsldma_ctrl_irq(int irq, void *da= ta) return IRQ_RETVAL(handled); } =20 -static void fsldma_free_irqs(struct fsldma_device *fdev) -{ - struct fsldma_chan *chan; - int i; - - if (fdev->irq) { - dev_dbg(fdev->dev, "free per-controller IRQ\n"); - free_irq(fdev->irq, fdev); - return; - } - - for (i =3D 0; i < FSL_DMA_MAX_CHANS_PER_DEVICE; i++) { - chan =3D fdev->chan[i]; - if (chan && chan->irq) { - chan_dbg(chan, "free per-channel IRQ\n"); - free_irq(chan->irq, chan); - } - } -} - static int fsldma_request_irqs(struct fsldma_device *fdev) { struct fsldma_chan *chan; @@ -1056,9 +1036,8 @@ static int fsldma_request_irqs(struct fsldma_device *= fdev) /* if we have a per-controller IRQ, use that */ if (fdev->irq) { dev_dbg(fdev->dev, "request per-controller IRQ\n"); - ret =3D request_irq(fdev->irq, fsldma_ctrl_irq, IRQF_SHARED, - "fsldma-controller", fdev); - return ret; + return devm_request_irq(fdev->dev, fdev->irq, fsldma_ctrl_irq, + IRQF_SHARED, "fsldma-controller", fdev); } =20 /* no per-controller IRQ, use the per-channel IRQs */ @@ -1069,34 +1048,19 @@ static int fsldma_request_irqs(struct fsldma_device= *fdev) =20 if (chan->irq <=3D 0) { chan_err(chan, "interrupts property missing in device tree\n"); - ret =3D -ENODEV; - goto out_unwind; + return -ENODEV; } =20 chan_dbg(chan, "request per-channel IRQ\n"); - ret =3D request_irq(chan->irq, fsldma_chan_irq, IRQF_SHARED, - "fsldma-chan", chan); + ret =3D devm_request_irq(fdev->dev, chan->irq, fsldma_chan_irq, + IRQF_SHARED, "fsldma-chan", chan); if (ret) { chan_err(chan, "unable to request per-channel IRQ\n"); - goto out_unwind; + return ret; } } =20 return 0; - -out_unwind: - for (/* none */; i >=3D 0; i--) { - chan =3D fdev->chan[i]; - if (!chan) - continue; - - if (chan->irq <=3D 0) - continue; - - free_irq(chan->irq, chan); - } - - return ret; } =20 /*------------------------------------------------------------------------= ----*/ @@ -1304,8 +1268,6 @@ static void fsldma_of_remove(struct platform_device *= op) fdev =3D platform_get_drvdata(op); dma_async_device_unregister(&fdev->common); =20 - fsldma_free_irqs(fdev); - for (i =3D 0; i < FSL_DMA_MAX_CHANS_PER_DEVICE; i++) { if (fdev->chan[i]) fsl_dma_chan_remove(fdev->chan[i]); --=20 2.54.0 From nobody Mon Jun 8 06:36:20 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.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 809933DD510 for ; Fri, 5 Jun 2026 22:02:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696931; cv=none; b=iFnNtR/YEA2+DJzib5obAxuyCZirBYEmTEI36A5ua4E2dUSoIj+rmuyiwhd7ltywJvo+kKNtvNvWdVrFz2EL9APf3FNbNC4HdYuAsWqcED+UxOc+083+hqgFXEoQ1iDWIT3UyOqv4vA3FybfPJIBNvj8hy4FFCff9UOMdSoTZvc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780696931; c=relaxed/simple; bh=5w6tsBgfpFcK6p2n/K6AqHvbyJ9yiri4PsQmj2ASk4M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rZ0CcB2bERHKCRK816DMraPP1ru4rwKjMWHEpVExO1+jjjHiMjexNWLiX8BQGCdxRjiwPriMXpoDea2Bxo1NC6ODjxcVJQDTFNnQLZ4i3OVccyukv4DXS1wwK9Vd5uRpKBh1wsw9G7jtk9E4z5kfUdIIUTavsLTFq5LZQbG1fyQ= 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=RkpsoCDM; arc=none smtp.client-ip=209.85.210.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="RkpsoCDM" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-84237c55ef9so1244900b3a.0 for ; Fri, 05 Jun 2026 15:02:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780696930; x=1781301730; 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=lCrOV/66FRzdEdHCWluMsQiKmBFsYBQNgpZa33W4dWo=; b=RkpsoCDM0FHXY8lDHQjOfRyaC4sR5N7qxG1OEJt8nz96FbT9/3Nk1H3Z2sFn7B6Qtv T8nrrJdK3E8Gtagp2o3Jk9VrJWgl28z3JjjSc48q6SzM5AwDZNu5aOEIRzEWtd7zJaaI VioeaLls4Bjqy91dTBsN6WY14I+Rn2lRP5DPYbSBjUErSRFJNzBrJzJMQi454ItI2qCp 2Tt7C/hl36wwfq7EfHEG0sBuMOVy/ioQXC81Iic9+uOiIm3sOdm+mv2W+MTbAohdELah icAxd5VYsHe1ndpH9J1UgEM4QqlrUIv1E/JszvG9pu5XB07yFl9zE2q+LbTPfFtNZkyb 9ORw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780696930; x=1781301730; 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=lCrOV/66FRzdEdHCWluMsQiKmBFsYBQNgpZa33W4dWo=; b=rnYgg2zaoQyZLpLrZ3IIf6kFxONXVPCiAbvUP3nlj5P+XdbOYO7ZYok0EylcPXEiEw OwULUJuAFzKOPE7WRm91W9ty9Sp4XAgmwRUWLhuPLWbb5DoaU2m6Z2SShtw87NYSTcys DSSV9hFxo0fBDNTR8qRT414JxaYGXFrhKlMTVvkuIxu2c4r+dnc04fRxEomeR+bDg7v1 yVjqKaB0UCQZQrVQ2ul8nyDXkDi3y1J1ApvtUNHJoSsMbhKYixOux1ZqN2Slmx5rDG5E Jrl7Gk3iFCE8jOcShJdi1YmTChOYbsw9c9rqHkBBzRDvhq1rDEhvAYgfoO8F5q/BEPg2 EgXA== X-Forwarded-Encrypted: i=1; AFNElJ/a5+jtxo4HrKTUPdCd5/oVwSeSY1LgAlulMel3Cin4J34pybyCDixxQ7KapxqHFk/tdqVBfdAhUmgpiOE=@vger.kernel.org X-Gm-Message-State: AOJu0YyqsfF08VFqOdeANIPVSZmbJZxDyryapJWXuRHSmEgKFsew2hyQ vuPjL3jjopCNU27h+J1s5T6UUI4PVTcT2fBv3UghkDZFIOuNhS08i8C6 X-Gm-Gg: Acq92OEbeT3YnEyHuv9KnKke2S+RO5meoFhhvFxkV8H8Ag0LDRGDIeykMcpuI7Lni+O /VYzic+2N5ILp6L/OoFFF+EZTWaIMUkXmvWSkf/BxQTmecB0KB2xuJY5RIBk0UaLGNO4m9f5XC2 NR6E95PY61Uwc9Qd4uKsuL3tTZctTFkQkWjCxypW/b3MipHJOL4tElGbaKzxIVraNcwUxM71+S/ vudlyDZotPudYSSBQcU4Lmx87v9yF3aYXO2W7mUOFhn/Q1Ni4/2GiSgp1jEIGlsUOl+6SbHKZQR fFh7TVW8hTpzCpzPBG4MMfnpHbYv32dtg+SDPzUMnCPHpl0q/cptRMUHlJoVuQaLv0G7AuMuN5Y HrWVkWsqflrsRpsz42XLvPG8Vuw2yaaR61pWhMLtV4T6x+B4Fsg4WCB1HBQnHRwNyr4dRc3ossX BHprM0jk+BVzFpi86XCvSKUNr09cuxg8y4o+nCQRa5db42mPEZkWXt3Ge0egSsXAm0bedfK0Lg3 9kz30h8pVLMAwElr0+NJWm9pfpE+jXbTqGKwKsQm3iFYw== X-Received: by 2002:aa7:88c6:0:b0:834:e5a2:d089 with SMTP id d2e1a72fcca58-842b109cf44mr5622300b3a.33.1780696929651; Fri, 05 Jun 2026 15:02:09 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842824a1cb4sm12518883b3a.26.2026.06.05.15.02.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 15:02:08 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Zhang Wei , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), linuxppc-dev@lists.ozlabs.org (open list:FREESCALE DMA DRIVER), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH 10/10] dmaengine: fsldma: replace ppc-specific accessors with portable generic ones Date: Fri, 5 Jun 2026 15:01:34 -0700 Message-ID: <20260605220134.43295-11-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605220134.43295-1-rosenp@gmail.com> References: <20260605220134.43295-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" - Convert remaining in_be32/in_le32 calls to FSL_DMA_IN macro - Replace __ilog2 with generic ilog2 (pull in linux/log2.h) - Add linux/io.h include - Expand non-PPC accessor support from ARM-only to all architectures - Guard 64-bit generic accessors with CONFIG_64BIT; provide emulation using 32-bit accessors on 32-bit platforms Add COMPILE_TEST support as a result for extra compile coverage. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/dma/Kconfig | 2 +- drivers/dma/fsldma.c | 11 ++++++----- drivers/dma/fsldma.h | 35 ++++++++++++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 302021540d76..9b13e7aa31c7 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -206,7 +206,7 @@ config EP93XX_DMA =20 config FSL_DMA tristate "Freescale Elo series DMA support" - depends on FSL_SOC + depends on FSL_SOC || COMPILE_TEST select DMA_ENGINE select ASYNC_TX_ENABLE_CHANNEL_SWITCH help diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 01c9cd27e795..a7c1f1b4c9ac 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include #include "dmaengine.h" #include "fsldma.h" @@ -266,7 +268,7 @@ static void fsl_chan_set_src_loop_size(struct fsldma_ch= an *chan, int size) case 4: case 8: mode &=3D ~FSL_DMA_MR_SAHTS_MASK; - mode |=3D FSL_DMA_MR_SAHE | (__ilog2(size) << 14); + mode |=3D FSL_DMA_MR_SAHE | (ilog2(size) << 14); break; } =20 @@ -299,7 +301,7 @@ static void fsl_chan_set_dst_loop_size(struct fsldma_ch= an *chan, int size) case 4: case 8: mode &=3D ~FSL_DMA_MR_DAHTS_MASK; - mode |=3D FSL_DMA_MR_DAHE | (__ilog2(size) << 16); + mode |=3D FSL_DMA_MR_DAHE | (ilog2(size) << 16); break; } =20 @@ -326,7 +328,7 @@ static void fsl_chan_set_request_count(struct fsldma_ch= an *chan, int size) =20 mode =3D get_mr(chan); mode &=3D ~FSL_DMA_MR_BWC_MASK; - mode |=3D (__ilog2(size) << 24) & FSL_DMA_MR_BWC_MASK; + mode |=3D (ilog2(size) << 24) & FSL_DMA_MR_BWC_MASK; =20 set_mr(chan, mode); } @@ -1004,8 +1006,7 @@ static irqreturn_t fsldma_ctrl_irq(int irq, void *dat= a) u32 gsr, mask; int i; =20 - gsr =3D (fdev->feature & FSL_DMA_BIG_ENDIAN) ? in_be32(fdev->regs) - : in_le32(fdev->regs); + gsr =3D FSL_DMA_IN(fdev, fdev->regs, 32); mask =3D 0xff000000; dev_dbg(fdev->dev, "IRQ: gsr 0x%.8x\n", gsr); =20 diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h index d7b7a3138b85..01f93123b233 100644 --- a/drivers/dma/fsldma.h +++ b/drivers/dma/fsldma.h @@ -232,17 +232,46 @@ static void fsl_iowrite64be(u64 val, u64 __iomem *add= r) out_be32((u32 __iomem *)addr + 1, (u32)val); } #endif -#endif - -#if defined(CONFIG_ARM64) || defined(CONFIG_ARM) +#else #define fsl_ioread32(p) ioread32(p) #define fsl_ioread32be(p) ioread32be(p) #define fsl_iowrite32(v, p) iowrite32(v, p) #define fsl_iowrite32be(v, p) iowrite32be(v, p) + +#ifdef CONFIG_64BIT #define fsl_ioread64(p) ioread64(p) #define fsl_ioread64be(p) ioread64be(p) #define fsl_iowrite64(v, p) iowrite64(v, p) #define fsl_iowrite64be(v, p) iowrite64be(v, p) +#else +static inline u64 fsl_ioread64(const u64 __iomem *addr) +{ + u32 val_lo =3D ioread32((u32 __iomem *)addr); + u32 val_hi =3D ioread32((u32 __iomem *)addr + 1); + + return ((u64)val_hi << 32) + val_lo; +} + +static inline void fsl_iowrite64(u64 val, u64 __iomem *addr) +{ + iowrite32(val >> 32, (u32 __iomem *)addr + 1); + iowrite32((u32)val, (u32 __iomem *)addr); +} + +static inline u64 fsl_ioread64be(const u64 __iomem *addr) +{ + u32 val_hi =3D ioread32be((u32 __iomem *)addr); + u32 val_lo =3D ioread32be((u32 __iomem *)addr + 1); + + return ((u64)val_hi << 32) + val_lo; +} + +static inline void fsl_iowrite64be(u64 val, u64 __iomem *addr) +{ + iowrite32be(val >> 32, (u32 __iomem *)addr); + iowrite32be((u32)val, (u32 __iomem *)addr + 1); +} +#endif #endif =20 #define FSL_DMA_IN(fsl_dma, addr, width) \ --=20 2.54.0