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 09/10] netpoll: Move all receive processing under CONFIG_NETPOLL_TRAP
Date: Fri, 14 Mar 2014 20:50:58 -0700	[thread overview]
Message-ID: <87r464nmql.fsf_-_@xmission.com> (raw)
In-Reply-To: <877g7wqg8e.fsf_-_@xmission.com> (Eric W. Biederman's message of "Fri, 14 Mar 2014 20:43:13 -0700")



Make rx_skb_hook, and rx in struct netpoll depend on
CONFIG_NETPOLL_TRAP Make rx_lock, rx_np, and neigh_tx in struct
netpoll_info depend on CONFIG_NETPOLL_TRAP

Make the functions netpoll_rx_on, netpoll_rx, and netpoll_receive_skb
no-ops when CONFIG_NETPOLL_TRAP is not set.

Only build netpoll_neigh_reply, checksum_udp service_neigh_queue,
pkt_is_ns, and __netpoll_rx when CONFIG_NETPOLL_TRAP is defined.

Add helper functions netpoll_trap_setup, netpoll_trap_setup_info,
netpoll_trap_cleanup, and netpoll_trap_cleanup_info that initialize
and cleanup the struct netpoll and struct netpoll_info receive
specific fields when CONFIG_NETPOLL_TRAP is enabled and do nothing
otherwise.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
---
 include/linux/netpoll.h |   73 +++++++++++++++++++++++-------------------
 net/core/netpoll.c      |   81 +++++++++++++++++++++++++++++++++++++----------
 2 files changed, 104 insertions(+), 50 deletions(-)

diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index ab9aaaff8d04..a0632af88d8b 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -24,32 +24,38 @@ struct netpoll {
 	struct net_device *dev;
 	char dev_name[IFNAMSIZ];
 	const char *name;
-	void (*rx_skb_hook)(struct netpoll *np, int source, struct sk_buff *skb,
-			    int offset, int len);
 
 	union inet_addr local_ip, remote_ip;
 	bool ipv6;
 	u16 local_port, remote_port;
 	u8 remote_mac[ETH_ALEN];
 
-	struct list_head rx; /* rx_np list element */
 	struct work_struct cleanup_work;
+
+#ifdef CONFIG_NETPOLL_TRAP
+	void (*rx_skb_hook)(struct netpoll *np, int source, struct sk_buff *skb,
+			    int offset, int len);
+	struct list_head rx; /* rx_np list element */
+#endif
 };
 
 struct netpoll_info {
 	atomic_t refcnt;
 
-	spinlock_t rx_lock;
 	struct semaphore dev_lock;
-	struct list_head rx_np; /* netpolls that registered an rx_skb_hook */
 
-	struct sk_buff_head neigh_tx; /* list of neigh requests to reply to */
 	struct sk_buff_head txq;
 
 	struct delayed_work tx_work;
 
 	struct netpoll *netpoll;
 	struct rcu_head rcu;
+
+#ifdef CONFIG_NETPOLL_TRAP
+	spinlock_t rx_lock;
+	struct list_head rx_np; /* netpolls that registered an rx_skb_hook */
+	struct sk_buff_head neigh_tx; /* list of neigh requests to reply to */
+#endif
 };
 
 #ifdef CONFIG_NETPOLL
@@ -68,7 +74,6 @@ int netpoll_setup(struct netpoll *np);
 void __netpoll_cleanup(struct netpoll *np);
 void __netpoll_free_async(struct netpoll *np);
 void netpoll_cleanup(struct netpoll *np);
-int __netpoll_rx(struct sk_buff *skb, struct netpoll_info *npinfo);
 void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb,
 			     struct net_device *dev);
 static inline void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
@@ -82,25 +87,12 @@ static inline void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
 #ifdef CONFIG_NETPOLL_TRAP
 int netpoll_trap(void);
 void netpoll_set_trap(int trap);
+int __netpoll_rx(struct sk_buff *skb, struct netpoll_info *npinfo);
 static inline bool netpoll_rx_processing(struct netpoll_info *npinfo)
 {
 	return !list_empty(&npinfo->rx_np);
 }
-#else
-static inline int netpoll_trap(void)
-{
-	return 0;
-}
-static inline void netpoll_set_trap(int trap)
-{
-}
-static inline bool netpoll_rx_processing(struct netpoll_info *npinfo)
-{
-	return false;
-}
-#endif
 
-#ifdef CONFIG_NETPOLL
 static inline bool netpoll_rx_on(struct sk_buff *skb)
 {
 	struct netpoll_info *npinfo = rcu_dereference_bh(skb->dev->npinfo);
@@ -138,6 +130,33 @@ static inline int netpoll_receive_skb(struct sk_buff *skb)
 	return 0;
 }
 
