Date: Tue, 7 Jul 2009 10:54:50 -0500 (CDT) From: Mark Tinguely <tinguely@casselton.net> To: mih@semihalf.com, stas@FreeBSD.org, tinguely@casselton.net Cc: freebsd-arm@FreeBSD.org Subject: Re: pmap problem in FreeBSD current Message-ID: <200907071554.n67Fsouv016804@casselton.net> In-Reply-To: <200907071437.n67EbVnX012439@casselton.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Apologies for the noise. I am not familiar with the sf_buf_alloc/sf_buf_free code and sent a bad code sequence. If we remove the mapping, it has to come off the active list also: /* * 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); + sf->m = NULL; + LIST_REMOVE(sf, list_entry); if (sf_buf_alloc_want > 0) wakeup_one(&sf_buf_freelist); } mtx_unlock(&sf_buf_lock); #endif --Mark Tinguely.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907071554.n67Fsouv016804>