diff --git a/bsd/sys/net/if.c b/bsd/sys/net/if.c
index df09ff96524354a29b935a4daa2626c40cae27c5..7cb2d3313d66bb09de96935a9df50b1ae410cb45 100644
--- a/bsd/sys/net/if.c
+++ b/bsd/sys/net/if.c
@@ -677,13 +677,9 @@ if_purgeaddrs(struct ifnet *ifp)
 			ifr.ifra_addr = *ifa->ifa_addr;
 			if (ifa->ifa_dstaddr)
 				ifr.ifra_broadaddr = *ifa->ifa_dstaddr;
-#if 0
 			if (in_control(NULL, SIOCDIFADDR, (caddr_t)&ifr, ifp,
 			    NULL) == 0)
 				continue;
-#else
-			/* FIXME: OSv: disable forward ioctl to ip stack */
-#endif
 		}
 #endif /* INET */
 #ifdef INET6
@@ -765,8 +761,7 @@ if_detach_internal(struct ifnet *ifp, int vmove)
 	if_purgeaddrs(ifp);
 
 #ifdef INET
-	/* FIXME: OSv: uncomment... */
-	// in_ifdetach(ifp);
+	in_ifdetach(ifp);
 #endif
 
 #ifdef INET6
@@ -1646,7 +1641,6 @@ if_link_state_change(struct ifnet *ifp, int link_state)
 
 	ifp->if_link_state = link_state;
 
-	/* FIXME: Call async... */
 	do_link_state_change(ifp, 0);
 }
 
diff --git a/bsd/sys/net/if_ethersubr.c b/bsd/sys/net/if_ethersubr.c
index 6a08f0bd2d32c7326d16baf25b4eae2dd33e8e30..8f87b73f312314e76b0690cdac1f1d3943b80a23 100644
--- a/bsd/sys/net/if_ethersubr.c
+++ b/bsd/sys/net/if_ethersubr.c
@@ -665,7 +665,6 @@ ether_input_internal(struct ifnet *ifp, struct mbuf *m)
 		}
 	}
 #endif
-
 	{
 		/*
 		 * If the frame received was not for our MAC address, set the
@@ -803,13 +802,14 @@ ether_demux(struct ifnet *ifp, struct mbuf *m)
 	 */
 	switch (ether_type) {
 #ifdef INET
-#if 0
 	case ETHERTYPE_IP:
-		if ((m = ip_fastforward(m)) == NULL)
+#if 0
+	    /* FIXME: OSv - port ip fast forward to get perf gain */
+	    if ((m = ip_fastforward(m)) == NULL)
 			return;
-		isr = NETISR_IP;
-		break;
 #endif
+	    isr = NETISR_IP;
+		break;
 
 	case ETHERTYPE_ARP:
 		if (ifp->if_flags & IFF_NOARP) {