diff options
author | kmacy <kmacy@FreeBSD.org> | 2008-09-18 23:56:42 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2008-09-18 23:56:42 +0000 |
commit | 23049c5e89b450a2cb908f9ca00aa1ac8c98fccd (patch) | |
tree | 3979fbe364c39e4c00e7717a2ef79bff8e124d65 /sys/dev/cxgb/ulp | |
parent | 3109451488e2081431c50ba50f152f4e0be10187 (diff) | |
download | FreeBSD-src-23049c5e89b450a2cb908f9ca00aa1ac8c98fccd.zip FreeBSD-src-23049c5e89b450a2cb908f9ca00aa1ac8c98fccd.tar.gz |
Fix two panics:
1. panic: rtalloc1_fib: bad fibnum
2. panic: Lock tcpinp not exclusively locked
@ /usr/src/sys/netinet/in_pcb.c:1284
Submitted by: Chelsio Inc.
MFC after: 3 days
Diffstat (limited to 'sys/dev/cxgb/ulp')
-rw-r--r-- | sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c index b12c367..ff7595b 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c @@ -1733,10 +1733,9 @@ t3_tcp_ctloutput(struct socket *so, struct sockopt *sopt) return (err); inp = so_sotoinpcb(so); - tp = inp_inpcbtotcpcb(inp); - inp_wlock(inp); - + tp = inp_inpcbtotcpcb(inp); + oldval = tp->t_flags; if (optval) tp->t_flags |= TF_NODELAY; @@ -3251,6 +3250,7 @@ syncache_add_accept_req(struct cpl_pass_accept_req *req, struct socket *lso, str /* * Fill out information for entering us into the syncache */ + bzero(&inc, sizeof(inc)); inc.inc_fport = th.th_sport = req->peer_port; inc.inc_lport = th.th_dport = req->local_port; th.th_seq = req->rcv_isn; @@ -3595,6 +3595,7 @@ syncache_expand_establish_req(struct cpl_pass_establish *req, struct socket **so /* * Fill out information for entering us into the syncache */ + bzero(&inc, sizeof(inc)); inc.inc_fport = th.th_sport = req->peer_port; inc.inc_lport = th.th_dport = req->local_port; th.th_seq = req->rcv_isn; |