• Vitaly Kuznetsov's avatar
    hv_netvsc: Restore needed_headroom request · 14a03cf8
    Vitaly Kuznetsov authored
    Commit c0eb4540 ("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: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    14a03cf8
netvsc_drv.c 30.2 KB