View | Details | Raw Unified | Return to bug 230498 | Differences between
and this patch

Collapse All | Expand All

(-)sys/net/if.c (+2 lines)
Lines 1032-1037 if_detach_internal(struct ifnet *ifp, int vmove, s Link Here
1032
		if (iter == ifp) {
1032
		if (iter == ifp) {
1033
			TAILQ_REMOVE(&V_ifnet, ifp, if_link);
1033
			TAILQ_REMOVE(&V_ifnet, ifp, if_link);
1034
			found = 1;
1034
			found = 1;
1035
			if (!vmove)
1036
				ifp->if_flags |= IFF_DYING;
1035
			break;
1037
			break;
1036
		}
1038
		}
1037
	IFNET_WUNLOCK();
1039
	IFNET_WUNLOCK();
(-)sys/net/rtsock.c (-1 / +3 lines)
Lines 1555-1561 sysctl_dumpentry(struct radix_node *rn, void *vw) Link Here
1555
	info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt),
1555
	info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt),
1556
	    rt_mask(rt), &ss);
1556
	    rt_mask(rt), &ss);
1557
	info.rti_info[RTAX_GENMASK] = 0;
1557
	info.rti_info[RTAX_GENMASK] = 0;
1558
	if (rt->rt_ifp) {
1558
	if (rt->rt_ifp && !(rt->rt_ifp->if_flags & IFF_DYING)) {
1559
		info.rti_info[RTAX_IFP] = rt->rt_ifp->if_addr->ifa_addr;
1559
		info.rti_info[RTAX_IFP] = rt->rt_ifp->if_addr->ifa_addr;
1560
		info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr;
1560
		info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr;
1561
		if (rt->rt_ifp->if_flags & IFF_POINTOPOINT)
1561
		if (rt->rt_ifp->if_flags & IFF_POINTOPOINT)
Lines 1913-1920 sysctl_rtsock(SYSCTL_HANDLER_ARGS) Link Here
1913
			rnh = rt_tables_get_rnh(fib, i);
1913
			rnh = rt_tables_get_rnh(fib, i);
1914
			if (rnh != NULL) {
1914
			if (rnh != NULL) {
1915
				RIB_RLOCK(rnh); 
1915
				RIB_RLOCK(rnh); 
1916
				IFNET_RLOCK_NOSLEEP();
1916
			    	error = rnh->rnh_walktree(&rnh->head,
1917
			    	error = rnh->rnh_walktree(&rnh->head,
1917
				    sysctl_dumpentry, &w);
1918
				    sysctl_dumpentry, &w);
1919
				IFNET_RUNLOCK_NOSLEEP();
1918
				RIB_RUNLOCK(rnh);
1920
				RIB_RUNLOCK(rnh);
1919
			} else if (af != 0)
1921
			} else if (af != 0)
1920
				error = EAFNOSUPPORT;
1922
				error = EAFNOSUPPORT;

Return to bug 230498