diff --git a/sys/arm64/arm64/vm_machdep.c b/sys/arm64/arm64/vm_machdep.c index 4950fe8909c0..49c1af8e82b2 100644 --- a/sys/arm64/arm64/vm_machdep.c +++ b/sys/arm64/arm64/vm_machdep.c @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -256,5 +257,6 @@ void swi_vm(void *v) { - /* Nothing to do here - busdma bounce buffers are not implemented. */ + if (busdma_swi_pending != 0) + busdma_swi(); } diff --git a/sys/arm64/include/md_var.h b/sys/arm64/include/md_var.h index d6cecfcd7941..07f816a13f24 100644 --- a/sys/arm64/include/md_var.h +++ b/sys/arm64/include/md_var.h @@ -41,6 +41,7 @@ extern int vm_page_dump_size; struct dumperinfo; +extern int busdma_swi_pending; void busdma_swi(void); void dump_add_page(vm_paddr_t); void dump_drop_page(vm_paddr_t);