• Larry Finger's avatar
    rtlwifi: Fix kernel panic resulting from RX buffer allocation failure · a9e12869
    Larry Finger authored
    To handle amsdu_8k capability, the PCI routine of this driver must
    allocate receive buffers of order 2. Under heavy load, this causes
    fragmentation of memory. The present code releases the current buffer
    before checking to see if a new one is availble. Recovery from
    allocation failures is not possible, which results in kernel panics.
    
    The fix is to reorder the code to check that a new buffer can be
    allocated before the old one is released. If not possible, the
    received frame is dropped and the old one is reused. Without this
    change, it is impossible to transfer a 2 GB file without a kernel panic.
    Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>              [2.6.{37,38,39}]
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    a9e12869
pci.c 53.6 KB