All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Fix double call of dev_queue_xmit
@ 2017-01-28  9:25 Sven Eckelmann
  2017-01-28  9:25 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Fix includes for IS_ERR/ERR_PTR Sven Eckelmann
  2017-01-28  9:43 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Fix double call of dev_queue_xmit Sven Eckelmann
  0 siblings, 2 replies; 6+ messages in thread
From: Sven Eckelmann @ 2017-01-28  9:25 UTC (permalink / raw)
  To: b.a.t.m.a.n

The net_xmit_eval has side effects because it is not making sure that e
isn't evaluated twice.

    #define net_xmit_eval(e)        ((e) == NET_XMIT_CN ? 0 : (e))

The code proposed by David Miller

    return net_xmit_eval(dev_queue_xmit(skb));

will therefore get transformed into

    return ((dev_queue_xmit(skb)) == NET_XMIT_CN ? 0 : (dev_queue_xmit(skb)))

dev_queue_xmit will therefore be tried again (with an already consumed skb)
whenever the return code is not NET_XMIT_CN.

Fixes: 17efab9867c5 ("batman-adv: Simplify handling of NET_XMIT_CN")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/send.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index d9b28890..1489ec27 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -77,6 +77,7 @@ int batadv_send_skb_packet(struct sk_buff *skb,
 {
 	struct batadv_priv *bat_priv;
 	struct ethhdr *ethhdr;
+	int ret;
 
 	bat_priv = netdev_priv(hard_iface->soft_iface);
 
@@ -115,7 +116,8 @@ int batadv_send_skb_packet(struct sk_buff *skb,
 	 * congestion and traffic shaping, it drops and returns NET_XMIT_DROP
 	 * (which is > 0). This will not be treated as an error.
 	 */
-	return net_xmit_eval(dev_queue_xmit(skb));
+	ret = dev_queue_xmit(skb);
+	return net_xmit_eval(ret);
 send_skb_err:
 	kfree_skb(skb);
 	return NET_XMIT_DROP;
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH 0/2] pull request for net-next: batman-adv 2017-01-28
@ 2017-01-28 10:56 Simon Wunderlich
  2017-01-28 10:56 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Fix includes for IS_ERR/ERR_PTR Simon Wunderlich
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Wunderlich @ 2017-01-28 10:56 UTC (permalink / raw)
  To: davem-fT/PcQaiUtIeIZ0/mPfg9Q
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r

Hi David,

here is another pull request for batman-adv in net-next. One of them fixes
a regression introduced by a patch in the previous pull request two days ago.

Please pull or let me know of any problem!

Thank you,
      Simon

The following changes since commit c33705188c493b7de3b8dc2956d67de91b444727:

  batman-adv: Treat NET_XMIT_CN as transmit successfully (2017-01-26 08:41:18 +0100)

are available in the git repository at:

  git://git.open-mesh.org/linux-merge.git tags/batadv-next-for-davem-20170128

for you to fetch changes up to 3e7514afc7d728dd47c5fe9d7a1f5216fe659cda:

  batman-adv: Fix includes for IS_ERR/ERR_PTR (2017-01-28 10:40:35 +0100)

----------------------------------------------------------------
Here are two fixes for batman-adv for net-next:

 - fix double call of dev_queue_xmit(), caused by the recent introduction
   of net_xmit_eval(), by Sven Eckelmann

 - Fix includes for IS_ERR/ERR_PTR, by Sven Eckelmann

----------------------------------------------------------------
Sven Eckelmann (2):
      batman-adv: Fix double call of dev_queue_xmit
      batman-adv: Fix includes for IS_ERR/ERR_PTR

 net/batman-adv/debugfs.c  | 2 +-
 net/batman-adv/send.c     | 4 +++-
 net/batman-adv/tp_meter.c | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-28 21:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-28  9:25 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Fix double call of dev_queue_xmit Sven Eckelmann
2017-01-28  9:25 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Fix includes for IS_ERR/ERR_PTR Sven Eckelmann
2017-01-28 21:22   ` Linus Lüssing
2017-01-28 21:24     ` Linus Lüssing
2017-01-28  9:43 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Fix double call of dev_queue_xmit Sven Eckelmann
2017-01-28 10:56 [PATCH 0/2] pull request for net-next: batman-adv 2017-01-28 Simon Wunderlich
2017-01-28 10:56 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Fix includes for IS_ERR/ERR_PTR Simon Wunderlich

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.