aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2010-06-01 14:18:44 +0000
committerRobert Watson <rwatson@FreeBSD.org>2010-06-01 14:18:44 +0000
commit4fc9f6b81e045d8d6ea0c41f2ec1a8da69278345 (patch)
tree658ee2b63e36d04da4f49f87c1f7a7e698913ea9 /sys
parent93ed892eb994000a56b8cb4366d7854add2bcc03 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/in_pcb.h1
-rw-r--r--sys/netinet/tcp_input.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h
index 811cf9fe9f0e..6e3a24bef0db 100644
--- a/sys/netinet/in_pcb.h
+++ b/sys/netinet/in_pcb.h
@@ -376,6 +376,7 @@ void inp_4tuple_get(struct inpcb *inp, uint32_t *laddr, uint16_t *lp,
#define INP_INFO_WLOCK(ipi) rw_wlock(&(ipi)->ipi_lock)
#define INP_INFO_TRY_RLOCK(ipi) rw_try_rlock(&(ipi)->ipi_lock)
#define INP_INFO_TRY_WLOCK(ipi) rw_try_wlock(&(ipi)->ipi_lock)
+#define INP_INFO_TRY_UPGRADE(ipi) rw_try_upgrade(&(ipi)->ipi_lock)
#define INP_INFO_RUNLOCK(ipi) rw_runlock(&(ipi)->ipi_lock)
#define INP_INFO_WUNLOCK(ipi) rw_wunlock(&(ipi)->ipi_lock)
#define INP_INFO_LOCK_ASSERT(ipi) rw_assert(&(ipi)->ipi_lock, RA_LOCKED)
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 2f82b828da9f..cbba9cd4ed0d 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -641,7 +641,7 @@ relocked:
("%s: INP_TIMEWAIT ti_locked %d", __func__, ti_locked));
if (ti_locked == TI_RLOCKED) {
- if (rw_try_upgrade(&V_tcbinfo.ipi_lock) == 0) {
+ if (INP_INFO_TRY_UPGRADE(&V_tcbinfo) == 0) {
in_pcbref(inp);
INP_WUNLOCK(inp);
INP_INFO_RUNLOCK(&V_tcbinfo);
@@ -692,7 +692,7 @@ relocked:
("%s: upgrade check ti_locked %d", __func__, ti_locked));
if (ti_locked == TI_RLOCKED) {
- if (rw_try_upgrade(&V_tcbinfo.ipi_lock) == 0) {
+ if (INP_INFO_TRY_UPGRADE(&V_tcbinfo) == 0) {
in_pcbref(inp);
INP_WUNLOCK(inp);
INP_INFO_RUNLOCK(&V_tcbinfo);