From: Sepherosa Ziehau Date: Fri, 31 Dec 2010 09:25:05 +0000 (+0800) Subject: busdma: Free bounce zone if any error happens during bus_dma_tag_create() X-Git-Tag: v2.11.0~377 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/37111f9c4a25a18d85edda8be1d7dcd7bd1393ff busdma: Free bounce zone if any error happens during bus_dma_tag_create() --- diff --git a/sys/platform/pc32/i386/busdma_machdep.c b/sys/platform/pc32/i386/busdma_machdep.c index 3a248938a9..b45e2d68fd 100644 --- a/sys/platform/pc32/i386/busdma_machdep.c +++ b/sys/platform/pc32/i386/busdma_machdep.c @@ -363,10 +363,12 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, } } back: - if (error) + if (error) { + free_bounce_zone(newtag); kfree(newtag, M_DEVBUF); - else + } else { *dmat = newtag; + } return error; } diff --git a/sys/platform/pc64/x86_64/busdma_machdep.c b/sys/platform/pc64/x86_64/busdma_machdep.c index ed3e6aaafa..473030dfc2 100644 --- a/sys/platform/pc64/x86_64/busdma_machdep.c +++ b/sys/platform/pc64/x86_64/busdma_machdep.c @@ -363,10 +363,12 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, } } back: - if (error) + if (error) { + free_bounce_zone(newtag); kfree(newtag, M_DEVBUF); - else + } else { *dmat = newtag; + } return error; }