From patchwork Wed Feb 17 21:56:45 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 45686 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 AE097B7D48 for ; Thu, 18 Feb 2010 08:56:54 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757313Ab0BQV4u (ORCPT ); Wed, 17 Feb 2010 16:56:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44687 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754575Ab0BQV4t (ORCPT ); Wed, 17 Feb 2010 16:56:49 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o1HLul7t007474 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 17 Feb 2010 16:56:47 -0500 Received: from localhost (vpn1-7-7.ams2.redhat.com [10.36.7.7]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o1HLuka1015709; Wed, 17 Feb 2010 16:56:46 -0500 Date: Wed, 17 Feb 2010 22:56:45 +0100 From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net Subject: [net-next-2.6 PATCH] chelsio: convert to use netdev_for_each_mc_addr Message-ID: <20100217215645.GD2635@psychotron.redhat.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-08-17) X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Jiri Pirko --- drivers/net/chelsio/common.h | 16 ++-------------- drivers/net/chelsio/cxgb2.c | 2 -- drivers/net/chelsio/pm3393.c | 6 +++--- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/drivers/net/chelsio/common.h b/drivers/net/chelsio/common.h index bb159d9..9f89fd6 100644 --- a/drivers/net/chelsio/common.h +++ b/drivers/net/chelsio/common.h @@ -90,25 +90,13 @@ typedef struct adapter adapter_t; struct t1_rx_mode { - struct net_device *dev; - u32 idx; - struct dev_mc_list *list; + struct net_device *dev; }; #define t1_rx_mode_promisc(rm) (rm->dev->flags & IFF_PROMISC) #define t1_rx_mode_allmulti(rm) (rm->dev->flags & IFF_ALLMULTI) #define t1_rx_mode_mc_cnt(rm) (netdev_mc_count(rm->dev)) - -static inline u8 *t1_get_next_mcaddr(struct t1_rx_mode *rm) -{ - u8 *addr = NULL; - - if (rm->idx++ < t1_rx_mode_mc_cnt(rm)) { - addr = rm->list->dmi_addr; - rm->list = rm->list->next; - } - return addr; -} +#define t1_get_netdev(rm) (rm->dev) #define MAX_NPORTS 4 #define PORT_MASK ((1 << MAX_NPORTS) - 1) diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c index 082cdb2..a54a32b 100644 --- a/drivers/net/chelsio/cxgb2.c +++ b/drivers/net/chelsio/cxgb2.c @@ -125,8 +125,6 @@ static void t1_set_rxmode(struct net_device *dev) struct t1_rx_mode rm; rm.dev = dev; - rm.idx = 0; - rm.list = dev->mc_list; mac->ops->set_rx_mode(mac, &rm); } diff --git a/drivers/net/chelsio/pm3393.c b/drivers/net/chelsio/pm3393.c index 2117c4f..33d674f 100644 --- a/drivers/net/chelsio/pm3393.c +++ b/drivers/net/chelsio/pm3393.c @@ -375,12 +375,12 @@ static int pm3393_set_rx_mode(struct cmac *cmac, struct t1_rx_mode *rm) rx_mode |= SUNI1x10GEXP_BITMSK_RXXG_MHASH_EN; } else if (t1_rx_mode_mc_cnt(rm)) { /* Accept one or more multicast(s). */ - u8 *addr; + struct dev_mc_list *dmi; int bit; u16 mc_filter[4] = { 0, }; - while ((addr = t1_get_next_mcaddr(rm))) { - bit = (ether_crc(ETH_ALEN, addr) >> 23) & 0x3f; /* bit[23:28] */ + netdev_for_each_mc_addr(dmi, t1_get_netdev(rm)) { + bit = (ether_crc(ETH_ALEN, dmi->dmi_addr) >> 23) & 0x3f; /* bit[23:28] */ mc_filter[bit >> 4] |= 1 << (bit & 0xf); } pmwrite(cmac, SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_LOW, mc_filter[0]);