Date: Sun, 24 Aug 2008 23:15:07 GMT From: Julian Elischer <julian@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 148303 for review Message-ID: <200808242315.m7ONF7Lm081212@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=148303 Change 148303 by julian@julian_trafmon1 on 2008/08/24 23:14:23 Move the contents of vimage3 down to vimage3 in preparation for the next set of commits Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/conf/GENERIC_NODEBUG#3 branch .. //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_misc.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/ddb/db_textdump.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/firewire/firewire.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/fs/cd9660/cd9660_rrip.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/conf/GENERIC_NODEBUG#3 branch .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_mib.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_xxx.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ethersubr.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_faith.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gre.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_loop.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_mib.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_stf.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_vlan.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_cb.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_usrreq.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/route.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/rtsock.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.h#1 branch .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/vnetgraph.h#1 branch .. //depot/projects/vimage-commit2/src/sys/netinet/if_ether.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/igmp.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_gif.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_mcast.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_pcb.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_rmx.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip6.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_carp.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fastfwd.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw2.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw_nat.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_icmp.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_input.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_ipsec.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_mroute.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_options.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/raw_ip.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_hostcache.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_output.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_reass.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_sack.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_syncache.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timer.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timewait.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_usrreq.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_usrreq.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/vinet.h#1 branch .. //depot/projects/vimage-commit2/src/sys/netinet6/dest6.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/frag6.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/icmp6.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_gif.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_ifattach.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_pcb.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_proto.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_rmx.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_src.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_forward.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_input.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_ipsec.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_mroute.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_output.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/mld6.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_nbr.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_rtr.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/raw_ip6.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/route6.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/scope6.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/udp6_usrreq.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/vinet6.h#1 branch .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_input.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_mbuf.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_output.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/keysock.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/vipsec.h#1 branch .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ah.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_esp.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipcomp.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipip.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_diskless.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vfsops.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/authunix_prot.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#13 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#7 (text+ko) ==== @@ -1000,6 +1000,7 @@ static int linprocfs_donetdev(PFS_FILL_ARGS) { + INIT_VNET_NET(TD_TO_VNET(curthread)); char ifname[16]; /* XXX LINUX_IFNAMSIZ */ struct ifnet *ifp; ==== //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#10 (text+ko) ==== @@ -2051,6 +2051,7 @@ int linux_ifname(struct ifnet *ifp, char *buffer, size_t buflen) { + INIT_VNET_NET(ifp->if_vnet); struct ifnet *ifscan; int ethno; @@ -2084,6 +2085,7 @@ static struct ifnet * ifname_linux_to_bsd(const char *lxname, char *bsdname) { + INIT_VNET_NET(TD_TO_VNET(curthread)); struct ifnet *ifp; int len, unit; char *ep; @@ -2124,6 +2126,7 @@ static int linux_ifconf(struct thread *td, struct ifconf *uifc) { + INIT_VNET_NET(TD_TO_VNET(td)); #ifdef COMPAT_LINUX32 struct l_ifconf ifc; #else ==== //depot/projects/vimage-commit2/src/sys/compat/linux/linux_misc.c#8 (text+ko) ==== @@ -714,6 +714,7 @@ int linux_newuname(struct thread *td, struct linux_newuname_args *args) { + INIT_VPROCG(TD_TO_VPROCG(td)); struct l_new_utsname utsname; char osname[LINUX_MAX_UTSNAME]; char osrelease[LINUX_MAX_UTSNAME]; ==== //depot/projects/vimage-commit2/src/sys/ddb/db_textdump.c#6 (text+ko) ==== @@ -184,6 +184,7 @@ mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen, uint32_t blksz) { + INIT_VPROCG(TD_TO_VPROCG(&thread0)); bzero(kdh, sizeof(*kdh)); strncpy(kdh->magic, TEXTDUMPMAGIC, sizeof(kdh->magic)); ==== //depot/projects/vimage-commit2/src/sys/dev/firewire/firewire.c#6 (text+ko) ==== @@ -678,6 +678,7 @@ static void fw_reset_crom(struct firewire_comm *fc) { + INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX */ struct crom_src_buf *buf; struct crom_src *src; struct crom_chunk *root; ==== //depot/projects/vimage-commit2/src/sys/fs/cd9660/cd9660_rrip.c#8 (text+ko) ==== @@ -114,6 +114,7 @@ ISO_RRIP_SLINK *p; ISO_RRIP_ANALYZE *ana; { + INIT_VPROCG(TD_TO_VPROCG(curthread)); ISO_RRIP_SLINK_COMPONENT *pcomp; ISO_RRIP_SLINK_COMPONENT *pcompe; int len, wlen, cont; @@ -224,6 +225,7 @@ ISO_RRIP_ALTNAME *p; ISO_RRIP_ANALYZE *ana; { + INIT_VPROCG(TD_TO_VPROCG(curthread)); char *inbuf; int wlen; int cont; ==== //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#9 (text+ko) ==== @@ -475,6 +475,7 @@ void getcredhostname(struct ucred *cred, char *buf, size_t size) { + INIT_VPROCG(cred->cr_vimage->v_procg); if (jailed(cred)) { mtx_lock(&cred->cr_prison->pr_mtx); ==== //depot/projects/vimage-commit2/src/sys/kern/kern_mib.c#7 (text+ko) ==== @@ -219,6 +219,7 @@ static int sysctl_hostname(SYSCTL_HANDLER_ARGS) { + INIT_VPROCG(TD_TO_VPROCG(req->td)); struct prison *pr; char tmphostname[MAXHOSTNAMELEN]; int error; ==== //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#7 (text+ko) ==== @@ -88,6 +88,7 @@ static void uuid_node(uint16_t *node) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; struct sockaddr_dl *sdl; ==== //depot/projects/vimage-commit2/src/sys/kern/kern_xxx.c#8 (text+ko) ==== @@ -246,6 +246,7 @@ struct thread *td; struct getdomainname_args *uap; { + INIT_VPROCG(TD_TO_VPROCG(td)); char tmpdomainname[MAXHOSTNAMELEN]; int domainnamelen; @@ -271,6 +272,7 @@ struct thread *td; struct setdomainname_args *uap; { + INIT_VPROCG(TD_TO_VPROCG(td)); char tmpdomainname[MAXHOSTNAMELEN]; int error, domainnamelen; ==== //depot/projects/vimage-commit2/src/sys/net/if.c#12 (text+ko) ==== @@ -57,6 +57,7 @@ #include <sys/domain.h> #include <sys/jail.h> #include <sys/vimage.h> + #include <machine/stdarg.h> #include <net/if.h> @@ -279,6 +280,7 @@ static int netkqfilter(struct cdev *dev, struct knote *kn) { + INIT_VNET_NET(curvnet); struct knlist *klist; struct ifnet *ifp; int idx; @@ -383,6 +385,7 @@ struct ifnet* if_alloc(u_char type) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; ifp = malloc(sizeof(struct ifnet), M_IFNET, M_WAITOK|M_ZERO); @@ -445,6 +448,7 @@ void if_free_type(struct ifnet *ifp, u_char type) { + INIT_VNET_NET(curvnet); /* ifp->if_vnet can be NULL here ! */ if (ifp != ifnet_byindex(ifp->if_index)) { if_printf(ifp, "%s: value was not if_alloced, skipping\n", @@ -482,6 +486,7 @@ void if_attach(struct ifnet *ifp) { + INIT_VNET_NET(curvnet); unsigned socksize, ifasize; int namelen, masklen; struct sockaddr_dl *sdl; @@ -595,6 +600,7 @@ static void if_attachdomain(void *dummy) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; int s; @@ -705,6 +711,7 @@ void if_detach(struct ifnet *ifp) { + INIT_VNET_NET(ifp->if_vnet); struct ifaddr *ifa; struct radix_node_head *rnh; int s; @@ -820,6 +827,7 @@ int if_addgroup(struct ifnet *ifp, const char *groupname) { + INIT_VNET_NET(ifp->if_vnet); struct ifg_list *ifgl; struct ifg_group *ifg = NULL; struct ifg_member *ifgm; @@ -889,6 +897,7 @@ int if_delgroup(struct ifnet *ifp, const char *groupname) { + INIT_VNET_NET(ifp->if_vnet); struct ifg_list *ifgl; struct ifg_member *ifgm; @@ -978,6 +987,7 @@ static int if_getgroupmembers(struct ifgroupreq *data) { + INIT_VNET_NET(curvnet); struct ifgroupreq *ifgr = data; struct ifg_group *ifg; struct ifg_member *ifgm; @@ -1087,6 +1097,7 @@ struct ifaddr * ifa_ifwithaddr(struct sockaddr *addr) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; @@ -1117,6 +1128,7 @@ struct ifaddr * ifa_ifwithbroadaddr(struct sockaddr *addr) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; @@ -1144,6 +1156,7 @@ struct ifaddr * ifa_ifwithdstaddr(struct sockaddr *addr) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; @@ -1172,6 +1185,7 @@ struct ifaddr * ifa_ifwithnet(struct sockaddr *addr) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; struct ifaddr *ifa_maybe = (struct ifaddr *) 0; @@ -1415,6 +1429,7 @@ struct ifnet *ifp = (struct ifnet *)arg; int link_state = ifp->if_link_state; int link; + CURVNET_SET(ifp->if_vnet); /* Notify that the link state has changed. */ rt_ifmsg(ifp); @@ -1451,6 +1466,7 @@ if (log_link_state_change) log(LOG_NOTICE, "%s: link state changed to %s\n", ifp->if_xname, (link_state == LINK_STATE_UP) ? "UP" : "DOWN" ); + CURVNET_RESTORE(); } /* @@ -1517,12 +1533,15 @@ int s = splimp(); IFNET_RLOCK(); + VNET_ITERLOOP_BEGIN(); + INIT_VNET_NET(curvnet); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { if (ifp->if_timer == 0 || --ifp->if_timer) continue; if (ifp->if_watchdog) (*ifp->if_watchdog)(ifp); } + VNET_ITERLOOP_END(); IFNET_RUNLOCK(); splx(s); timeout(if_slowtimo, (void *)0, hz / IFNET_SLOWHZ); @@ -1535,6 +1554,7 @@ struct ifnet * ifunit(const char *name) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; IFNET_RLOCK(); @@ -2107,6 +2127,7 @@ static int ifconf(u_long cmd, caddr_t data) { + INIT_VNET_NET(curvnet); struct ifconf *ifc = (struct ifconf *)data; #ifdef __amd64__ struct ifconf32 *ifc32 = (struct ifconf32 *)data; @@ -2466,6 +2487,7 @@ int lastref; #ifdef INVARIANTS struct ifnet *oifp; + INIT_VNET_NET(ifp->if_vnet); IFNET_RLOCK(); TAILQ_FOREACH(oifp, &V_ifnet, if_link) ==== //depot/projects/vimage-commit2/src/sys/net/if.h#3 (text+ko) ==== @@ -457,4 +457,8 @@ #include <net/if_var.h> #endif +#ifdef _KERNEL +#include <net/vnet.h> +#endif + #endif /* !_NET_IF_H_ */ ==== //depot/projects/vimage-commit2/src/sys/net/if_ethersubr.c#6 (text+ko) ==== @@ -388,6 +388,7 @@ { int error; #if defined(INET) || defined(INET6) + INIT_VNET_NET(ifp->if_vnet); struct ip_fw *rule = ip_dn_claim_rule(m); if (IPFW_LOADED && V_ether_ipfw != 0) { @@ -419,6 +420,7 @@ ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, struct ip_fw **rule, int shared) { + INIT_VNET_IPFW(dst->if_vnet); struct ether_header *eh; struct ether_header save_eh; struct mbuf *m; @@ -711,6 +713,7 @@ KASSERT(ifp != NULL, ("%s: NULL interface pointer", __func__)); #if defined(INET) || defined(INET6) + INIT_VNET_NET(ifp->if_vnet); /* * Allow dummynet and/or ipfw to claim the frame. * Do not do this for PROMISC frames in case we are re-entered. ==== //depot/projects/vimage-commit2/src/sys/net/if_faith.c#6 (text+ko) ==== @@ -324,6 +324,7 @@ faithprefix(in6) struct in6_addr *in6; { + INIT_VNET_INET6(curvnet); struct rtentry *rt; struct sockaddr_in6 sin6; int ret; ==== //depot/projects/vimage-commit2/src/sys/net/if_gif.c#6 (text+ko) ==== @@ -154,6 +154,7 @@ int unit; caddr_t params; { + INIT_VNET_GIF(curvnet); struct gif_softc *sc; sc = malloc(sizeof(struct gif_softc), M_GIF, M_WAITOK | M_ZERO); @@ -364,6 +365,7 @@ struct sockaddr *dst; struct rtentry *rt; /* added in net2 */ { + INIT_VNET_GIF(ifp->if_vnet); struct gif_softc *sc = ifp->if_softc; struct m_tag *mtag; int error = 0; @@ -854,6 +856,7 @@ struct sockaddr *src; struct sockaddr *dst; { + INIT_VNET_GIF(ifp->if_vnet); struct gif_softc *sc = ifp->if_softc; struct gif_softc *sc2; struct sockaddr *osrc, *odst, *sa; ==== //depot/projects/vimage-commit2/src/sys/net/if_gif.h#2 (text+ko) ==== @@ -110,6 +110,29 @@ void gif_delete_tunnel(struct ifnet *); int gif_encapcheck(const struct mbuf *, int, int, void *); +/* + * Virtualization support + */ + +#define INIT_VNET_GIF(vnet) \ + INIT_FROM_VNET(vnet, VNET_MOD_GIF, struct vnet_gif, vnet_gif) + +#define VNET_GIF(sym) VSYM(vnet_gif, sym) + +struct vnet_gif { + LIST_HEAD(, gif_softc) _gif_softc_list; + int _max_gif_nesting; + int _parallel_tunnels; + int _ip_gif_ttl; + int _ip6_gif_hlim; +}; + +#define V_gif_softc_list VNET_GIF(gif_softc_list) +#define V_max_gif_nesting VNET_GIF(max_gif_nesting) +#define V_parallel_tunnels VNET_GIF(parallel_tunnels) +#define V_ip_gif_ttl VNET_GIF(ip_gif_ttl) +#define V_ip6_gif_hlim VNET_GIF(ip6_gif_hlim) + #endif /* _KERNEL */ #endif /* _NET_IF_GIF_H_ */ ==== //depot/projects/vimage-commit2/src/sys/net/if_gre.c#8 (text+ko) ==== @@ -241,6 +241,9 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct rtentry *rt) { +#ifdef INET6 + INIT_VNET_INET(ifp->if_vnet); +#endif int error = 0; struct gre_softc *sc = ifp->if_softc; struct greip *gh; ==== //depot/projects/vimage-commit2/src/sys/net/if_loop.c#8 (text+ko) ==== @@ -115,6 +115,7 @@ static int lo_clone_create(struct if_clone *ifc, int unit, caddr_t params) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; ifp = if_alloc(IFT_LOOP); @@ -214,6 +215,7 @@ int if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen) { + INIT_VNET_NET(ifp->if_vnet); int isr; M_ASSERTPKTHDR(m); ==== //depot/projects/vimage-commit2/src/sys/net/if_mib.c#7 (text+ko) ==== @@ -71,6 +71,7 @@ static int sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XXX bad syntax! */ { + INIT_VNET_NET(curvnet); int *name = (int *)arg1; int error; u_int namelen = arg2; ==== //depot/projects/vimage-commit2/src/sys/net/if_stf.c#6 (text+ko) ==== @@ -365,6 +365,7 @@ stf_getsrcifa6(ifp) struct ifnet *ifp; { + INIT_VNET_INET(ifp->if_vnet); struct ifaddr *ia; struct in_ifaddr *ia4; struct sockaddr_in6 *sin6; @@ -560,6 +561,7 @@ struct in_addr *in; struct ifnet *inifp; /* incoming interface */ { + INIT_VNET_INET(curvnet); struct in_ifaddr *ia4; /* ==== //depot/projects/vimage-commit2/src/sys/net/if_vlan.c#7 (text+ko) ==== @@ -573,6 +573,7 @@ static struct ifnet * vlan_clone_match_ethertag(struct if_clone *ifc, const char *name, int *tag) { + INIT_VNET_NET(curvnet); const char *cp; struct ifnet *ifp; int t = 0; ==== //depot/projects/vimage-commit2/src/sys/net/raw_cb.c#8 (text+ko) ==== @@ -44,6 +44,7 @@ #include <sys/systm.h> #include <sys/vimage.h> +#include <net/if.h> #include <net/raw_cb.h> /* @@ -75,6 +76,7 @@ int raw_attach(struct socket *so, int proto) { + INIT_VNET_NET(so->so_vnet); struct rawcb *rp = sotorawcb(so); int error; ==== //depot/projects/vimage-commit2/src/sys/net/raw_usrreq.c#8 (text+ko) ==== @@ -46,6 +46,7 @@ #include <sys/systm.h> #include <sys/vimage.h> +#include <net/if.h> #include <net/raw_cb.h> MTX_SYSINIT(rawcb_mtx, &rawcb_mtx, "rawcb", MTX_DEF); @@ -56,6 +57,7 @@ void raw_init(void) { + INIT_VNET_NET(curvnet); LIST_INIT(&V_rawcb_list); } @@ -70,6 +72,7 @@ void raw_input(struct mbuf *m0, struct sockproto *proto, struct sockaddr *src) { + INIT_VNET_NET(curvnet); struct rawcb *rp; struct mbuf *m = m0; struct socket *last; ==== //depot/projects/vimage-commit2/src/sys/net/route.c#7 (text+ko) ==== @@ -278,6 +278,7 @@ u_int fibnum) { struct radix_node_head *rnh; + INIT_VNET_NET(curvnet); struct rtentry *rt; struct radix_node *rn; struct rtentry *newrt; @@ -382,6 +383,7 @@ void rtfree(struct rtentry *rt) { + INIT_VNET_NET(curvnet); struct radix_node_head *rnh; KASSERT(rt != NULL,("%s: NULL rt", __func__)); @@ -482,6 +484,7 @@ struct sockaddr *src, u_int fibnum) { + INIT_VNET_NET(curvnet); struct rtentry *rt, *rt0 = NULL; int error = 0; short *stat = NULL; @@ -788,6 +791,7 @@ int rtexpunge(struct rtentry *rt) { + INIT_VNET_NET(curvnet); struct radix_node *rn; struct radix_node_head *rnh; struct ifaddr *ifa; @@ -879,6 +883,7 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt, u_int fibnum) { + INIT_VNET_NET(curvnet); int error = 0; register struct rtentry *rt; register struct radix_node *rn; @@ -1309,6 +1314,7 @@ int rt_setgate(struct rtentry *rt, struct sockaddr *dst, struct sockaddr *gate) { + INIT_VNET_NET(curvnet); /* XXX dst may be overwritten, can we move this to below */ struct radix_node_head *rnh = V_rt_tables[rt->rt_fibnum][dst->sa_family]; int dlen = SA_SIZE(dst), glen = SA_SIZE(gate); @@ -1450,6 +1456,7 @@ static inline int rtinit1(struct ifaddr *ifa, int cmd, int flags, int fibnum) { + INIT_VNET_NET(curvnet); struct sockaddr *dst; struct sockaddr *netmask; struct rtentry *rt = NULL; ==== //depot/projects/vimage-commit2/src/sys/net/rtsock.c#8 (text+ko) ==== @@ -314,6 +314,7 @@ route_output(struct mbuf *m, struct socket *so) { #define sa_equal(a1, a2) (bcmp((a1), (a2), (a1)->sa_len) == 0) + INIT_VNET_NET(so->so_vnet); struct rt_msghdr *rtm = NULL; struct rtentry *rt = NULL; struct radix_node_head *rnh; @@ -1075,6 +1076,7 @@ static void rt_dispatch(struct mbuf *m, const struct sockaddr *sa) { + INIT_VNET_NET(curvnet); struct m_tag *tag; /* @@ -1138,6 +1140,7 @@ static int sysctl_iflist(int af, struct walkarg *w) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifaddr *ifa; struct rt_addrinfo info; @@ -1198,6 +1201,7 @@ int sysctl_ifmalist(int af, struct walkarg *w) { + INIT_VNET_NET(curvnet); struct ifnet *ifp; struct ifmultiaddr *ifma; struct rt_addrinfo info; @@ -1247,6 +1251,7 @@ static int sysctl_rtsock(SYSCTL_HANDLER_ARGS) { + INIT_VNET_NET(curvnet); int *name = (int *)arg1; u_int namelen = arg2; struct radix_node_head *rnh; ==== //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.c#6 (text+ko) ==== @@ -35,7 +35,6 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> - #include <sys/socket.h> #include <net/if.h> ==== //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#3 (text+ko) ==== @@ -1184,3 +1184,69 @@ #define ng_copy_meta(meta) NULL #endif /* _NETGRAPH_NETGRAPH_H_ */ +/*- + * Copyright (c) 2006-2008 University of Zagreb + * Copyright (c) 2006-2008 FreeBSD Foundation + * + * This software was developed by the University of Zagreb and the + * FreeBSD Foundation under sponsorship by the Stichting NLnet and the + * FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _NETGRAPH_VNETGRPAH_H_ +#define _NETGRAPH_VNETGRAPH_H_ + +#include <netgraph/ng_message.h> + +#define INIT_VNET_NETGRAPH(vnet) \ + INIT_FROM_VNET(vnet, VNET_MOD_NETGRAPH, \ + struct vnet_netgraph, vnet_netgraph) + +#define VNET_NETGRAPH(sym) VSYM(vnet_netgraph, sym) + +#define NG_ID_HASH_SIZE 32 /* most systems wont need even this many */ +#define NG_NAME_HASH_SIZE 128 /* most systems wont need even this many */ + +#ifdef VIMAGE +struct vnet_netgraph { + LIST_HEAD(, ng_node) _ng_ID_hash[NG_ID_HASH_SIZE]; + LIST_HEAD(, ng_node) _ng_name_hash[NG_ID_HASH_SIZE]; + LIST_HEAD(, ng_node) _ng_nodelist; + ng_ID_t _nextID; + struct unrhdr *_ng_iface_unit; + struct unrhdr *_ng_eiface_unit; + struct unrhdr *_ng_wormhole_unit; +}; +#endif + +/* Symbol translation macros */ +#define V_ng_ID_hash VNET_NETGRAPH(ng_ID_hash) +#define V_ng_name_hash VNET_NETGRAPH(ng_name_hash) +#define V_ng_nodelist VNET_NETGRAPH(ng_nodelist) +#define V_nextID VNET_NETGRAPH(nextID) +#define V_ng_iface_unit VNET_NETGRAPH(ng_iface_unit) +#define V_ng_eiface_unit VNET_NETGRAPH(ng_eiface_unit) +#define V_ng_wormhole_unit VNET_NETGRAPH(ng_wormhole_unit) + +#endif /* !_NETGRAPH_VNETGRAPH_H_ */ ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#9 (text+ko) ==== @@ -167,7 +167,6 @@ /* Hash related definitions */ /* XXX Don't need to initialise them because it's a LIST */ -#define NG_ID_HASH_SIZE 128 /* most systems wont need even this many */ static LIST_HEAD(, ng_node) ng_ID_hash[NG_ID_HASH_SIZE]; static struct mtx ng_idhash_mtx; /* Method to find a node.. used twice so do it here */ @@ -612,6 +611,7 @@ int ng_make_node_common(struct ng_type *type, node_p *nodepp) { + INIT_VNET_NETGRAPH(curvnet); node_p node; /* Require the node type to have been already installed */ @@ -793,6 +793,7 @@ static node_p ng_ID2noderef(ng_ID_t ID) { + INIT_VNET_NETGRAPH(curvnet); node_p node; mtx_lock(&ng_idhash_mtx); NG_IDHASH_FIND(ID, node); @@ -818,6 +819,7 @@ int ng_name_node(node_p node, const char *name) { + INIT_VNET_NETGRAPH(curvnet); int i, hash; node_p node2; @@ -868,6 +870,7 @@ node_p ng_name2noderef(node_p here, const char *name) { + INIT_VNET_NETGRAPH(curvnet); node_p node; ng_ID_t temp; int hash; @@ -2416,6 +2419,7 @@ static int ng_generic_msg(node_p here, item_p item, hook_p lasthook) { + INIT_VNET_NETGRAPH(curvnet); int error = 0; struct ng_mesg *msg; struct ng_mesg *resp = NULL; ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#7 (text+ko) ==== @@ -333,6 +333,7 @@ static int ng_eiface_constructor(node_p node) { + INIT_VNET_NETGRAPH(curvnet); struct ifnet *ifp; priv_p priv; u_char eaddr[6] = {0,0,0,0,0,0}; @@ -545,11 +546,14 @@ static int ng_eiface_rmnode(node_p node) { + INIT_VNET_NETGRAPH(curvnet); const priv_p priv = NG_NODE_PRIVATE(node); struct ifnet *const ifp = priv->ifp; + CURVNET_SET_QUIET(ifp->if_vnet); ether_ifdetach(ifp); if_free(ifp); + CURVNET_RESTORE(); free_unr(V_ng_eiface_unit, priv->unit); FREE(priv, M_NETGRAPH); NG_NODE_SET_PRIVATE(node, NULL); ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#7 (text+ko) ==== @@ -506,6 +506,7 @@ static int ng_iface_constructor(node_p node) { + INIT_VNET_NETGRAPH(curvnet); struct ifnet *ifp; priv_p priv; @@ -766,11 +767,14 @@ static int ng_iface_shutdown(node_p node) { + INIT_VNET_NETGRAPH(curvnet); const priv_p priv = NG_NODE_PRIVATE(node); + CURVNET_SET_QUIET(priv->ifp->if_vnet); bpfdetach(priv->ifp); if_detach(priv->ifp); if_free(priv->ifp); + CURVNET_RESTORE(); priv->ifp = NULL; free_unr(V_ng_iface_unit, priv->unit); FREE(priv, M_NETGRAPH_IFACE); ==== //depot/projects/vimage-commit2/src/sys/netinet/if_ether.c#9 (text+ko) ==== @@ -149,6 +149,8 @@ static void arp_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info) { + INIT_VNET_NET(curvnet); + INIT_VNET_INET(curvnet); struct sockaddr *gate; struct llinfo_arp *la; static struct sockaddr_dl null_sdl = {sizeof(null_sdl), AF_LINK}; @@ -360,6 +362,7 @@ arpresolve(struct ifnet *ifp, struct rtentry *rt0, struct mbuf *m, struct sockaddr *dst, u_char *desten) { + INIT_VNET_INET(ifp->if_vnet); struct llinfo_arp *la = NULL; struct rtentry *rt = NULL; struct sockaddr_dl *sdl; @@ -603,7 +606,8 @@ sin.sin_len = sizeof(struct sockaddr_in); sin.sin_family = AF_INET; sin.sin_addr.s_addr = 0; - + INIT_VNET_INET(ifp->if_vnet); + if (ifp->if_bridge) bridged = 1; if (ifp->if_type == IFT_BRIDGE) ==== //depot/projects/vimage-commit2/src/sys/netinet/igmp.c#6 (text+ko) ==== @@ -145,6 +145,7 @@ static struct router_info * find_rti(struct ifnet *ifp) { + INIT_VNET_INET(ifp->if_vnet); struct router_info *rti; mtx_assert(&igmp_mtx, MA_OWNED); @@ -183,6 +184,7 @@ struct in_multistep step; struct router_info *rti; int timer; /** timer value in the igmp query header **/ + INIT_VNET_INET(ifp->if_vnet); ++V_igmpstat.igps_rcv_total; @@ -445,6 +447,7 @@ IGMP_PRINTF("[igmp.c,_slowtimo] -- > entering \n"); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808242315.m7ONF7Lm081212>