diff options
author | yongari <yongari@FreeBSD.org> | 2009-01-08 04:26:44 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2009-01-08 04:26:44 +0000 |
commit | 8adb645b16ddc506b4b9e5ce06c08af2a1b524ed (patch) | |
tree | aa73d572cc8eac894afb33588879702cca8e48fe /sys/dev/fxp/if_fxp.c | |
parent | af98809235f360c69043040e8e24f7b21ceb39ee (diff) | |
download | FreeBSD-src-8adb645b16ddc506b4b9e5ce06c08af2a1b524ed.zip FreeBSD-src-8adb645b16ddc506b4b9e5ce06c08af2a1b524ed.tar.gz |
Always check whether dma map is valid before unloading the map.
When fxp(4) intializes Rx buffers for the first time, there is no
loaded dma map so attempting to unload it is an invalid operation.
Diffstat (limited to 'sys/dev/fxp/if_fxp.c')
-rw-r--r-- | sys/dev/fxp/if_fxp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index 9a6851c..ca1a614 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -2545,7 +2545,8 @@ fxp_new_rfabuf(struct fxp_softc *sc, struct fxp_rx *rxp) return (error); } - bus_dmamap_unload(sc->fxp_mtag, rxp->rx_map); + if (rxp->rx_mbuf != NULL) + bus_dmamap_unload(sc->fxp_mtag, rxp->rx_map); tmp_map = sc->spare_map; sc->spare_map = rxp->rx_map; rxp->rx_map = tmp_map; |