aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/busdma_machdep.c4
-rw-r--r--sys/i386/i386/busdma_machdep.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/amd64/amd64/busdma_machdep.c b/sys/amd64/amd64/busdma_machdep.c
index 59495bfc198a..462abe97b387 100644
--- a/sys/amd64/amd64/busdma_machdep.c
+++ b/sys/amd64/amd64/busdma_machdep.c
@@ -220,6 +220,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
if (boundary != 0 && boundary < maxsegsz)
maxsegsz = boundary;
+ if (maxsegsz == 0) {
+ return (EINVAL);
+ }
+
/* Return a NULL tag on failure */
*dmat = NULL;
diff --git a/sys/i386/i386/busdma_machdep.c b/sys/i386/i386/busdma_machdep.c
index 5d7c9cdcf408..90f8848d13fd 100644
--- a/sys/i386/i386/busdma_machdep.c
+++ b/sys/i386/i386/busdma_machdep.c
@@ -225,6 +225,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
if (boundary != 0 && boundary < maxsegsz)
maxsegsz = boundary;
+ if (maxsegsz == 0) {
+ return (EINVAL);
+ }
+
/* Return a NULL tag on failure */
*dmat = NULL;