• Luis R. Rodriguez's avatar
    ath9k: Fix SW-IOMMU bounce buffer starvation · ca0c7e51
    Luis R. Rodriguez authored
    This should fix the SW-IOMMU bounce buffer starvation
    seen ok kernel.org bugzilla 11811:
    
    http://bugzilla.kernel.org/show_bug.cgi?id=11811
    
    Users on MacBook Pro 3.1/MacBook v2 would see something like:
    
    DMA: Out of SW-IOMMU space for 4224 bytes at device 0000:0b:00.0
    
    Unfortunately its only easy to trigger on MacBook Pro 3.1/MacBook v2
    so far so its difficult to debug (even with swiotlb=force).
    
    We were pci_unmap_single()'ing less bytes than what we called
    for with pci_map_single() and as such we were starving
    the swiotlb from its 64MB amount of bounce buffers. We remain
    consistent and now always use sc->rxbufsize for RX. While at
    it we update the beacon DMA maps as well to only use the data
    portion of the skb, previous to this we were pci_map_single()'ing
    more data for beaconing than what we tell the hardware it can use,
    therefore pushing more iotlb abuse.
    
    Still not sure why this is so easily triggerable on
    MacBook Pro 3.1, it may be the hardware configuration
    tends to use more memory > 3GB mark for DMA.
    Signed-off-by: default avatarMaciej Zenczykowski <zenczykowski@gmail.com>
    Signed-off-by: default avatarBennyam Malavazi <Bennyam.Malavazi@atheros.com>
    Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    ca0c7e51
beacon.c 25 KB