• Akinobu Mita's avatar
    dmaengine: xilinx: avoid memory corruption for device_prep_dma_memcpy() · db6a3d03
    Akinobu Mita authored
    The device_prep_dma_memcpy() callback for this driver allocates a new
    xilinx_dma_tx_descriptor whose TX segments list is initialized as empty,
    but then gets invalid TX segment pointer by list_last_entry() from the
    empty TX segments list and memory corruption happens by the attempt to
    update the next descriptor in invalid TX segment pointer.
    
    This removes unnecessary memory access for nonexistent tail TX segment
    which causes memory corruption.
    
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
    Cc: Michal Simek <monstr@monstr.eu>
    Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    db6a3d03
xilinx_dma.c 72.7 KB