diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/x86/isa/isa_dma.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/x86/isa/isa_dma.c b/sys/x86/isa/isa_dma.c index cbc9959..90ee14d 100644 --- a/sys/x86/isa/isa_dma.c +++ b/sys/x86/isa/isa_dma.c @@ -237,8 +237,6 @@ isa_dmastart(int flags, caddr_t addr, u_int nbytes, int chan) caddr_t newaddr; int dma_range_checked; - /* translate to physical */ - phys = pmap_extract(kernel_pmap, (vm_offset_t)addr); dma_range_checked = isa_dmarangecheck(addr, nbytes, chan); #ifdef DIAGNOSTIC @@ -281,6 +279,9 @@ isa_dmastart(int flags, caddr_t addr, u_int nbytes, int chan) addr = newaddr; } + /* translate to physical */ + phys = pmap_extract(kernel_pmap, (vm_offset_t)addr); + if (flags & ISADMA_RAW) { dma_auto_mode |= (1 << chan); } else { |