diff options
author | Anders Persson <Anders.Persson@Sun.COM> | 2009-05-15 15:36:01 -0700 |
---|---|---|
committer | Anders Persson <Anders.Persson@Sun.COM> | 2009-05-15 15:36:01 -0700 |
commit | be9bec8bfc8d270cd5ad620fb84366f4071b0baa (patch) | |
tree | 571d43cd643ac92fa6b232ee932b08d04a4ae519 /usr/src | |
parent | a1511e6b39158073666f6bd04cec5295813931f6 (diff) | |
download | illumos-gate-be9bec8bfc8d270cd5ad620fb84366f4071b0baa.tar.gz |
6817228 X8440(Mira) panic during snv_110 install
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/inet/ip/ip.c | 16 | ||||
-rw-r--r-- | usr/src/uts/common/inet/ip/ip6.c | 10 |
2 files changed, 14 insertions, 12 deletions
diff --git a/usr/src/uts/common/inet/ip/ip.c b/usr/src/uts/common/inet/ip/ip.c index ddaa820e8c..799e9bb30b 100644 --- a/usr/src/uts/common/inet/ip/ip.c +++ b/usr/src/uts/common/inet/ip/ip.c @@ -6858,18 +6858,18 @@ ip_fanout_tcp(queue_t *q, mblk_t *mp, ill_t *recv_ill, ipha_t *ipha, squeue_t *sqp; /* - * For fused tcp loopback, assign the eager's - * squeue to be that of the active connect's. - * Note that we don't check for IP_FF_LOOPBACK - * here since this routine gets called only - * for loopback (unlike the IPv6 counterpart). + * If the queue belongs to a conn, and fused tcp + * loopback is enabled, assign the eager's squeue + * to be that of the active connect's. Note that + * we don't check for IP_FF_LOOPBACK here since this + * routine gets called only for loopback (unlike the + * IPv6 counterpart). */ - ASSERT(Q_TO_CONN(q) != NULL); if (do_tcp_fusion && + CONN_Q(q) && IPCL_IS_TCP(Q_TO_CONN(q)) && !CONN_INBOUND_POLICY_PRESENT(connp, ipss) && !secure && - !IPP_ENABLED(IPP_LOCAL_IN, ipst) && !ip_policy && - IPCL_IS_TCP(Q_TO_CONN(q))) { + !IPP_ENABLED(IPP_LOCAL_IN, ipst) && !ip_policy) { ASSERT(Q_TO_CONN(q)->conn_sqp != NULL); sqp = Q_TO_CONN(q)->conn_sqp; } else { diff --git a/usr/src/uts/common/inet/ip/ip6.c b/usr/src/uts/common/inet/ip/ip6.c index 50765aa9bf..1f7320951d 100644 --- a/usr/src/uts/common/inet/ip/ip6.c +++ b/usr/src/uts/common/inet/ip/ip6.c @@ -3480,18 +3480,20 @@ ip_fanout_tcp_v6(queue_t *q, mblk_t *mp, ip6_t *ip6h, ill_t *ill, ill_t *inill, tcph = (tcph_t *)&mp->b_rptr[hdr_len]; if ((tcph->th_flags[0] & (TH_SYN|TH_ACK|TH_RST|TH_URG)) == TH_SYN) { - if (connp->conn_flags & IPCL_TCP) { + if (IPCL_IS_TCP(connp)) { squeue_t *sqp; /* - * For fused tcp loopback, assign the eager's - * squeue to be that of the active connect's. + * If the queue belongs to a conn, and fused tcp + * loopback is enabled, assign the eager's squeue + * to be that of the active connect's. */ if ((flags & IP_FF_LOOPBACK) && do_tcp_fusion && + CONN_Q(q) && IPCL_IS_TCP(Q_TO_CONN(q)) && !CONN_INBOUND_POLICY_PRESENT_V6(connp, ipss) && !secure && !IP6_IN_IPP(flags, ipst)) { - ASSERT(Q_TO_CONN(q) != NULL); + ASSERT(Q_TO_CONN(q)->conn_sqp != NULL); sqp = Q_TO_CONN(q)->conn_sqp; } else { sqp = IP_SQUEUE_GET(lbolt); |