aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>2026-05-27 02:42:43 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2026-05-27 18:12:09 +0000
commitd1488cd762bee79240a715bf04f3d30e9a121b26 (patch)
tree905758867938b64f0503e8c9a5ec48333f50f5cf
parent6880405bf97df03ffce227d34c2faa99b602a49d (diff)
bcm2835_sdhci: Clean up DMA resources on attach failure
bcm_sdhci_attach() allocates a DMA channel with bcm_dma_allocate() before creating the bus_dma tag and map. If a later initialization step fails, the common error path releases the interrupt and memory resources, but leaves the DMA channel allocated. Call bcm_dma_free() for cleanup, as it already performs the required internal checks and can therefore be invoked directly. Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> Reviewed by: mhorne MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/2241
-rw-r--r--sys/arm/broadcom/bcm2835/bcm2835_sdhci.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c b/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
index e0c4327d8e05..6e974a1a61bb 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
@@ -365,6 +365,7 @@ bcm_sdhci_attach(device_t dev)
return (0);
fail:
+ bcm_dma_free(sc->sc_dma_ch);
if (sc->sc_intrhand)
bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intrhand);
if (sc->sc_irq_res)