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