summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/mac/mac_sched.c
diff options
context:
space:
mode:
author <Eric.Cheng@Sun.COM>2009-11-09 20:01:32 -0800
committer <Eric.Cheng@Sun.COM>2009-11-09 20:01:32 -0800
commit8d4cf8d8d2965ea43bccdc838f15c18634fee02d (patch)
tree87ace970c3bc9c66d8b1d5fbe22559f3bc858ba4 /usr/src/uts/common/io/mac/mac_sched.c
parentbd9f6899328e19cbb74e3ad02f5c32002285887e (diff)
downloadillumos-joyent-8d4cf8d8d2965ea43bccdc838f15c18634fee02d.tar.gz
6890826 DLPI consumers using IP receive only broadcast messages
6888482 failure to initialize link props should not be ignored
Diffstat (limited to 'usr/src/uts/common/io/mac/mac_sched.c')
-rw-r--r--usr/src/uts/common/io/mac/mac_sched.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr/src/uts/common/io/mac/mac_sched.c b/usr/src/uts/common/io/mac/mac_sched.c
index 74de880f3d..ff3cba81ed 100644
--- a/usr/src/uts/common/io/mac/mac_sched.c
+++ b/usr/src/uts/common/io/mac/mac_sched.c
@@ -550,9 +550,11 @@ mac_rx_srs_proto_fanout(mac_soft_ring_set_t *mac_srs, mblk_t *head)
/*
* Special clients (eg. VLAN, non ether, etc) need DLS
* processing in the Rx path. SRST_DLS_BYPASS will be clear for
- * such SRSs.
+ * such SRSs. Another way of disabling bypass is to set the
+ * MCIS_RX_BYPASS_DISABLE flag.
*/
- dls_bypass = ((mac_srs->srs_type & SRST_DLS_BYPASS) != 0);
+ dls_bypass = ((mac_srs->srs_type & SRST_DLS_BYPASS) != 0) &&
+ ((mcip->mci_state_flags & MCIS_RX_BYPASS_DISABLE) == 0);
bzero(headmp, MAX_SR_TYPES * sizeof (mblk_t *));
bzero(tailmp, MAX_SR_TYPES * sizeof (mblk_t *));
@@ -933,9 +935,11 @@ mac_rx_srs_fanout(mac_soft_ring_set_t *mac_srs, mblk_t *head)
/*
* Special clients (eg. VLAN, non ether, etc) need DLS
* processing in the Rx path. SRST_DLS_BYPASS will be clear for
- * such SRSs.
+ * such SRSs. Another way of disabling bypass is to set the
+ * MCIS_RX_BYPASS_DISABLE flag.
*/
- dls_bypass = ((mac_srs->srs_type & SRST_DLS_BYPASS) != 0);
+ dls_bypass = ((mac_srs->srs_type & SRST_DLS_BYPASS) != 0) &&
+ ((mcip->mci_state_flags & MCIS_RX_BYPASS_DISABLE) == 0);
/*
* Since the softrings are never destroyed and we always