From patchwork Mon Oct 21 17:45:04 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mariusz Ceier X-Patchwork-Id: 285244 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 32E0A2C00D1 for ; Tue, 22 Oct 2013 04:45:31 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751622Ab3JURpD (ORCPT ); Mon, 21 Oct 2013 13:45:03 -0400 Received: from mail-ea0-f180.google.com ([209.85.215.180]:59775 "EHLO mail-ea0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751384Ab3JURpB (ORCPT ); Mon, 21 Oct 2013 13:45:01 -0400 Received: by mail-ea0-f180.google.com with SMTP id l9so497799eaj.11 for ; Mon, 21 Oct 2013 10:44:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=bW8SAPOpQlayuLuUGbPyzMKHlUFkbdBHN/8A02i576s=; b=FxZeLHXkmGBHtH5n9NGlPj2suseK3ePK17y9d/7yDiqxiGOoZree6lSLXBoJdCULG0 sSNl4svyGS02T8Fp83eaLVQiCFW8jBGRuP66MUEejGqUtyyqOvS721jD49quZabxwXvJ gZifXKkT8XrCc4sIKSgqXHElj1dw4NNbaXKtpHhn1ZLtIaGExYHYYTxYjbvFAFyo4PLO cugoGV15f8vCg2TRwhUXRbzR+tRT6mj8MIskbLMr0Ga5BrPMl9WzRonePa5hA9GAGCQa h0EYCOwJ8OvI3AFLhD+8IozwSC9b3zPJtEi1hjXN4EttHlEd+QpNvFQe87piBuR0SGqw XwgA== X-Received: by 10.14.101.6 with SMTP id a6mr1298573eeg.81.1382377499830; Mon, 21 Oct 2013 10:44:59 -0700 (PDT) Received: from laptop.game-advertising-online.com (89-69-201-93.dynamic.chello.pl. [89.69.201.93]) by mx.google.com with ESMTPSA id f49sm46331117eec.7.2013.10.21.10.44.58 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Oct 2013 10:44:59 -0700 (PDT) From: Mariusz Ceier To: "David S. Miller" , Mugunthan V N , "Lad Prabhakar" , Jingoo Han , Jiri Pirko Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Mariusz Ceier Subject: [PATCH] davinci_emac.c: Fix IFF_ALLMULTI setup Date: Mon, 21 Oct 2013 19:45:04 +0200 Message-Id: <1382377504-24688-1-git-send-email-mceier+kernel@gmail.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <5265640C.4070201@cogentembedded.com> References: <5265640C.4070201@cogentembedded.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When IFF_ALLMULTI flag is set on interface and IFF_PROMISC isn't, emac_dev_mcast_set should only enable RX of multicasts and reset MACHASH registers. It does this, but afterwards it either sets up multicast MACs filtering or disables RX of multicasts and resets MACHASH registers again, rendering IFF_ALLMULTI flag useless. This patch fixes emac_dev_mcast_set, so that multicast MACs filtering and disabling of RX of multicasts are skipped when IFF_ALLMULTI flag is set. Tested with kernel 2.6.37. Signed-off-by: Mariusz Ceier Acked-by: Mugunthan V N --- drivers/net/ethernet/ti/davinci_emac.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c index 67df09e..6a32ef9 100644 --- a/drivers/net/ethernet/ti/davinci_emac.c +++ b/drivers/net/ethernet/ti/davinci_emac.c @@ -876,8 +876,7 @@ static void emac_dev_mcast_set(struct net_device *ndev) netdev_mc_count(ndev) > EMAC_DEF_MAX_MULTICAST_ADDRESSES) { mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); emac_add_mcast(priv, EMAC_ALL_MULTI_SET, NULL); - } - if (!netdev_mc_empty(ndev)) { + } else if (!netdev_mc_empty(ndev)) { struct netdev_hw_addr *ha; mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST);