net: pktgen: fix pkt_size
authorPaolo Abeni <pabeni@redhat.com>
Fri, 30 Sep 2016 14:56:45 +0000 (16:56 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Oct 2016 05:29:57 +0000 (01:29 -0400)
commit63d75463c91a5b5be7c0aca11ceb45ea5a0ae81d
tree57c39b309be4ed7e304e956d3fb0035d2a291e00
parentb82d44d78480faff7456e9e0999acb9d38666057
net: pktgen: fix pkt_size

The commit 879c7220e828 ("net: pktgen: Observe needed_headroom
of the device") increased the 'pkt_overhead' field value by
LL_RESERVED_SPACE.
As a side effect the generated packet size, computed as:

/* Eth + IPh + UDPh + mpls */
datalen = pkt_dev->cur_pkt_size - 14 - 20 - 8 -
  pkt_dev->pkt_overhead;

is decreased by the same value.
The above changed slightly the behavior of existing pktgen users,
and made the procfs interface somewhat inconsistent.
Fix it by restoring the previous pkt_overhead value and using
LL_RESERVED_SPACE as extralen in skb allocation.
Also, change pktgen_alloc_skb() to only partially reserve
the headroom to allow the caller to prefetch from ll header
start.

v1 -> v2:
 - fixed some typos in the comments

Fixes: 879c7220e828 ("net: pktgen: Observe needed_headroom of the device")
Suggested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c