Date: Wed, 22 Jun 2016 11:45:30 +0000 (UTC) From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302083 - head/sys/net Message-ID: <201606221145.u5MBjUg1078655@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bz Date: Wed Jun 22 11:45:30 2016 New Revision: 302083 URL: https://svnweb.freebsd.org/changeset/base/302083 Log: After r302054 unloading an network interface driver on a kernel without VIMAGE support would dereference a NULL point unconditionally leading to a panic. Wrap the entire VIMAGE related code with #ifdefs rather than just the decision making part to save an extra bit of resources. Reported by: np Sponsored by: The FreeBSD Foundation MFC After: 13 days Approved by: re (marius) Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Wed Jun 22 11:38:26 2016 (r302082) +++ head/sys/net/if.c Wed Jun 22 11:45:30 2016 (r302083) @@ -931,10 +931,13 @@ if_detach_internal(struct ifnet *ifp, in int i; struct domain *dp; struct ifnet *iter; - int found = 0, shutdown; + int found = 0; +#ifdef VIMAGE + int shutdown; shutdown = (ifp->if_vnet->vnet_state > SI_SUB_VNET && ifp->if_vnet->vnet_state < SI_SUB_VNET_DONE) ? 1 : 0; +#endif IFNET_WLOCK(); TAILQ_FOREACH(iter, &V_ifnet, if_link) if (iter == ifp) { @@ -987,6 +990,7 @@ if_detach_internal(struct ifnet *ifp, in if_down(ifp); +#ifdef VIMAGE /* * On VNET shutdown abort here as the stack teardown will do all * the work top-down for us. @@ -1001,6 +1005,7 @@ if_detach_internal(struct ifnet *ifp, in */ goto finish_vnet_shutdown; } +#endif /* * At this point we are not tearing down a VNET and are either @@ -1066,7 +1071,9 @@ if_detach_internal(struct ifnet *ifp, in rt_flushifroutes(ifp); +#ifdef VIMAGE finish_vnet_shutdown: +#endif /* * We cannot hold the lock over dom_ifdetach calls as they might * sleep, for example trying to drain a callout, thus open up the
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606221145.u5MBjUg1078655>