diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2010-06-01 14:18:44 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2010-06-01 14:18:44 +0000 |
| commit | 4fc9f6b81e045d8d6ea0c41f2ec1a8da69278345 (patch) | |
| tree | 658ee2b63e36d04da4f49f87c1f7a7e698913ea9 /sys | |
| parent | 93ed892eb994000a56b8cb4366d7854add2bcc03 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netinet/in_pcb.h | 1 | ||||
| -rw-r--r-- | sys/netinet/tcp_input.c | 4 |
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); |
