if (pm->pm_exec[sn] == 0) {
if (pm->pm_exec[sn] == 0)
pmap_kremove_pg(vaddr_t va){	struct pte_desc *pted;	pmap_t pm;	int s;	pm = pmap_kernel();	pted = pmap_vp_lookup(pm, va);	if (pted == NULL)		return;	if (!PTED_VALID(pted))		return; /* not mapped */	s = splimp();	pm->pm_stats.resident_count--;	/*	 * HASH needs to be locked here as well as pmap, and pv list.	 * so that we know the mapping information is either valid,	 * or that the mapping is not present in the hash table.	 */	pmap_hash_remove(pted);	if (pted->pted_va & PTED_VA_EXEC_M) {		u_int sn = VP_SR(va);		pted->pted_va &= ~PTED_VA_EXEC_M;		pm->pm_exec[sn]--;		if (pm->pm_exec[sn] == 0) {			pm->pm_sr[sn] |= SR_NOEXEC;			/* set the current sr if not kernel used segemnts			 * and this pmap is current active pmap			 */			if (sn != USER_SR && sn != KERNEL_SR && curpm == pm)				ppc_mtsrin(pm->pm_sr[sn],				     sn << ADDR_SR_SHIFT);		}	}	if (PTED_MANAGED(pted))		pmap_remove_pv(pted);	/* invalidate pted; */	pted->pted_pte.pte_hi &= ~PTE_VALID;	splx(s);}