All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: David Miller <davem@davemloft.net>
Cc: stephen@networkplumber.org, eric.dumazet@gmail.com,
	netdev@vger.kernel.org, xiyou.wangcong@gmail.com,
	mpm@selenic.com, satyam.sharma@gmail.com
Subject: [PATCH 1/6] netpoll: Remove gfp parameter from __netpoll_setup
Date: Mon, 17 Mar 2014 23:24:28 -0700	[thread overview]
Message-ID: <87d2hkgh2b.fsf_-_@xmission.com> (raw)
In-Reply-To: <87iorcgh5d.fsf_-_@xmission.com> (Eric W. Biederman's message of "Mon, 17 Mar 2014 23:22:38 -0700")


The gfp parameter was added in:
commit 47be03a28cc6c80e3aa2b3e8ed6d960ff0c5c0af
Author: Amerigo Wang <amwang@redhat.com>
Date:   Fri Aug 10 01:24:37 2012 +0000

    netpoll: use GFP_ATOMIC in slave_enable_netpoll() and __netpoll_setup()

    slave_enable_netpoll() and __netpoll_setup() may be called
    with read_lock() held, so should use GFP_ATOMIC to allocate
    memory. Eric suggested to pass gfp flags to __netpoll_setup().

    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Cong Wang <amwang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

The reason for the gfp parameter was removed in:
commit c4cdef9b7183159c23c7302aaf270d64c549f557
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Tue Jul 23 15:25:27 2013 +0800

    bonding: don't call slave_xxx_netpoll under spinlocks

    The slave_xxx_netpoll will call synchronize_rcu_bh(),
    so the function may schedule and sleep, it should't be
    called under spinlocks.

    bond_netpoll_setup() and bond_netpoll_cleanup() are always
    protected by rtnl lock, it is no need to take the read lock,
    as the slave list couldn't be changed outside rtnl lock.

    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Cc: Jay Vosburgh <fubar@us.ibm.com>
    Cc: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Nothing else that calls __netpoll_setup or ndo_netpoll_setup
requires a gfp paramter, so remove the gfp parameter from both
of these functions making the code clearer.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
---
 drivers/net/bonding/bond_main.c |    6 +++---
 drivers/net/team/team.c         |   16 +++++++---------
 include/linux/netdevice.h       |    3 +--
 include/linux/netpoll.h         |    2 +-
 net/8021q/vlan_dev.c            |    7 +++----
 net/bridge/br_device.c          |   15 +++++++--------
 net/bridge/br_if.c              |    2 +-
 net/bridge/br_private.h         |    4 ++--
 net/core/netpoll.c              |    8 ++++----
 9 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index e717db301d46..76581971cf5f 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -922,12 +922,12 @@ static inline int slave_enable_netpoll(struct slave *slave)
 	struct netpoll *np;
 	int err = 0;
 
-	np = kzalloc(sizeof(*np), GFP_ATOMIC);
+	np = kzalloc(sizeof(*np), GFP_KERNEL);
 	err = -ENOMEM;
 	if (!np)
 		goto out;
 
-	err = __netpoll_setup(np, slave->dev, GFP_ATOMIC);
+	err = __netpoll_setup(np, slave->dev);
 	if (err) {
 		kfree(np);
 		goto out;
@@ -962,7 +962,7 @@ static void bond_netpoll_cleanup(struct net_device *bond_dev)
 			slave_disable_netpoll(slave);
 }
 
-static int bond_netpoll_setup(struct net_device *dev, struct netpoll_info *ni, gfp_t gfp)
+static int bond_netpoll_setup(struct net_device *dev, struct netpoll_info *ni)
 {
 	struct bonding *bond = netdev_priv(dev);
 	struct list_head *iter;
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 2b1a1d61072c..33008c1d1d67 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1031,8 +1031,7 @@ static void team_port_leave(struct team *team, struct team_port *port)
 }
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
-static int team_port_enable_netpoll(struct team *team, struct team_port *port,
-				    gfp_t gfp)
+static int team_port_enable_netpoll(struct team *team, struct team_port *port)
 {
 	struct netpoll *np;
 	int err;
@@ -1040,11 +1039,11 @@ static int team_port_enable_netpoll(struct team *team, struct team_port *port,
 	if (!team->dev->npinfo)
 		return 0;
 
-	np = kzalloc(sizeof(*np), gfp);
+	np = kzalloc(sizeof(*np), GFP_KERNEL);
 	if (!np)
 		return -ENOMEM;
 
-	err = __netpoll_setup(np, port->dev, gfp);
+	err = __netpoll_setup(np, port->dev);
 	if (err) {
 		kfree(np);
 		return err;
@@ -1067,8 +1066,7 @@ static void team_port_disable_netpoll(struct team_port *port)
 	kfree(np);
 }
 #else
-static int team_port_enable_netpoll(struct team *team, struct team_port *port,
-				    gfp_t gfp)
+static int team_port_enable_netpoll(struct team *team, struct team_port *port)
 {
 	return 0;
 }
@@ -1156,7 +1154,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev)
 		goto err_vids_add;
 	}
 
-	err = team_port_enable_netpoll(team, port, GFP_KERNEL);
+	err = team_port_enable_netpoll(team, port);
 	if (err) {
 		netdev_err(dev, "Failed to enable netpoll on device %s\n",
 			   portname);
@@ -1850,7 +1848,7 @@ static void team_netpoll_cleanup(struct net_device *dev)
 }
 
 static int team_netpoll_setup(struct net_device *dev,
-			      struct netpoll_info *npifo, gfp_t gfp)
+			      struct netpoll_info *npifo)
 {
 	struct team *team = netdev_priv(dev);
 	struct team_port *port;
@@ -1858,7 +1856,7 @@ static int team_netpoll_setup(struct net_device *dev,
 
 	mutex_lock(&team->lock);
 	list_for_each_entry(port, &team->port_list, list) {
-		err = team_port_enable_netpoll(team, port, gfp);
+		err = team_port_enable_netpoll(team, port);
 		if (err) {
 			__team_netpoll_cleanup(team);
 			break;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 4b6d12c7b803..77142a78c4d9 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1037,8 +1037,7 @@ struct net_device_ops {
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	void                    (*ndo_poll_controller)(struct net_device *dev);
 	int			(*ndo_netpoll_setup)(struct net_device *dev,
-						     struct netpoll_info *info,
-						     gfp_t gfp);
+						     struct netpoll_info *info);
 	void			(*ndo_netpoll_cleanup)(struct net_device *dev);
 #endif
 #ifdef CONFIG_NET_RX_BUSY_POLL
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index 1b475a5a7239..893b9e66060e 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -57,7 +57,7 @@ static inline void netpoll_rx_enable(struct net_device *dev) { return; }
 void netpoll_send_udp(struct netpoll *np, const char *msg, int len);
 void netpoll_print_options(struct netpoll *np);
 int netpoll_parse_options(struct netpoll *np, char *opt);
-int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp);
+int __netpoll_setup(struct netpoll *np, struct net_device *ndev);
 int netpoll_setup(struct netpoll *np);
 void __netpoll_cleanup(struct netpoll *np);
 void __netpoll_free_async(struct netpoll *np);
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 4f3e9073cb49..a78bebeca4d9 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -707,20 +707,19 @@ static void vlan_dev_poll_controller(struct net_device *dev)
 	return;
 }
 
-static int vlan_dev_netpoll_setup(struct net_device *dev, struct netpoll_info *npinfo,
-				  gfp_t gfp)
+static int vlan_dev_netpoll_setup(struct net_device *dev, struct netpoll_info *npinfo)
 {
 	struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
 	struct net_device *real_dev = vlan->real_dev;
 	struct netpoll *netpoll;
 	int err = 0;
 
-	netpoll = kzalloc(sizeof(*netpoll), gfp);
+	netpoll = kzalloc(sizeof(*netpoll), GFP_KERNEL);
 	err = -ENOMEM;
 	if (!netpoll)
 		goto out;
 
-	err = __netpoll_setup(netpoll, real_dev, gfp);
+	err = __netpoll_setup(netpoll, real_dev);
 	if (err) {
 		kfree(netpoll);
 		goto out;
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index f2a08477e0f5..0dd01a05bd59 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -218,16 +218,16 @@ static void br_netpoll_cleanup(struct net_device *dev)
 		br_netpoll_disable(p);
 }
 
-static int __br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
+static int __br_netpoll_enable(struct net_bridge_port *p)
 {
 	struct netpoll *np;
 	int err;
 
-	np = kzalloc(sizeof(*p->np), gfp);
+	np = kzalloc(sizeof(*p->np), GFP_KERNEL);
 	if (!np)
 		return -ENOMEM;
 
-	err = __netpoll_setup(np, p->dev, gfp);
+	err = __netpoll_setup(np, p->dev);
 	if (err) {
 		kfree(np);
 		return err;
@@ -237,16 +237,15 @@ static int __br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
 	return err;
 }
 
-int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
+int br_netpoll_enable(struct net_bridge_port *p)
 {
 	if (!p->br->dev->npinfo)
 		return 0;
 
-	return __br_netpoll_enable(p, gfp);
+	return __br_netpoll_enable(p);
 }
 
-static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
-			    gfp_t gfp)
+static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni)
 {
 	struct net_bridge *br = netdev_priv(dev);
 	struct net_bridge_port *p;
@@ -255,7 +254,7 @@ static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
 	list_for_each_entry(p, &br->port_list, list) {
 		if (!p->dev)
 			continue;
-		err = __br_netpoll_enable(p, gfp);
+		err = __br_netpoll_enable(p);
 		if (err)
 			goto fail;
 	}
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 54d207d3a31c..5262b8617eb9 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -366,7 +366,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
 	if (err)
 		goto err2;
 
-	err = br_netpoll_enable(p, GFP_KERNEL);
+	err = br_netpoll_enable(p);
 	if (err)
 		goto err3;
 
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index e1ca1dc916a4..06811d79f89f 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -349,7 +349,7 @@ static inline void br_netpoll_send_skb(const struct net_bridge_port *p,
 		netpoll_send_skb(np, skb);
 }
 
-int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp);
+int br_netpoll_enable(struct net_bridge_port *p);
 void br_netpoll_disable(struct net_bridge_port *p);
 #else
 static inline void br_netpoll_send_skb(const struct net_bridge_port *p,
@@ -357,7 +357,7 @@ static inline void br_netpoll_send_skb(const struct net_bridge_port *p,
 {
 }
 
-static inline int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp)
+static inline int br_netpoll_enable(struct net_bridge_port *p)
 {
 	return 0;
 }
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 7291dde93469..4bccc78c5b58 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -584,7 +584,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)
 }
 EXPORT_SYMBOL(netpoll_parse_options);
 
-int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
+int __netpoll_setup(struct netpoll *np, struct net_device *ndev)
 {
 	struct netpoll_info *npinfo;
 	const struct net_device_ops *ops;
@@ -603,7 +603,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
 	}
 
 	if (!ndev->npinfo) {
-		npinfo = kmalloc(sizeof(*npinfo), gfp);
+		npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL);
 		if (!npinfo) {
 			err = -ENOMEM;
 			goto out;
@@ -617,7 +617,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
 
 		ops = np->dev->netdev_ops;
 		if (ops->ndo_netpoll_setup) {
-			err = ops->ndo_netpoll_setup(ndev, npinfo, gfp);
+			err = ops->ndo_netpoll_setup(ndev, npinfo);
 			if (err)
 				goto free_npinfo;
 		}
@@ -749,7 +749,7 @@ int netpoll_setup(struct netpoll *np)
 	/* fill up the skb queue */
 	refill_skbs();
 
-	err = __netpoll_setup(np, ndev, GFP_KERNEL);
+	err = __netpoll_setup(np, ndev);
 	if (err)
 		goto put;
 
-- 
1.7.5.4

  reply	other threads:[~2014-03-18  6:24 UTC|newest]

Thread overview: 288+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-03 20:40 [PATCH] netpoll: Don't call driver methods from interrupt context Eric W. Biederman
2014-03-04  4:23 ` Cong Wang
2014-03-04 10:29   ` Eric W. Biederman
2014-03-04 21:09   ` David Miller
2014-03-04 21:08 ` David Miller
2014-03-05  0:03   ` Eric W. Biederman
2014-03-05  0:26     ` David Miller
2014-03-05 19:24       ` Eric W. Biederman
2014-03-07 19:30         ` David Miller
2014-03-08  5:13           ` Eric W. Biederman
2014-03-05 19:14   ` Eric W. Biederman
2014-03-11  3:16   ` [PATCH next-next 0/11] Using dev_kfree_skb_any for functions called in multiple contexts Eric W. Biederman
2014-03-11  3:18     ` [PATCH 01/11] bonding: Call dev_kfree_skby_any instead of kfree_skb Eric W. Biederman
2014-03-11  3:44       ` Eric Dumazet
2014-03-11  4:00         ` Eric W. Biederman
2014-03-11  4:56           ` Eric Dumazet
2014-03-11  4:42         ` David Miller
2014-03-11  5:02           ` Eric Dumazet
2014-03-11  8:43             ` [RFC PATCH 0/2] remove netpoll rx support Eric W. Biederman
2014-03-11  8:44               ` [RFC PATCH 1/2] netpoll: Remove dead netpoll_rx code Eric W. Biederman
2014-03-11 12:29                 ` Eric Dumazet
2014-03-11 15:23                   ` Stephen Hemminger
2014-03-11 15:34                     ` Hannes Frederic Sowa
2014-03-11 20:48                     ` Eric W. Biederman
2014-03-12 18:31                       ` Cong Wang
2014-03-13 19:23                       ` David Miller
2014-03-13 20:46                         ` Eric W. Biederman
2014-03-15  1:30                         ` [PATCH 0/9] netpoll: Cleanup received packet processing Eric W. Biederman
2014-03-15  1:31                           ` [PATCH 1/9] netpoll: Pass budget into poll_napi Eric W. Biederman
2014-03-15  1:32                           ` [PATCH 2/9] netpoll: Visit all napi handlers in poll_napi Eric W. Biederman
2014-03-15  1:33                           ` [PATCH 3/9] netpoll: Warn if more packets are processed than are budgeted Eric W. Biederman
2014-03-15  1:33                           ` [PATCH 4/9] netpoll: Add netpoll_rx_processing Eric W. Biederman
2014-03-15  1:34                           ` [PATCH 5/9] netpoll: Don't drop all received packets Eric W. Biederman
2014-03-15  1:35                           ` [PATCH 6/9] netpoll: Move netpoll_trap under CONFIG_NETPOLL_TRAP Eric W. Biederman
2014-03-15  1:36                           ` [PATCH 7/9] netpoll: Consolidate neigh_tx processing in service_neigh_queue Eric W. Biederman
2014-03-15  1:37                           ` [PATCH 8/9] netpoll: Move all receive processing under CONFIG_NETPOLL_TRAP Eric W. Biederman
2014-03-15  1:39                           ` [PATCH 9/9] netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP) Eric W. Biederman
2014-03-15  2:59                           ` [PATCH 0/9] netpoll: Cleanup received packet processing David Miller
2014-03-15  3:39                             ` Eric W. Biederman
2014-03-15  3:43                               ` [PATCH 00/10] " Eric W. Biederman
2014-03-15  3:44                                 ` [PATCH 01/10] netpoll: move setting of NETPOLL_RX_DROP into netpoll_poll_dev Eric W. Biederman
2014-03-15  3:45                                 ` [PATCH 02/10] netpoll: Pass budget into poll_napi Eric W. Biederman
2014-03-15  3:45                                 ` [PATCH 03/10] netpoll: Visit all napi handlers in poll_napi Eric W. Biederman
2014-03-15  3:47                                 ` [PATCH 04/10] netpoll: Warn if more packets are processed than are budgeted Eric W. Biederman
2014-03-15  3:47                                 ` [PATCH 05/10] netpoll: Add netpoll_rx_processing Eric W. Biederman
2014-03-15  3:48                                 ` [PATCH 06/10] netpoll: Don't drop all received packets Eric W. Biederman
2014-03-15  3:49                                 ` [PATCH 07/10] netpoll: Move netpoll_trap under CONFIG_NETPOLL_TRAP Eric W. Biederman
2014-03-15  3:50                                 ` [PATCH 08/10] netpoll: Consolidate neigh_tx processing in service_neigh_queue Eric W. Biederman
2014-03-15  3:50                                 ` [PATCH 09/10] netpoll: Move all receive processing under CONFIG_NETPOLL_TRAP Eric W. Biederman
2014-03-15  3:51                                 ` [PATCH 10/10] netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP) Eric W. Biederman
2014-03-17 19:49                                 ` [PATCH 00/10] netpoll: Cleanup received packet processing David Miller
2014-03-18  6:22                                   ` [PATCH 0/6] netpoll: Cleanups and fixes Eric W. Biederman
2014-03-18  6:24                                     ` Eric W. Biederman [this message]
2014-03-18  6:24                                     ` [PATCH 2/6] netpoll: Only call ndo_start_xmit from a single place Eric W. Biederman
2014-03-18  6:25                                     ` [PATCH 3/6] netpoll: Don't allow on devices that perform their own xmit locking Eric W. Biederman
2014-03-18 18:26                                       ` Cong Wang
2014-03-18 18:38                                         ` David Miller
2014-03-18  6:26                                     ` [PATCH 4/6] netpoll: Move rx enable/disable into __dev_close_many Eric W. Biederman
2014-03-18  6:27                                     ` [PATCH 5/6] netpoll: Rename netpoll_rx_enable/disable to netpoll_poll_disable/enable Eric W. Biederman
2014-03-18  6:27                                     ` [PATCH 6/6] net: Free skbs from irqs when possible Eric W. Biederman
2014-03-18  9:32                                       ` David Laight
2014-03-18 13:22                                       ` Eric Dumazet
2014-03-18 17:51                                         ` Eric W. Biederman
2014-03-18 13:30                                       ` Ben Hutchings
2014-03-18 14:24                                         ` Bjørn Mork
2014-03-18 15:23                                           ` Eric Dumazet
2014-03-18 15:41                                             ` Bjørn Mork
2014-03-18 15:52                                               ` David Laight
2014-03-28  1:14                                                 ` [PATCH 0/3] netpoll: Freeing skbs in hard irq context Eric W. Biederman
2014-03-28  1:15                                                   ` [PATCH 1/3] net: Add a test to see if a skb is freeable in " Eric W. Biederman
2014-03-29 22:09                                                     ` David Miller
2014-04-01  8:03                                                       ` Eric W. Biederman
2014-04-01 16:15                                                         ` David Miller
2014-03-28  1:20                                                   ` [PATCH 2/3] netpoll: Use skb_irq_freeable to make zap_completion_queue safe Eric W. Biederman
2014-03-28 13:17                                                     ` Sergei Shtylyov
2014-04-01 19:19                                                       ` [PATCH v2 0/2] " Eric W. Biederman
2014-04-01 19:20                                                         ` [PATCH v2 1/2] net: Add a test to see if a skb is freeable in irq context Eric W. Biederman
2014-04-01 19:49                                                           ` Eric Dumazet
2014-04-01 19:21                                                         ` [PATCH v2 2/2] netpoll: Use skb_irq_freeable to make zap_completion_queue safe Eric W. Biederman
2014-04-01 21:54                                                         ` [PATCH v2 0/2] " David Miller
2014-03-28  1:23                                                   ` [PATCH 3/3] net: Warn when a skb is freed inappropriately in hard irq context Eric W. Biederman
2014-03-18 17:53                                         ` [PATCH 6/6] net: Free skbs from irqs when possible Eric W. Biederman
2014-03-18 15:23                                       ` Stephen Hemminger
2014-03-18 17:47                                         ` Eric W. Biederman
2014-03-18 18:37                                           ` David Miller
2014-03-27 23:02                                             ` Eric W. Biederman
2014-03-27 22:35                                     ` [PATCH v2 0/6] netpoll: Cleanups and fixes Eric W. Biederman
2014-03-27 22:36                                       ` [PATCH v2 1/6] netpoll: Remove gfp parameter from __netpoll_setup Eric W. Biederman
2014-03-27 22:37                                       ` [PATCH v2 2/6] netpoll: Only call ndo_start_xmit from a single place Eric W. Biederman
2014-03-27 22:38                                       ` [PATCH v2 3/6] netpoll: Move rx enable/disable into __dev_close_many Eric W. Biederman
2014-03-27 22:39                                       ` [PATCH v2 4/6] netpoll: Rename netpoll_rx_enable/disable to netpoll_poll_disable/enable Eric W. Biederman
2014-03-27 22:41                                       ` [PATCH v2 5/6] netpoll: Remove strong unnecessary assumptions about skbs Eric W. Biederman
2014-03-27 22:42                                       ` [PATCH v2 6/6] netpoll: Respect NETIF_F_LLTX Eric W. Biederman
2014-03-29 22:01                                       ` [PATCH v2 0/6] netpoll: Cleanups and fixes David Miller
2014-03-11  8:45               ` [RFC PATCH 2/2] netpoll: Don't poll for received packets Eric W. Biederman
2014-03-11 12:44                 ` Eric Dumazet
2014-03-12 18:39                 ` Cong Wang
2014-03-13 20:48                   ` Eric W. Biederman
2014-03-11 12:24               ` [RFC PATCH 0/2] remove netpoll rx support Eric Dumazet
2014-03-11 16:49               ` David Miller
2014-03-11 19:48                 ` Eric W. Biederman
2014-03-11 20:09                   ` David Miller
2014-03-11 21:13                     ` [PATCH next-next 0/10] Using dev_kfree_skb_any for functions called in multiple contexts Eric W. Biederman
2014-03-11 21:14                       ` [PATCH net-next 01/10] 8139cp: Call dev_kfree_skby_any instead of kfree_skb Eric W. Biederman
2014-03-11 21:15                       ` [PATCH net-next 02/10] 8139too: Call dev_kfree_skby_any instead of dev_kfree_skb Eric W. Biederman
2014-03-12  2:06                         ` Eric Dumazet
2014-03-12 21:24                           ` Francois Romieu
2014-03-12 22:01                             ` Eric Dumazet
2014-03-13 21:08                               ` Eric W. Biederman
2014-03-14  4:26                               ` [PATCH net-next] net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq Eric W. Biederman
2014-03-15  2:41                                 ` David Miller
2014-03-11 21:16                       ` [PATCH net-next 03/10] r8169: Call dev_kfree_skby_any instead of dev_kfree_skb Eric W. Biederman
2014-03-12  2:02                         ` Eric Dumazet
2014-03-11 21:16                       ` [PATCH net-next 04/10] bonding: Call dev_kfree_skby_any instead of kfree_skb Eric W. Biederman
2014-03-11 21:17                       ` [PATCH net-next 05/10] bnx2: Call dev_kfree_skby_any instead of dev_kfree_skb Eric W. Biederman
2014-03-11 21:18                       ` [PATCH net-next 06/10] tg3: " Eric W. Biederman
2014-03-11 21:18                       ` [PATCH net-next 07/10] ixgb: " Eric W. Biederman
2014-03-11 21:19                       ` [PATCH net-next 08/10] mlx4: " Eric W. Biederman
2014-03-11 21:19                       ` [PATCH net-next 09/10] benet: Call dev_kfree_skby_any instead of kfree_skb Eric W. Biederman
2014-03-11 21:20                       ` [PATCH net-next 10/10] gianfar: Carefully free skbs in functions called by netpoll Eric W. Biederman
2014-03-12  2:54                       ` [PATCH next-next 0/10] Using dev_kfree_skb_any for functions called in multiple contexts Eric Dumazet
2014-03-12 20:22                         ` David Miller
2014-03-25  5:58                       ` [net-next 00/54][pull request] Using dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25  6:04                         ` [PATCH 01/54] uml/net_kern: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25  6:04                           ` [PATCH 02/54] 3c509: " Eric W. Biederman
2014-03-25 13:03                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 03/54] 3c59x: " Eric W. Biederman
2014-03-25 13:04                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 04/54] 8390: " Eric W. Biederman
2014-03-25 13:06                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 05/54] bfin_mac: " Eric W. Biederman
2014-03-25 13:10                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 06/54] sun4i-emac: " Eric W. Biederman
2014-03-25 13:11                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 07/54] am79c961a: " Eric W. Biederman
2014-03-25 13:13                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 08/54] lance: " Eric W. Biederman
2014-03-25 13:14                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 09/54] pcnet32: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 13:15                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 10/54] alx: " Eric W. Biederman
2014-03-25 13:16                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 11/54] atl1c: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 13:18                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 12/54] bnad: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 13:19                             ` Eric Dumazet
2014-03-25  6:04                           ` [PATCH 13/54] macb: Call dev_kfree_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 13:21                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 14/54] xgmac: Call dev_kfree/consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 15:16                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 15/54] cxgb3: Call dev_kfree/consume_skb_any instead of [dev_]kfree_skb Eric W. Biederman
2014-03-25 15:18                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 16/54] cxgb4: " Eric W. Biederman
2014-03-25 15:19                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 17/54] cxfb4vf: " Eric W. Biederman
2014-03-25 15:22                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 18/54] cs89x0: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 15:23                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 19/54] enic: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 15:24                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 20/54] dm9000: Call dev_consume_skb_any " Eric W. Biederman
2014-03-25 15:26                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 21/54] dmfe: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 15:28                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 22/54] uli526x: " Eric W. Biederman
2014-03-25 15:29                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 23/54] sundance: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 15:29                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 24/54] fec: Call dev_kfree_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 15:30                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 25/54] ucc_geth: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 15:30                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 26/54] i825xx: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 15:31                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 27/54] ehea: Call dev_consume_skb_any " Eric W. Biederman
2014-03-25 15:39                             ` Eric Dumazet
2014-03-25 15:39                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 28/54] ibmveth: " Eric W. Biederman
2014-03-25  6:05                           ` [PATCH 29/54] jme: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 15:45                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 30/54] mv643xx_eth: " Eric W. Biederman
2014-03-25 15:46                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 31/54] skge: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 15:47                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 32/54] sky2: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 16:23                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 33/54] ksz884x: Call dev_consume_skb_any " Eric W. Biederman
2014-03-25 16:23                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 34/54] s2io: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 16:25                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 35/54] vxge: " Eric W. Biederman
2014-03-25 16:26                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 36/54] forcedeth: Call dev_kfree_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 16:27                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 37/54] sc92031: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 20:39                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 38/54] sis900: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 20:39                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 39/54] smc911x: " Eric W. Biederman
2014-03-25 20:40                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 40/54] smc91x: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 20:40                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 41/54] smsc911x: Call dev_consume_skb_any " Eric W. Biederman
2014-03-25 20:41                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 42/54] stmmac: " Eric W. Biederman
2014-03-25 20:42                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 43/54] sungem: " Eric W. Biederman
2014-03-25 20:42                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 44/54] tilepro: Call dev_consume_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 20:43                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 45/54] spider_net: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 20:44                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 46/54] via-rhine: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 20:44                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 47/54] via-velocity: Call dev_kfree_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 20:45                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 48/54] xilinx_emaclite: Call dev_consume_skb_any instead of dev_kfree_skb Eric W. Biederman
2014-03-25 20:46                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 49/54] vmxnet3: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 20:46                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 50/54] xen-netfront: " Eric W. Biederman
2014-03-25 20:46                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 51/54] wlags49_h2: Call dev_kfree/consume_skb_any " Eric W. Biederman
2014-03-25 20:47                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 52/54] staging/octeon-ethernet: " Eric W. Biederman
2014-03-25 20:47                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 53/54] virtio_net: Call dev_kfree_skb_any " Eric W. Biederman
2014-03-25 20:48                             ` Eric Dumazet
2014-03-25  6:05                           ` [PATCH 54/54] if_vlan: Call dev_kfree_skb_any instead of kfree_skb Eric W. Biederman
2014-03-25 20:48                             ` Eric Dumazet
2014-03-25 13:01                           ` [PATCH 01/54] uml/net_kern: Call dev_consume_skb_any instead of dev_kfree_skb Eric Dumazet
2014-03-25 18:05                             ` Eric W. Biederman
2014-03-26  9:49                               ` David Laight
2014-03-25 20:49                         ` [net-next 00/54][pull request] Using dev_kfree/consume_skb_any for functions called in multiple contexts Eric Dumazet
2014-03-25 22:54                           ` David Miller
2014-03-11 21:30                     ` [PATCH net-next 0/2] Don't receive packets when the napi budget == 0 Eric W. Biederman
2014-03-11 21:31                       ` [PATCH net-next 1/2] bnx2: " Eric W. Biederman
2014-03-12  5:07                         ` Eric Dumazet
2014-03-11 21:31                       ` [PATCH net-next 2/2] 8139cp: " Eric W. Biederman
2014-03-12  5:08                         ` Eric Dumazet
2014-03-13 19:19                       ` [PATCH net-next 0/2] " David Miller
2014-03-15  0:56                       ` [PATCH net-next 0/16] " Eric W. Biederman
2014-03-15  0:57                         ` [PATCH net-next 01/16] bnx2x: " Eric W. Biederman
2014-03-15  0:59                         ` [PATCH net-next 02/16] i40e: " Eric W. Biederman
2014-03-15  1:00                         ` [PATCH net-next 03/16] igb: " Eric W. Biederman
2014-03-15  1:00                         ` [PATCH net-next 04/16] ixgbe: " Eric W. Biederman
2014-03-15  1:01                         ` [PATCH net-next 05/16] amd8111e: " Eric W. Biederman
2014-03-15  1:02                         ` [PATCH net-next 06/16] enic: " Eric W. Biederman
2014-03-15  1:03                         ` [PATCH net-next 07/16] fs_enet: " Eric W. Biederman
2014-03-15  1:03                         ` [PATCH net-next 08/16] ibmveth: " Eric W. Biederman
2014-03-15  1:05                         ` [PATCH net-next 09/16] sky2: " Eric W. Biederman
2014-03-15  1:34                           ` Stephen Hemminger
2014-03-15  1:05                         ` [PATCH net-next 10/16] mlx4: " Eric W. Biederman
2014-03-15  1:06                         ` [PATCH net-next 11/16] s2io: " Eric W. Biederman
2014-03-15  1:08                         ` [PATCH net-next 12/16] tilegx: " Eric W. Biederman
2014-03-15  1:09                         ` [PATCH net-next 13/16] tilepro: " Eric W. Biederman
2014-03-15  1:10                         ` [PATCH net-next-test 14/16] tc35815: " Eric W. Biederman
2014-03-15  1:10                         ` [PATCH net-next 15/16] vxge: " Eric W. Biederman
2014-03-15  1:11                         ` [PATCH net-next 16/16] sfc: " Eric W. Biederman
2014-03-15 15:23                           ` Ben Hutchings
2014-03-15 16:29                             ` David Miller
2014-03-15 17:23                               ` Ben Hutchings
2014-03-15 18:54                                 ` Eric Dumazet
2014-03-15 19:25                                   ` Eric W. Biederman
2014-03-15 20:01                               ` mlx4 netpoll and rx/tx weirdness Eric W. Biederman
2014-03-16 16:17                                 ` Eric Dumazet
2014-03-17 21:22                                   ` David Miller
2014-03-17 21:40                                     ` Eric Dumazet
2014-03-15  2:54                         ` [PATCH net-next 0/16] Don't receive packets when the napi budget == 0 David Miller
2014-03-11 21:33                     ` [PATCH net-next] bcm63xx_enet: Stop pretending to support netpoll Eric W. Biederman
2014-03-13 19:26                       ` David Miller
2014-03-13 19:42                         ` Florian Fainelli
2014-03-13 19:58                           ` David Miller
2014-03-11 16:39             ` [PATCH 01/11] bonding: Call dev_kfree_skby_any instead of kfree_skb David Miller
2014-03-11  5:31           ` Eric W. Biederman
2014-03-11  3:18     ` [PATCH 02/11] bnx2: Call dev_kfree_skby_any instead of dev_kfree_skb Eric W. Biederman
2014-03-11  3:47       ` Eric Dumazet
2014-03-11  4:10         ` Eric W. Biederman
2014-03-11  4:43         ` David Miller
2014-03-11  3:19     ` [PATCH 03/11] bnx2x: " Eric W. Biederman
2014-03-11  3:19     ` [PATCH 04/11] tg3: " Eric W. Biederman
2014-03-11  3:20     ` [PATCH 05/11] bcm63xx_enet: " Eric W. Biederman
2014-03-11  3:21     ` [PATCH 06/11] e1000: " Eric W. Biederman
2014-03-11  3:22     ` [PATCH 07/11] igbvf: " Eric W. Biederman
2014-03-11  3:22     ` [PATCH 08/11] ixgb: " Eric W. Biederman
2014-03-11  3:23     ` [PATCH 09/11] mlx4: " Eric W. Biederman
2014-03-11  3:23     ` [PATCH 10/11] benet: Call dev_kfree_skby_any instead of kfree_skb Eric W. Biederman
2014-03-11  3:24     ` [PATCH 11/11] gianfar: Carefully free skbs in functions called by netpoll Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d2hkgh2b.fsf_-_@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=mpm@selenic.com \
    --cc=netdev@vger.kernel.org \
    --cc=satyam.sharma@gmail.com \
    --cc=stephen@networkplumber.org \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.