| 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; |