• Raja Mani's avatar
    ath6kl: Use mutex to protect dma buffer in sync read write · fdb28589
    Raja Mani authored
    Firmware crashes while starting Soft AP in 32 bit x86 platform.
    The reason is that the single dma buffer (ar_sdio->dma_buffer)
    is used in ath6kl_sdio_read_write_sync() for unaligned buffer
    handling and this function is called in the multiple context
    at the same time. So, finally hits dma buffer corruption and
    firmware crash.
    
    Mutex is used to protect dma buffer to avoid data corruption.
    Spin lock can not used to fix this issue since mmc stack
    read/write calls may for sleep.
    
    Observed this issue with recently commited patch
    "ath6kl: Claim sdio function only at appropriate places"
    861dd058
    
    kvalo: change name of mutex to more descriptive and add a comment
    about what it protects
    Signed-off-by: default avatarRaja Mani <rmani@qca.qualcomm.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    fdb28589
sdio.c 34.3 KB