Date: Mon, 1 Aug 2016 23:07:32 +0000 (UTC) From: "Conrad E. Meyer" <cem@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303651 - head/sys/net Message-ID: <201608012307.u71N7WkL034160@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: cem Date: Mon Aug 1 23:07:31 2016 New Revision: 303651 URL: https://svnweb.freebsd.org/changeset/base/303651 Log: rtentry: Initialize rt_mtx with MTX_NEW The "rtentry" zone does not use UMA_ZONE_ZINIT, so it is invalid to assume the mutex's memory will be zero. Without MTX_NEW, garbage backing memory may trigger the "re-initializing a mutex" assertion. PR: 200991 Submitted by: Chang-Hsien Tsai <luke.tw AT gmail.com> Modified: head/sys/net/route.h Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Mon Aug 1 22:57:03 2016 (r303650) +++ head/sys/net/route.h Mon Aug 1 23:07:31 2016 (r303651) @@ -360,7 +360,7 @@ struct rt_addrinfo { || (ifp)->if_link_state == LINK_STATE_UP) #define RT_LOCK_INIT(_rt) \ - mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK) + mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW) #define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx) #define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) #define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608012307.u71N7WkL034160>