summaryrefslogtreecommitdiffstats
path: root/sys/net/route.h
diff options
context:
space:
mode:
authormux <mux@FreeBSD.org>2007-12-27 10:00:57 +0000
committermux <mux@FreeBSD.org>2007-12-27 10:00:57 +0000
commit58da8ec52155f6928ab5a5a368cac15c7e4fa2fa (patch)
treeb678287fce1851087cab347782f8b195d44ad380 /sys/net/route.h
parent811e8e3c3f6e7f56cbde519c14503f8bfa55a2cc (diff)
downloadFreeBSD-src-58da8ec52155f6928ab5a5a368cac15c7e4fa2fa.zip
FreeBSD-src-58da8ec52155f6928ab5a5a368cac15c7e4fa2fa.tar.gz
Add a workaround for a deadlock between the rt_setgate() and rt_check()
functions. It is easily triggered by running routed, and, I expect, by running any other daemon that uses routing sockets. Reviewed by: net@ MFC after: 1 week
Diffstat (limited to 'sys/net/route.h')
-rw-r--r--sys/net/route.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/route.h b/sys/net/route.h
index 8c87f6b..01b2957 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -289,6 +289,7 @@ struct rt_addrinfo {
#define RT_LOCK_INIT(_rt) \
mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK)
#define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx)
+#define RT_TRYLOCK(_rt) mtx_trylock(&(_rt)->rt_mtx)
#define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx)
#define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx)
#define RT_LOCK_ASSERT(_rt) mtx_assert(&(_rt)->rt_mtx, MA_OWNED)
OpenPOWER on IntegriCloud