diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2026-02-06 15:30:26 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2026-02-06 15:30:26 +0000 |
| commit | 06fd19b5349a1ff27ef338619fdade596986fc2f (patch) | |
| tree | e26731d3de7cb08f522abea8b1e6e77d865309ed | |
| parent | 73ab91aaade5f33459fda16d9daf6526ab668c42 (diff) | |
spibus: Don't leak KVA when freeing a mmap region
Effort: CHERI upstreaming
Sponsored by: AFRL, DARPA
Differential Revision: https://reviews.freebsd.org/D54837
| -rw-r--r-- | sys/dev/spibus/spigen.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/spibus/spigen.c b/sys/dev/spibus/spigen.c index 66c93e927281..39b94c6123fc 100644 --- a/sys/dev/spibus/spigen.c +++ b/sys/dev/spibus/spigen.c @@ -283,8 +283,10 @@ spigen_mmap_cleanup(void *arg) { struct spigen_mmap *mmap = arg; - if (mmap->kvaddr != 0) + if (mmap->kvaddr != 0) { pmap_qremove(mmap->kvaddr, mmap->bufsize / PAGE_SIZE); + kva_free(mmap->kvaddr, mmap->bufsize); + } if (mmap->bufobj != NULL) vm_object_deallocate(mmap->bufobj); free(mmap, M_DEVBUF); |