+#else
+static inline int netpoll_trap(void)
+{
+	return 0;
+}
+static inline void netpoll_set_trap(int trap)
+{
+}
+static inline bool netpoll_rx_processing(struct netpoll_info *npinfo)
+{
+	return false;
+}
+static inline bool netpoll_rx(struct sk_buff *skb)
+{
+	return false;
+}
+static inline bool netpoll_rx_on(struct sk_buff *skb)
+{
+	return false;
+}
+static inline int netpoll_receive_skb(struct sk_buff *skb)
+{
+	return 0;
+}
+#endif
+
+#ifdef CONFIG_NETPOLL
 static inline void *netpoll_poll_lock(struct napi_struct *napi)
 {
 	struct net_device *dev = napi->dev;
@@ -166,18 +185,6 @@ static inline bool netpoll_tx_running(struct net_device *dev)
 }
 
 #else
-static inline bool netpoll_rx(struct sk_buff *skb)
-{
-	return false;
-}
-static inline bool netpoll_rx_on(struct sk_buff *skb)
-{
-	return false;
-}
-static inline int netpoll_receive_skb(struct sk_buff *skb)
-{
-	return 0;
-}
 static inline void *netpoll_poll_lock(struct napi_struct *napi)
 {
 	return NULL;
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index b69bb3f1ba3f..adb5768be5a5 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -48,6 +48,7 @@ static struct sk_buff_head skb_pool;
 
 #ifdef CONFIG_NETPOLL_TRAP
 static atomic_t trapped;
+static void netpoll_neigh_reply(struct sk_buff *skb, struct netpoll_info *npinfo);
 #endif
 
 DEFINE_STATIC_SRCU(netpoll_srcu);
@@ -61,7 +62,6 @@ DEFINE_STATIC_SRCU(netpoll_srcu);
 	 MAX_UDP_CHUNK)
 
 static void zap_completion_queue(void);
-static void netpoll_neigh_reply(struct sk_buff *skb, struct netpoll_info *npinfo);
 static void netpoll_async_cleanup(struct work_struct *work);
 
 static unsigned int carrier_timeout = 4;
@@ -109,6 +109,7 @@ static void queue_process(struct work_struct *work)
 	}
 }
 
