diff options
author | Cathy Zhou <Cathy.Zhou@Sun.COM> | 2009-12-02 15:13:47 -0800 |
---|---|---|
committer | Cathy Zhou <Cathy.Zhou@Sun.COM> | 2009-12-02 15:13:47 -0800 |
commit | 10abae1df8b85dc08f4611a2d43950f65cea722b (patch) | |
tree | 07515d3d8f5600a2b3a9e92d1d05da6381d27671 /usr/src | |
parent | ac23bf836b7aa423b14eafd726f921e705676f80 (diff) | |
download | illumos-joyent-10abae1df8b85dc08f4611a2d43950f65cea722b.tar.gz |
6904984 capability negotiation race with ipif_up_done() which could cause no capabilities set
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/inet/ip/ip_if.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/ip/ip_if.c b/usr/src/uts/common/inet/ip/ip_if.c index 879a5d59a1..07ee336d48 100644 --- a/usr/src/uts/common/inet/ip/ip_if.c +++ b/usr/src/uts/common/inet/ip/ip_if.c @@ -1450,8 +1450,12 @@ ill_capability_dispatch(ill_t *ill, mblk_t *mp, dl_capability_sub_t *subp) /* * If no ipif was brought up over this ill, this DL_CAPABILITY_REQ/ACK * is only to get the VRRP capability. + * + * Note that we cannot check ill_ipif_up_count here since + * ill_ipif_up_count is only incremented when the resolver is setup. + * That is done asynchronously, and can race with this function. */ - if (ill->ill_ipif_up_count == 0) { + if (!ill->ill_dl_up) { if (subp->dl_cap == DL_CAPAB_VRRP) ill_capability_vrrp_ack(ill, mp, subp); return; |