• Ashok Raj Nagarajan's avatar
    ath10k: fix diag_read to collect data for larger memory · 1e56d512
    Ashok Raj Nagarajan authored
    diag_read uses dma_alloc_coherent to allocate memory requested by the
    caller. If this memory requested is larger, more than DIAG_TRANSFER_LIMIT
    (2K), then it is likely that we may not get the requested memory and we
    would fail.
    
    To solve this, request dma_alloc_coherent for only DIAG_TRANSFER_LIMIT, and
    reuse this buffer multiple times as needed to copy the data requested in
    smaller chunks of size not more than DIAG_TRANSFER_LIMIT. Previously we
    were reading into the caller's only after getting the complete requested
    data.
    
    Fixes: 68c03249 ('ath10k: convert pci_alloc_consistent() to dma_alloc_coherent()')
    Signed-off-by: default avatarAshok Raj Nagarajan <arnagara@qti.qualcomm.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    1e56d512
pci.c 79.5 KB