pmap problem in FreeBSD current

Mark Tinguely tinguely at casselton.net
Tue Jul 7 14:37:33 UTC 2009


sf_buf_alloc()/sf_buf_free() in vm_machdep.c also leaves dangling kernel
mappings.

/*
 * Detatch mapped page and release resources back to the system.
 */
void
sf_buf_free(struct sf_buf *sf)
{
#ifndef ARM_USE_SMALL_ALLOC
	mtx_lock(&sf_buf_lock);
	sf->ref_count--;
	if (sf->ref_count == 0) {
		TAILQ_INSERT_TAIL(&sf_buf_freelist, sf, free_entry);
		nsfbufsused--;
+		pmap_kremove(sf->kva);
		if (sf_buf_alloc_want > 0)
			wakeup_one(&sf_buf_freelist);
	}
	mtx_unlock(&sf_buf_lock);
#endif

--Mark Tinguely.


More information about the freebsd-arm mailing list