summaryrefslogtreecommitdiffstats
path: root/sys/dev/cxgb
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2008-09-18 23:56:42 +0000
committerkmacy <kmacy@FreeBSD.org>2008-09-18 23:56:42 +0000
commit23049c5e89b450a2cb908f9ca00aa1ac8c98fccd (patch)
tree3979fbe364c39e4c00e7717a2ef79bff8e124d65 /sys/dev/cxgb
parent3109451488e2081431c50ba50f152f4e0be10187 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c7
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;
OpenPOWER on IntegriCloud