+#ifdef CONFIG_NETPOLL_TRAP
 static __sum16 checksum_udp(struct sk_buff *skb, struct udphdr *uh,
 			    unsigned short ulen, __be32 saddr, __be32 daddr)
 {
@@ -127,6 +128,7 @@ static __sum16 checksum_udp(struct sk_buff *skb, struct udphdr *uh,
 
 	return __skb_checksum_complete(skb);
 }
+#endif /* CONFIG_NETPOLL_TRAP */
 
 /*
  * Check whether delayed processing was scheduled for our NIC. If so,
@@ -179,6 +181,7 @@ static void poll_napi(struct net_device *dev, int budget)
 	}
 }
 
+#ifdef CONFIG_NETPOLL_TRAP
 static void service_neigh_queue(struct net_device *dev,
 				struct netpoll_info *npi)
 {
@@ -197,6 +200,12 @@ static void service_neigh_queue(struct net_device *dev,
 	while ((skb = skb_dequeue(&npi->neigh_tx)))
 		netpoll_neigh_reply(skb, npi);
 }
+#else /* !CONFIG_NETPOLL_TRAP */
+static inline void service_neigh_queue(struct net_device *dev,
+				struct netpoll_info *npi)
+{
+}
+#endif /* CONFIG_NETPOLL_TRAP */
 
 static void netpoll_poll_dev(struct net_device *dev)
 {
@@ -522,6 +531,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
 }
 EXPORT_SYMBOL(netpoll_send_udp);
 
+#ifdef CONFIG_NETPOLL_TRAP
 static void netpoll_neigh_reply(struct sk_buff *skb, struct netpoll_info *npinfo)
 {
 	int size, type = ARPOP_REPLY;
@@ -900,6 +910,55 @@ out:
 	return 0;
 }
 
+static void netpoll_trap_setup_info(struct netpoll_info *npinfo)
+{
+	INIT_LIST_HEAD(&npinfo->rx_np);
+	spin_lock_init(&npinfo->rx_lock);
+	skb_queue_head_init(&npinfo->neigh_tx);
+}
+
+static void netpoll_trap_cleanup_info(struct netpoll_info *npinfo)
+{
+	skb_queue_purge(&npinfo->neigh_tx);
+}
+
+static void netpoll_trap_setup(struct netpoll *np, struct netpoll_info *npinfo)
+{
+	unsigned long flags;
+	if (np->rx_skb_hook) {
+		spin_lock_irqsave(&npinfo->rx_lock, flags);
+		list_add_tail(&np->rx, &npinfo->rx_np);
+		spin_unlock_irqrestore(&npinfo->rx_lock, flags);
+	}
+}
+
+static void netpoll_trap_cleanup(struct netpoll *np, struct netpoll_info *npinfo)
+{
+	unsigned long flags;
+	if (!list_empty(&npinfo->rx_np)) {
+		spin_lock_irqsave(&npinfo->rx_lock, flags);
+		list_del(&np->rx);
+		spin_unlock_irqrestore(&npinfo->rx_lock, flags);
+	}
+}
+
+#else /* !CONFIG_NETPOLL_TRAP */
+static inline void netpoll_trap_setup_info(struct netpoll_info *npinfo)
+{
+}
+static inline void netpoll_trap_cleanup_info(struct netpoll_info *npinfo)
+{
+}
+static inline 
+void netpoll_trap_setup(struct netpoll *np, struct netpoll_info *npinfo)
+{
+}
+static inline
+void netpoll_trap_cleanup(struct netpoll *np, struct netpoll_info *npinfo)
+{
+}
+#endif /* CONFIG_NETPOLL_TRAP */
+
 void netpoll_print_options(struct netpoll *np)
 {
 	np_info(np, "local port %d\n", np->local_port);
@@ -1023,7 +1082,6 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
 {
 	struct netpoll_info *npinfo;
 	const struct net_device_ops *ops;
-	unsigned long flags;
 	int err;
 
 	np->dev = ndev;
@@ -1045,11 +1103,9 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
 			goto out;
 		}
 
-		INIT_LIST_HEAD(&npinfo->rx_np);
+		netpoll_trap_setup_info(npinfo);
 
-		spin_lock_init(&npinfo->rx_lock);
 		sema_init(&npinfo->dev_lock, 1);
-		skb_queue_head_init(&npinfo->neigh_tx);
 		skb_queue_head_init(&npinfo->txq);
 		INIT_DELAYED_WORK(&npinfo->tx_work, queue_process);
 
@@ -1068,11 +1124,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp)
 
 	npinfo->netpoll = np;
 
-	if (np->rx_skb_hook) {
-		spin_lock_irqsave(&npinfo->rx_lock, flags);
-		list_add_tail(&np->rx, &npinfo->rx_np);
-		spin_unlock_irqrestore(&npinfo->rx_lock, flags);
-	}
+	netpoll_trap_setup(np, npinfo);
 
 	/* last thing to do is link it to the net device structure */
 	rcu_assign_pointer(ndev->npinfo, npinfo);
@@ -1222,7 +1274,7 @@ static void rcu_cleanup_netpoll_info(struct rcu_head *rcu_head)
 	struct netpoll_info *npinfo =
 			container_of(rcu_head, struct netpoll_info, rcu);
 
-	skb_queue_purge(&npinfo->neigh_tx);
+	netpoll_trap_cleanup_info(npinfo);
 	skb_queue_purge(&npinfo->txq);
 
 	/* we can't call cancel_delayed_work_sync here, as we are in softirq */
@@ -1238,7 +1290,6 @@ static void rcu_cleanup_netpoll_info(struct rcu_head *rcu_head)
 void __netpoll_cleanup(struct netpoll *np)
 {
 	struct netpoll_info *npinfo;
-	unsigned long flags;
 
 	/* rtnl_dereference would be preferable here but
 	 * rcu_cleanup_netpoll path can put us in here safely without
@@ -1248,11 +1299,7 @@ void __netpoll_cleanup(struct netpoll *np)
 	if (!npinfo)
 		return;
 
-	if (!list_empty(&npinfo->rx_np)) {
-		spin_lock_irqsave(&npinfo->rx_lock, flags);
-		list_del(&np->rx);
-		spin_unlock_irqrestore(&npinfo->rx_lock, flags);
-	}
+	netpoll_trap_cleanup(np, npinfo);
 
 	synchronize_srcu(&netpoll_srcu);
 
-- 
1.7.5.4

  parent reply	other threads:[~2014-03-15  3:51 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                                 ` Eric W. Biederman [this message]
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                                     ` [PATCH 1/6] netpoll: Remove gfp parameter from __netpoll_setup Eric W. Biederman
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=87r464nmql.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.