From patchwork Fri Jul 19 20:56:29 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sucheta Chakraborty X-Patchwork-Id: 260352 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 17A7F2C0098 for ; Sat, 20 Jul 2013 07:24:45 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752781Ab3GSVYi (ORCPT ); Fri, 19 Jul 2013 17:24:38 -0400 Received: from mail-db9lp0253.outbound.messaging.microsoft.com ([213.199.154.253]:14119 "EHLO db9outboundpool.messaging.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752117Ab3GSVYF (ORCPT ); Fri, 19 Jul 2013 17:24:05 -0400 Received: from mail194-db9-R.bigfish.com (10.174.16.230) by DB9EHSOBE029.bigfish.com (10.174.14.92) with Microsoft SMTP Server id 14.1.225.22; Fri, 19 Jul 2013 21:24:04 +0000 Received: from mail194-db9 (localhost [127.0.0.1]) by mail194-db9-R.bigfish.com (Postfix) with ESMTP id 59AD1660148; Fri, 19 Jul 2013 21:24:04 +0000 (UTC) X-Forefront-Antispam-Report: CIP:198.70.193.115; KIP:(null); UIP:(null); IPV:NLI; H:avcashub1.qlogic.com; RD:avcashub1.qlogic.com; EFVD:NLI X-SpamScore: 0 X-BigFish: VPS0(zzzz1f42h208ch1ee6h1de0h1fdah2073h1202h1e76h1d1ah1d2ah1fc6hzz1de098h1de097h8275bhz2fh2a8h668h839hd24he5bhf0ah107ah11b5h121eh1288h12a5h12a9h12bdh12e5h137ah139eh13b6h1441h14afh1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1b0ah1d0ch1d2eh1d3fh1dfeh1dffh1e1dh1e23h1155h) Received-SPF: pass (mail194-db9: domain of qlogic.com designates 198.70.193.115 as permitted sender) client-ip=198.70.193.115; envelope-from=sucheta.chakraborty@qlogic.com; helo=avcashub1.qlogic.com ; 1.qlogic.com ; Received: from mail194-db9 (localhost.localdomain [127.0.0.1]) by mail194-db9 (MessageSwitch) id 1374269042220247_16177; Fri, 19 Jul 2013 21:24:02 +0000 (UTC) Received: from DB9EHSMHS001.bigfish.com (unknown [10.174.16.254]) by mail194-db9.bigfish.com (Postfix) with ESMTP id 27EB5620046; Fri, 19 Jul 2013 21:24:02 +0000 (UTC) Received: from avcashub1.qlogic.com (198.70.193.115) by DB9EHSMHS001.bigfish.com (10.174.14.11) with Microsoft SMTP Server (TLS) id 14.16.227.3; Fri, 19 Jul 2013 21:24:01 +0000 Received: from dut6217.mv.qlogic.com (172.29.56.217) by qlc.com (10.1.4.190) with Microsoft SMTP Server id 14.2.318.1; Fri, 19 Jul 2013 14:23:58 -0700 Received: by dut6217.mv.qlogic.com (Postfix, from userid 0) id 90D18522193; Fri, 19 Jul 2013 16:56:50 -0400 (EDT) From: Sucheta Chakraborty To: CC: , Subject: [PATCH net 4/9] qlcnic: Fix multicast packet handling for PF and VF. Date: Fri, 19 Jul 2013 16:56:29 -0400 Message-ID: <1374267394-27697-5-git-send-email-sucheta.chakraborty@qlogic.com> X-Mailer: git-send-email 1.7.7 In-Reply-To: <1374267394-27697-1-git-send-email-sucheta.chakraborty@qlogic.com> References: <1374267394-27697-1-git-send-email-sucheta.chakraborty@qlogic.com> MIME-Version: 1.0 X-OriginatorOrg: qlogic.com X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn% Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org o Multicast MAC was not getting programmed due to which multicast packets were being dropped by FW. This patch fixes commit 168e4fb54c11865668ad50eff81b5f2729e0e0f4 ("qlcnic: Secondary unicast MAC address support.") which introduced bug in handling multicast packets. Signed-off-by: Sucheta Chakraborty --- drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 22 ++++++++++------------ 1 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c index 5b5d2ed..4ed7e73 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c @@ -516,20 +516,18 @@ void __qlcnic_set_multi(struct net_device *netdev, u16 vlan) if (netdev->flags & IFF_PROMISC) { if (!(adapter->flags & QLCNIC_PROMISC_DISABLED)) mode = VPORT_MISS_MODE_ACCEPT_ALL; - } else if (netdev->flags & IFF_ALLMULTI) { - if (netdev_mc_count(netdev) > ahw->max_mc_count) { - mode = VPORT_MISS_MODE_ACCEPT_MULTI; - } else if (!netdev_mc_empty(netdev) && - !qlcnic_sriov_vf_check(adapter)) { - netdev_for_each_mc_addr(ha, netdev) - qlcnic_nic_add_mac(adapter, ha->addr, - vlan); - } - if (mode != VPORT_MISS_MODE_ACCEPT_MULTI && - qlcnic_sriov_vf_check(adapter)) - qlcnic_vf_add_mc_list(netdev, vlan); + } else if ((netdev->flags & IFF_ALLMULTI) || + (netdev_mc_count(netdev) > ahw->max_mc_count)) { + mode = VPORT_MISS_MODE_ACCEPT_MULTI; + } else if (!netdev_mc_empty(netdev) && + !qlcnic_sriov_vf_check(adapter)) { + netdev_for_each_mc_addr(ha, netdev) + qlcnic_nic_add_mac(adapter, ha->addr, vlan); } + if (qlcnic_sriov_vf_check(adapter)) + qlcnic_vf_add_mc_list(netdev, vlan); + /* configure unicast MAC address, if there is not sufficient space * to store all the unicast addresses then enable promiscuous mode */