Re: [PATCH net] hv_netvsc: Restore needed_headroom request

From: David Miller
Date: Sat Feb 13 2016 - 06:05:18 EST


From: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Fri, 5 Feb 2016 17:29:08 +0100

> Commit c0eb454034aa ("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@xxxxxxxxxx>

Applied, thanks.