• Eric Dumazet's avatar
    iwlwifi: fix skb truesize underestimation · ed90542b
    Eric Dumazet authored
    By default, iwlwifi uses order-1 pages (8 KB) to store incoming frames,
    but doesnt say so in skb->truesize.
    
    This makes very possible to exhaust kernel memory since these skb evade
    normal socket memory accounting.
    
    As struct ieee80211_hdr is going to be pulled before calling IP stack,
    there is no need to use dev_alloc_skb() to reserve NET_SKB_PAD bytes.
    alloc_skb() is ok in this driver, allowing more tailroom.
    
    Pull beginning of frame in skb header, in the hope we can reuse order-1
    pages in the driver immediately for small frames and reduce their
    truesize to the minimum (linear skbs)
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Cc: "John W. Linville" <linville@tuxdriver.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    ed90542b
iwl-trans-pcie-rx.c 42.4 KB