PERFORCE change 130119 for review

Kip Macy kmacy at FreeBSD.org
Mon Dec 3 14:21:54 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=130119

Change 130119 by kmacy at kmacy_home:ethng on 2007/12/03 22:21:49

	build fixes for previous IFC

Affected files ...

.. //depot/projects/ethng/src/sys/amd64/amd64/vm_machdep.c#4 edit
.. //depot/projects/ethng/src/sys/netinet/if_ether.c#8 edit
.. //depot/projects/ethng/src/sys/vm/vm_contig.c#5 edit
.. //depot/projects/ethng/src/sys/vm/vm_extern.h#4 edit

Differences ...

==== //depot/projects/ethng/src/sys/amd64/amd64/vm_machdep.c#4 (text+ko) ====

@@ -573,7 +573,7 @@
 }
 
 void *
-contigmalloc2(vm_page_t m, vm_pindex_t npages, int flags)
+contigmapping(vm_page_t m, vm_pindex_t npages, int flags)
 {
         return (void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m));
 }

==== //depot/projects/ethng/src/sys/netinet/if_ether.c#8 (text+ko) ====

@@ -224,8 +224,8 @@
 		RT_ADDREF(rt);
 		la->la_rt = rt;
 		rt->rt_flags |= RTF_LLINFO;
-		callout_init_rwlock(&la->la_timer, &rt->rt_lock,
-		    CALLOUT_RETURNUNLOCKED_RW);
+		callout_init_rw(&la->la_timer, &rt->rt_lock,
+		    CALLOUT_RETURNUNLOCKED);
 
 #ifdef INET
 		/*
@@ -362,15 +362,17 @@
 	struct sockaddr_dl *sdl;
 	int error;
 
-	if (m->m_flags & M_BCAST) {	/* broadcast */
-		(void)memcpy(desten, ifp->if_broadcastaddr, ifp->if_addrlen);
-		return (0);
+	if (m) {
+		if (m->m_flags & M_BCAST) {	/* broadcast */
+			(void)memcpy(desten, ifp->if_broadcastaddr, ifp->if_addrlen);
+			return (0);
+		}
+		if (m->m_flags & M_MCAST && ifp->if_type != IFT_ARCNET) {/* multicast */
+			ETHER_MAP_IP_MULTICAST(&SIN(dst)->sin_addr, desten);
+			return (0);
+		}
 	}
-	if (m->m_flags & M_MCAST && ifp->if_type != IFT_ARCNET) {/* multicast */
-		ETHER_MAP_IP_MULTICAST(&SIN(dst)->sin_addr, desten);
-		return (0);
-	}
-
+	
 	if (rt0 != NULL) {
 		error = rt_check(&rt, &rt0, dst);
 		if (error) {
@@ -413,7 +415,7 @@
 	    sdl->sdl_family == AF_LINK && sdl->sdl_alen != 0) {
 
 		bcopy(LLADDR(sdl), desten, sdl->sdl_alen);
-
+		
 		/*
 		 * If entry has an expiry time and it is approaching,
 		 * send an ARP request.
@@ -449,10 +451,12 @@
 	 * response yet.  Replace the held mbuf with this
 	 * latest one.
 	 */
-	if (la->la_hold)
-		m_freem(la->la_hold);
-	la->la_hold = m;
-
+	if (m) {
+		if (la->la_hold)
+			m_freem(la->la_hold);
+		la->la_hold = m;
+	}
+	
 	KASSERT(rt->rt_expire > 0, ("sending ARP request for static entry"));
 
 	/*
@@ -730,6 +734,7 @@
 	}
 	(void)memcpy(LLADDR(sdl), ar_sha(ah),
 	    sdl->sdl_alen = ah->ar_hln);
+
 	/*
 	 * If we receive an arp from a token-ring station over
 	 * a token-ring nic then try to save the source
@@ -805,12 +810,12 @@
 			 * over who claims what Ether address.
 			 */
 			if (rt->rt_ifp == ifp) {
-				rtfree(rt);
+				RTFREE_LOCKED(rt);
 				goto drop;
 			}
 			(void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln);
 			(void)memcpy(ar_sha(ah), enaddr, ah->ar_hln);
-			rtfree(rt);
+			RTFREE_LOCKED(rt);
 
 			/*
 			 * Also check that the node which sent the ARP packet
@@ -828,10 +833,10 @@
 				    " from %s via %s, expecting %s\n",
 				    inet_ntoa(isaddr), ifp->if_xname,
 				    rt->rt_ifp->if_xname);
-				rtfree(rt);
+				RTFREE_LOCKED(rt);
 				goto drop;
 			}
-			rtfree(rt);
+			RTFREE_LOCKED(rt);
 
 #ifdef DEBUG_PROXY
 			printf("arp: proxying for %s\n",
@@ -936,12 +941,12 @@
 	}
 }
 
-void
-arp_ifinit(struct ifnet *ifp, struct ifaddr *ifa)
+static __inline void
+arp_ifinit_internal(struct ifnet *ifp, struct ifaddr *ifa, u_char *enaddr)
 {
 	if (ntohl(IA_SIN(ifa)->sin_addr.s_addr) != INADDR_ANY)
 		arprequest(ifp, &IA_SIN(ifa)->sin_addr,
-				&IA_SIN(ifa)->sin_addr, IF_LLADDR(ifp));
+				&IA_SIN(ifa)->sin_addr, enaddr);
 	ifa->ifa_rtrequest = arp_rtrequest;
 	ifa->ifa_flags |= RTF_CLONING;
 }
@@ -949,11 +954,13 @@
 void
 arp_ifinit2(struct ifnet *ifp, struct ifaddr *ifa, u_char *enaddr)
 {
-	if (ntohl(IA_SIN(ifa)->sin_addr.s_addr) != INADDR_ANY)
-		arprequest(ifp, &IA_SIN(ifa)->sin_addr,
-				&IA_SIN(ifa)->sin_addr, enaddr);
-	ifa->ifa_rtrequest = arp_rtrequest;
-	ifa->ifa_flags |= RTF_CLONING;
+	arp_ifinit_internal(ifp, ifa, enaddr);
+}
+
+void
+arp_ifinit(struct ifnet *ifp, struct ifaddr *ifa)
+{
+	arp_ifinit_internal(ifp, ifa, IF_LLADDR(ifp));
 }
 
 static void

==== //depot/projects/ethng/src/sys/vm/vm_contig.c#5 (text+ko) ====


==== //depot/projects/ethng/src/sys/vm/vm_extern.h#4 (text+ko) ====

@@ -97,6 +97,11 @@
 void vm_thread_swapin(struct thread *td);
 void vm_thread_swapout(struct thread *td);
 
-void *contigmalloc2(vm_page_t m, vm_pindex_t npages, int flags);
+void *contigmapping(vm_page_t m, vm_pindex_t npages, int flags);
+
+#define VM_HOLD_WRITEABLE	0x1
+int  vm_fault_hold_user_pages(vm_offset_t addr, int len, vm_page_t *mp, int *count, int flags);
+void vm_fault_unhold_pages(vm_page_t *m, int count);
+
 #endif				/* _KERNEL */
 #endif				/* !_VM_EXTERN_H_ */


More information about the p4-projects mailing list