blob: febebe667ef286f1c216e36efabdc7da00e39049 [file] [log] [blame]
From foo@baz Wed Mar 11 11:44:33 CET 2015
From: Eric Dumazet <edumazet@google.com>
Date: Sun, 22 Feb 2015 17:03:41 -0800
Subject: net: pktgen: disable xmit_clone on virtual devices
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit 52d6c8c6ca125872459054daa70f2f1c698c8e75 ]
Trying to use burst capability (aka xmit_more) on a virtual device
like bonding is not supported.
For example, skb might be queued multiple times on a qdisc, with
various list corruptions.
Fixes: 38b2cf2982dc ("net: pktgen: packet bursting via skb->xmit_more")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/core/pktgen.c | 3 +++
1 file changed, 3 insertions(+)
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -1134,6 +1134,9 @@ static ssize_t pktgen_if_write(struct fi
return len;
i += len;
+ if ((value > 1) &&
+ (!(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING)))
+ return -ENOTSUPP;
pkt_dev->burst = value < 1 ? 1 : value;
sprintf(pg_result, "OK: burst=%d", pkt_dev->burst);
return count;