diff options
| author | Max Bruning <max@joyent.com> | 2012-09-28 16:21:00 +0000 |
|---|---|---|
| committer | Robert Mustacchi <rm@joyent.com> | 2012-10-01 20:49:13 +0000 |
| commit | b45ea0f774fd2d959ff7024d756c804582252958 (patch) | |
| tree | e77dbc25c7ad18955fb398a855495ef69691ccae | |
| parent | 76d2bf954a30eb07b168c2c72b57cc685579c3d5 (diff) | |
| download | illumos-joyent-b45ea0f774fd2d959ff7024d756c804582252958.tar.gz | |
OS-883 Panic in i_mac_notify
| -rw-r--r-- | usr/src/uts/common/io/vnic/vnic_dev.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/usr/src/uts/common/io/vnic/vnic_dev.c b/usr/src/uts/common/io/vnic/vnic_dev.c index 722e41f2a5..065d7f2cbc 100644 --- a/usr/src/uts/common/io/vnic/vnic_dev.c +++ b/usr/src/uts/common/io/vnic/vnic_dev.c @@ -408,15 +408,6 @@ vnic_dev_create(datalink_id_t vnic_id, datalink_id_t linkid, if (err != 0) goto bail; - if (mrp != NULL) { - if ((mrp->mrp_mask & MRP_RX_RINGS) != 0 || - (mrp->mrp_mask & MRP_TX_RINGS) != 0) { - req_hwgrp_flag = B_TRUE; - } - err = mac_client_set_resources(vnic->vn_mch, mrp); - if (err != 0) - goto bail; - } /* assign a MAC address to the VNIC */ err = vnic_unicast_add(vnic, *vnic_addr_type, mac_slot, @@ -520,9 +511,22 @@ vnic_dev_create(datalink_id_t vnic_id, datalink_id_t linkid, } /* Set the VNIC's MAC in the client */ - if (!is_anchor) + if (!is_anchor) { mac_set_upper_mac(vnic->vn_mch, vnic->vn_mh, mrp); + if (mrp != NULL) { + if ((mrp->mrp_mask & MRP_RX_RINGS) != 0 || + (mrp->mrp_mask & MRP_TX_RINGS) != 0) { + req_hwgrp_flag = B_TRUE; + } + err = mac_client_set_resources(vnic->vn_mch, mrp); + if (err != 0) { + (void) mac_unregister(vnic->vn_mh); + goto bail; + } + } + } + err = dls_devnet_create(vnic->vn_mh, vnic->vn_id, crgetzoneid(credp)); if (err != 0) { VERIFY(is_anchor || mac_margin_remove(vnic->vn_lower_mh, |
