• Daniel Stone's avatar
    brcmfmac: Don't grow SKB by negative size · 58f36b45
    Daniel Stone authored
    The commit to rework the headroom check in start_xmit() now calls
    pxskb_expand_head() unconditionally if the header is CoW. Unfortunately,
    it does so with the delta between the extant headroom and the header
    length, which may be negative if there is already sufficient headroom.
    
    pskb_expand_head() does allow for size being 0, in which case it just
    copies, so clamp the header delta to zero.
    
    Opening Chrome (and all my tabs) on a PCIE device was enough to reliably
    hit this.
    
    Fixes: 270a6c1f ("brcmfmac: rework headroom check in .start_xmit()")
    Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
    Cc: Arend Van Spriel <arend.vanspriel@broadcom.com>
    Cc: James Hughes <james.hughes@raspberrypi.org>
    Cc: Hante Meuleman <hante.meuleman@broadcom.com>
    Cc: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
    Cc: Franky Lin <franky.lin@broadcom.com>
    Tested-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    58f36b45
core.c 28.7 KB