]> git.baikalelectronics.ru Git - kernel.git/commit
staging: android: ion: Support cpu access during dma_buf_detach
authorLiam Mark <lmark@codeaurora.org>
Fri, 18 Jan 2019 18:37:44 +0000 (10:37 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jan 2019 10:38:09 +0000 (11:38 +0100)
commit40af9bab21188d5c0540c5f297b3d4d1643a1c5b
treea1f7be49aed0bd72a89eee2fef17735ba85f2271
parent18a300be7eb870bf1b724fa53120b88e7b52ca73
staging: android: ion: Support cpu access during dma_buf_detach

Often userspace doesn't know when the kernel will be calling dma_buf_detach
on the buffer.
If userpace starts its CPU access at the same time as the sg list is being
freed it could end up accessing the sg list after it has been freed.

Thread A Thread B
- DMA_BUF_IOCTL_SYNC IOCT
 - ion_dma_buf_begin_cpu_access
  - list_for_each_entry
- ion_dma_buf_detatch
 - free_duped_table
   - dma_sync_sg_for_cpu

Fix this by getting the ion_buffer lock before freeing the sg table memory.

Fixes: 8614eada87b4 ("staging: android: ion: Call dma_map_sg for syncing and mapping")
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Acked-by: Laura Abbott <labbott@redhat.com>
Acked-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/ion/ion.c