Mercurial > illumos > illumos-gate
changeset 3706:68618dc92527
6523938 assertion failed: (((&sctp_ipif->sctp_ipif_saddr)->_S6_un._S6_u32[3] == (&ipif->ipif_v6lcl_addr)->..
author | vi117747 |
---|---|
date | Fri, 23 Feb 2007 07:52:01 -0800 |
parents | 3b534e49cef6 |
children | 79eeee281443 |
files | usr/src/uts/common/inet/ip/ip.c usr/src/uts/common/inet/ip/ip6_if.c usr/src/uts/common/inet/ip/ip_if.c |
diffstat | 3 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/inet/ip/ip.c Fri Feb 23 06:47:21 2007 -0800 +++ b/usr/src/uts/common/inet/ip/ip.c Fri Feb 23 07:52:01 2007 -0800 @@ -16332,11 +16332,7 @@ ASSERT(ill->ill_ipif->ipif_id == 0); if (ipif != NULL && IN6_IS_ADDR_UNSPECIFIED(&ipif->ipif_v6lcl_addr)) { - in6_addr_t ov6addr; - - ov6addr = ipif->ipif_v6lcl_addr; (void) ipif_setlinklocal(ipif); - sctp_update_ipif_addr(ipif, ov6addr); } break; }
--- a/usr/src/uts/common/inet/ip/ip6_if.c Fri Feb 23 06:47:21 2007 -0800 +++ b/usr/src/uts/common/inet/ip/ip6_if.c Fri Feb 23 07:52:01 2007 -0800 @@ -1238,14 +1238,17 @@ int ipif_setlinklocal(ipif_t *ipif) { - ill_t *ill = ipif->ipif_ill; + ill_t *ill = ipif->ipif_ill; + in6_addr_t ov6addr; ASSERT(IAM_WRITER_ILL(ill)); if (ipif_cant_setlinklocal(ipif)) return (-1); + ov6addr = ipif->ipif_v6lcl_addr; ipif_get_linklocal(&ipif->ipif_v6lcl_addr, &ill->ill_token); + sctp_update_ipif_addr(ipif, ov6addr); (void) ip_plen_to_mask_v6(IPV6_LL_PREFIXLEN, &ipif->ipif_v6net_mask); V6_MASK_COPY(ipif->ipif_v6lcl_addr, ipif->ipif_v6net_mask, ipif->ipif_v6subnet);
--- a/usr/src/uts/common/inet/ip/ip_if.c Fri Feb 23 06:47:21 2007 -0800 +++ b/usr/src/uts/common/inet/ip/ip_if.c Fri Feb 23 07:52:01 2007 -0800 @@ -12351,13 +12351,9 @@ if (((turn_on | turn_off) & (PHYI_FAILED|PHYI_STANDBY|PHYI_OFFLINE))) ip_redo_nomination(phyi); - if (set_linklocal) { - in6_addr_t ov6addr; - - ov6addr = ipif->ipif_v6lcl_addr; + if (set_linklocal) (void) ipif_setlinklocal(ipif); - sctp_update_ipif_addr(ipif, ov6addr); - } + if (zero_source) ipif->ipif_v6src_addr = ipv6_all_zeros; else @@ -12389,9 +12385,12 @@ } else { ip_rts_ifmsg(ipif); } - } - /* Update the flags in SCTP's IPIF list */ - sctp_update_ipif(ipif, SCTP_IPIF_UPDATE); + /* + * Update the flags in SCTP's IPIF list, ipif_up() will do + * this in need_up case. + */ + sctp_update_ipif(ipif, SCTP_IPIF_UPDATE); + } return (err); }