Module Name: src Committed By: jakllsch Date: Thu Jul 12 16:01:53 UTC 2012
Modified Files: src/sys/dev/sdmmc: sdmmc.c Log Message: If necessary, unload and destroy dmamap upon detach. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/dev/sdmmc/sdmmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/sdmmc/sdmmc.c diff -u src/sys/dev/sdmmc/sdmmc.c:1.12 src/sys/dev/sdmmc/sdmmc.c:1.13 --- src/sys/dev/sdmmc/sdmmc.c:1.12 Wed Feb 1 22:34:42 2012 +++ src/sys/dev/sdmmc/sdmmc.c Thu Jul 12 16:01:53 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: sdmmc.c,v 1.12 2012/02/01 22:34:42 matt Exp $ */ +/* $NetBSD: sdmmc.c,v 1.13 2012/07/12 16:01:53 jakllsch Exp $ */ /* $OpenBSD: sdmmc.c,v 1.18 2009/01/09 10:58:38 jsg Exp $ */ /* @@ -49,7 +49,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sdmmc.c,v 1.12 2012/02/01 22:34:42 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sdmmc.c,v 1.13 2012/07/12 16:01:53 jakllsch Exp $"); #ifdef _KERNEL_OPT #include "opt_sdmmc.h" @@ -192,6 +192,12 @@ sdmmc_detach(device_t self, int flags) error = config_detach_children(self, flags); if (error) return error; + + if (ISSET(sc->sc_caps, SMC_CAPS_DMA)) { + bus_dmamap_unload(sc->sc_dmat, sc->sc_dmap); + bus_dmamap_destroy(sc->sc_dmat, sc->sc_dmap); + } + return 0; }