• Bruno Randolf's avatar
    ath5k: consistently use rx_bufsize for RX DMA · b5eae9ff
    Bruno Randolf authored
    We should use the same buffer size we set up for DMA also in the hardware
    descriptor. Previously we used common->rx_bufsize for setting up the DMA
    mapping, but used skb_tailroom(skb) for the size we tell to the hardware in the
    descriptor itself. The problem is that skb_tailroom(skb) can give us a larger
    value than the size we set up for DMA before. This allows the hardware to write
    into memory locations not set up for DMA. In practice this should rarely happen
    because all packets should be smaller than the maximum 802.11 packet size.
    
    On the tested platform rx_bufsize is 2528, and we allocated an skb of 2559
    bytes length (including padding for cache alignment) but sbk_tailroom() was
    2592. Just consistently use rx_bufsize for all RX DMA memory sizes.
    
    Also use the return value of the descriptor setup function.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarBruno Randolf <br1@einfach.org>
    Reviewed-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    b5eae9ff
base.c 92.2 KB