diff --git a/sys/amd64/amd64/busdma_machdep.c b/sys/amd64/amd64/busdma_machdep.c index 199ab545df65..1d70417d7ed3 100644 --- a/sys/amd64/amd64/busdma_machdep.c +++ b/sys/amd64/amd64/busdma_machdep.c @@ -285,8 +285,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, /* Must bounce */ - if ((error = alloc_bounce_zone(newtag)) != 0) + if ((error = alloc_bounce_zone(newtag)) != 0) { + free(newtag, M_DEVBUF); return (error); + } bz = newtag->bounce_zone; if (ptoa(bz->total_bpages) < maxsize) { diff --git a/sys/i386/i386/busdma_machdep.c b/sys/i386/i386/busdma_machdep.c index c4af1ddc94c7..08db5e00d9e4 100644 --- a/sys/i386/i386/busdma_machdep.c +++ b/sys/i386/i386/busdma_machdep.c @@ -28,6 +28,9 @@ __FBSDID("$FreeBSD$"); #include +#include +#include +#include #include #include #include @@ -285,8 +288,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, /* Must bounce */ - if ((error = alloc_bounce_zone(newtag)) != 0) + if ((error = alloc_bounce_zone(newtag)) != 0) { + free(newtag, M_DEVBUF); return (error); + } bz = newtag->bounce_zone; if (ptoa(bz->total_bpages) < maxsize) {