possible memory leak in em_dma_free?
beezarliu
beezarliu at yahoo.com.cn
Wed Nov 25 10:09:54 UTC 2009
Hi all,
I saw em driver, and found a possible memory leak.
dma->dma_map may be NULL, so the dma memory will not be freed.
I think the condition will it be beter if it is "(dma->dma_vaddr != NULL) {"
Thanks
static void
em_dma_free(struct adapter *adapter, struct em_dma_alloc *dma)
{
if (dma->dma_tag == NULL)
return;
if (dma->dma_map != NULL) { --> if (dma->dma_vaddr != NULL) {
bus_dmamap_sync(dma->dma_tag, dma->dma_map,
BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dma->dma_tag, dma->dma_map);
bus_dmamem_free(dma->dma_tag, dma->dma_vaddr, dma->dma_map);
dma->dma_map = NULL;
}
bus_dma_tag_destroy(dma->dma_tag);
dma->dma_tag = NULL;
}
2009-11-25
beezarliu
More information about the freebsd-net
mailing list