linux_dsm_epyc7002/drivers/net/hyperv
Vitaly Kuznetsov 14a03cf80e hv_netvsc: Restore needed_headroom request
Commit c0eb454034 ("hv_netvsc: Don't ask for additional head room in the
skb") got rid of needed_headroom setting for the driver. With the change I
hit the following issue trying to use ptkgen module:

[   57.522021] kernel BUG at net/core/skbuff.c:1128!
[   57.522021] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
...
[   58.721068] Call Trace:
[   58.721068]  [<ffffffffa0144e86>] netvsc_start_xmit+0x4c6/0x8e0 [hv_netvsc]
...
[   58.721068]  [<ffffffffa02f87fc>] ? pktgen_finalize_skb+0x25c/0x2a0 [pktgen]
[   58.721068]  [<ffffffff814f5760>] ? __netdev_alloc_skb+0xc0/0x100
[   58.721068]  [<ffffffffa02f9907>] pktgen_thread_worker+0x257/0x1920 [pktgen]

Basically, we're calling skb_cow_head(skb, RNDIS_AND_PPI_SIZE) and crash on
    if (skb_shared(skb))
        BUG();

We probably need to restore needed_headroom setting (but shrunk to
RNDIS_AND_PPI_SIZE as we don't need more) to request the required headroom
space. In theory, it should not give us performance penalty.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-13 06:04:44 -05:00
..
hyperv_net.h hv_netvsc: Fix book keeping of skb during batching process 2016-01-25 10:51:53 -08:00
Kconfig staging: hv: move hv_netvsc out of staging area 2011-11-29 16:12:36 +09:00
Makefile staging: hv: move hv_netvsc out of staging area 2011-11-29 16:12:36 +09:00
netvsc_drv.c hv_netvsc: Restore needed_headroom request 2016-02-13 06:04:44 -05:00
netvsc.c hv_netvsc: Fix book keeping of skb during batching process 2016-01-25 10:51:53 -08:00
rndis_filter.c hv_netvsc: Eliminate vlan_tci from struct hv_netvsc_packet 2015-12-02 23:43:25 -05:00