From: Mintz, Yuval Date: Sun, 1 Jan 2017 11:57:09 +0000 (+0200) Subject: qed: Support Multicast on Tx-switching X-Git-Tag: v4.1.12-93~2^2~184 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=51bc60a6fc45c87fb5d44799e09930f3450b602d;p=users%2Fjedix%2Flinux-maple.git qed: Support Multicast on Tx-switching Orabug: 25477939 Currently multicast traffic wouldn't be routed internally to listener; Instead it would only be sent to network via the physical carrier. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller (cherry picked from commit 8806787609dea02c333b187f94c1556798ac8897) Signed-off-by: Brian Maly --- diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c index 03d31b394df7b..10da9352f99c7 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_l2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c @@ -2156,11 +2156,14 @@ static int qed_configure_filter_rx_mode(struct qed_dev *cdev, QED_ACCEPT_MCAST_MATCHED | QED_ACCEPT_BCAST; - if (type == QED_FILTER_RX_MODE_TYPE_PROMISC) + if (type == QED_FILTER_RX_MODE_TYPE_PROMISC) { accept_flags.rx_accept_filter |= QED_ACCEPT_UCAST_UNMATCHED | QED_ACCEPT_MCAST_UNMATCHED; - else if (type == QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC) + accept_flags.tx_accept_filter |= QED_ACCEPT_MCAST_UNMATCHED; + } else if (type == QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC) { accept_flags.rx_accept_filter |= QED_ACCEPT_MCAST_UNMATCHED; + accept_flags.tx_accept_filter |= QED_ACCEPT_MCAST_UNMATCHED; + } return qed_filter_accept_cmd(cdev, 0, accept_flags, false, false, QED_SPQ_MODE_CB, NULL);