• Johannes Berg's avatar
    iwlwifi: process multiple frames per RXB · 0c19744c
    Johannes Berg authored
    The flow handler (hardware) can put multiple
    frames into a single RX buffer. To handle
    this, walk the RX buffer and check if there
    are multiple valid packets in it.
    
    To let the upper layer handle this correctly
    introduce rxb_offset() which is needed when
    we pass pages to mac80211 -- we need to know
    the offset into the page there.
    
    Also change the page handling scheme to use
    refcounting. Anyone who needs a page will
    "steal" it, which marks it as having been
    used & refcounts it. The RX handler then has
    to free its own reference and must not reuse
    the page.
    
    Finally, do not set the bit asking the FH to
    give us each packet in a single buffer. This
    really enables the feature.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    0c19744c
iwl-trans-pcie.c 64.6 KB