diff options
author | Eric Dumazet <edumazet@google.com> | 2015-02-22 17:03:41 -0800 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-03-14 15:37:12 -0400 |
commit | 539500104f37c687b525eef51efd5cee9efa1c7d (patch) | |
tree | ad4083fe2f1bb3b02865be8d77ccc71e7439ebae /net | |
parent | 4e7a29f315e8a644460e73109c42acc585aeb51e (diff) |
net: pktgen: disable xmit_clone on virtual devices
[ 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: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/pktgen.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index dfb5baa5dc0c..0b320d93fb56 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1134,6 +1134,9 @@ static ssize_t pktgen_if_write(struct file *file, 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; |