summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorraj <raj@FreeBSD.org>2008-03-12 15:31:37 +0000
committerraj <raj@FreeBSD.org>2008-03-12 15:31:37 +0000
commit5df2af982ffcfe5fff780895393862df1a141eb1 (patch)
tree4451957a0fb81d32ccbdc4526edad5bf39d35218 /sys/arm
parent2095d4da4d60956a09b6c67940392e12c572e6d6 (diff)
downloadFreeBSD-src-5df2af982ffcfe5fff780895393862df1a141eb1.zip
FreeBSD-src-5df2af982ffcfe5fff780895393862df1a141eb1.tar.gz
Improve ARM bus_dmamap_load_buffer() error handling.
Reviewed by: imp Approved by: cognet (mentor) Spotted by: Grzegorz Bernacki gjb AT semihalf DOT com
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/busdma_machdep.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
index 61c1ea2..1c3be12 100644
--- a/sys/arm/arm/busdma_machdep.c
+++ b/sys/arm/arm/busdma_machdep.c
@@ -755,7 +755,9 @@ bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t *segs,
* XXX in user address space.
*/
if (__predict_true(pmap == pmap_kernel())) {
- (void) pmap_get_pde_pte(pmap, vaddr, &pde, &ptep);
+ if (pmap_get_pde_pte(pmap, vaddr, &pde, &ptep) == FALSE)
+ return (EFAULT);
+
if (__predict_false(pmap_pde_section(pde))) {
if (*pde & L1_S_SUPERSEC)
curaddr = (*pde & L1_SUP_FRAME) |
@@ -903,7 +905,7 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d",
__func__, dmat, dmat->flags, nsegs + 1, error);
- return (0);
+ return (error);
}
/*
OpenPOWER on IntegriCloud