On Jun 19, 2008, at 10:08 AM, Matt Thomas wrote:
Upon further thought, I think the socket loan code should use pmap_enter/pmap_remove instead pmap_kenter_pa/pmap_kremove.
Probably a fine thing to do. What other uses of kenter are lurking that require being able to do the work in interrupt context?
However, the current code has a risk that the double pmap_kenter_pa sets the KENTER flag on the page, and pmap_kremove clears it, as there's noreference counting.And that would be bad if another pmap_kenter_pa happened to be done with VM_PROT_WRITE.Commenting out the KASSERT should make it work, but you might also have toremove the KASSERT about KENTER as well in pmap_kremove.
-- thorpej