From: sashiko-bot@kernel.org
To: "Sai Sree Kartheek Adivi" <s-adivi@ti.com>
Cc: devicetree@vger.kernel.org, conor+dt@kernel.org,
vkoul@kernel.org, robh@kernel.org, dmaengine@vger.kernel.org,
Frank.Li@kernel.org
Subject: Re: [PATCH v10 11/19] dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to k3-udma-common.c
Date: Mon, 28 Sep 2026 03:13:33 +0000 [thread overview]
Message-ID: <20260928031335.3427B1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260928025749.1055383-12-s-adivi@ti.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] dmaengine: ti: k3-udma: UAF due to broken module dependency
--
commit f3615f5a550ae951b71ca33c0cf4afbecff775f7
Author: Sai Sree Kartheek Adivi <s-adivi@ti.com>
dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to k3-udma-common.c
Relocates the inclusion of k3-udma-private.c to k3-udma-common.c so that
the code can be shared between other UDMA variants. This is intended to
improve modularity without introducing functional changes.
> diff --git a/drivers/dma/ti/k3-udma-common.c b/drivers/dma/ti/k3-udma-common.c
> index d0afbab01786f..eb555cc08347d 100644
> --- a/drivers/dma/ti/k3-udma-common.c
> +++ b/drivers/dma/ti/k3-udma-common.c
> @@ -2536,3 +2536,6 @@ EXPORT_SYMBOL_GPL(k3_udma_setup_resources);
>
> MODULE_DESCRIPTION("Texas Instruments K3 UDMA Common Library");
> MODULE_LICENSE("GPL v2");
> +
> +/* Private interfaces to UDMA */
> +#include "k3-udma-private.c"
[Severity: High]
Does moving this include into k3-udma-common.c inadvertently break the module
dependency that keeps k3-udma.c from being unloaded while in use?
By moving the exported symbols from k3-udma-private.c into k3-udma-common.ko,
the dependency of client modules (like k3-udma-glue) shifts away from the
main hardware driver k3-udma.ko.
If a client uses k3-udma-glue APIs to obtain the devm-allocated context via
of_xudma_dev_get(), the device reference is explicitly dropped:
drivers/dma/ti/k3-udma-private.c:of_xudma_dev_get() {
...
ud = platform_get_drvdata(pdev);
put_device(&pdev->dev);
...
}
Because these APIs bypass the standard DMA engine core which normally calls
try_module_get(), k3-udma.ko is left with a module reference count of 0.
Could this allow k3-udma.ko to be unloaded while the client still actively
uses the dangling pointer, resulting in a use-after-free when the devm
resources are released?
> diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
> index 9a261747c8709..ddedd51ab26d9 100644
> --- a/drivers/dma/ti/k3-udma.c
> +++ b/drivers/dma/ti/k3-udma.c
> @@ -2857,5 +2857,3 @@ module_platform_driver(udma_driver);
> MODULE_DESCRIPTION("Texas Instruments UDMA support");
> MODULE_LICENSE("GPL v2");
>
> -/* Private interfaces to UDMA */
> -#include "k3-udma-private.c"
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260928025749.1055383-1-s-adivi@ti.com?part=11
next prev parent reply other threads:[~2026-09-28 3:13 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 2:56 [PATCH v10 00/19] dmaengine: ti: Add support for BCDMA v2 and PKTDMA v2 Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 01/19] dmaengine: ti: k3-udma: Fix sporadic crash on AM62x Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 02/19] dmaengine: ti: k3-udma: move macros to header file Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 03/19] dmaengine: ti: k3-udma: move structs and enums " Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 04/19] dmaengine: ti: k3-udma: move static inline helper functions " Sai Sree Kartheek Adivi
2026-09-28 3:12 ` sashiko-bot
2026-09-28 2:56 ` [PATCH v10 05/19] dmaengine: ti: k3-udma: move descriptor management to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 06/19] dmaengine: ti: k3-udma: move ring management functions " Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 07/19] dmaengine: ti: k3-udma: Add variant-specific function pointers to udma_dev Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 08/19] dmaengine: ti: k3-udma: move udma utility functions to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 09/19] dmaengine: ti: k3-udma: move resource management " Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 10/19] dmaengine: ti: k3-udma: refactor resource setup functions Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 11/19] dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-28 3:13 ` sashiko-bot [this message]
2026-09-28 2:56 ` [PATCH v10 12/19] drivers: soc: ti: k3-ringacc: handle absence of tisci Sai Sree Kartheek Adivi
2026-09-28 3:15 ` sashiko-bot
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 13/19] dt-bindings: dma: ti: Add K3 BCDMA V2 Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 14/19] dt-bindings: dma: ti: Add K3 PKTDMA V2 Sai Sree Kartheek Adivi
2026-09-30 10:22 ` Krzysztof Kozlowski
2026-09-28 2:56 ` [PATCH v10 15/19] dmaengine: ti: k3-psil-am62l: Add AM62Lx PSIL and PDMA data Sai Sree Kartheek Adivi
2026-09-28 3:18 ` sashiko-bot
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 16/19] dmaengine: ti: k3-udma-v2: New driver for K3 BCDMA_V2 Sai Sree Kartheek Adivi
2026-09-28 3:26 ` sashiko-bot
2026-09-28 8:39 ` Vignesh Raghavendra
2026-09-28 2:56 ` [PATCH v10 17/19] dmaengine: ti: k3-udma-v2: Add support for PKTDMA V2 Sai Sree Kartheek Adivi
2026-09-28 3:21 ` sashiko-bot
2026-09-28 8:39 ` Vignesh Raghavendra
2026-10-01 7:17 ` Sai Sree Kartheek Adivi
2026-09-28 2:56 ` [PATCH v10 18/19] dmaengine: ti: k3-udma-v2: Update glue layer to support " Sai Sree Kartheek Adivi
2026-09-28 3:17 ` sashiko-bot
2026-09-28 2:56 ` [PATCH v10 19/19] dmaengine: ti: k3-udma: Validate resource ID and fix logging in reservation Sai Sree Kartheek Adivi
2026-09-28 8:39 ` Vignesh Raghavendra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260928031335.3427B1F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=robh@kernel.org \
--cc=s-adivi@ti.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.