From: Eric Dumazet Date: Mon, 23 Feb 2015 01:03:41 +0000 (-0800) Subject: net: pktgen: disable xmit_clone on virtual devices X-Git-Tag: MMI-PSA29.97-13-9~10520^2~58 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=52d6c8c6ca125872459054daa70f2f1c698c8e75;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git net: pktgen: disable xmit_clone on virtual devices 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 Cc: Alexei Starovoitov Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller --- diff --git a/net/core/pktgen.c b/net/core/pktgen.c index b4899f5b7388..508155b283dd 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;