1
0
Fork 0
alistair23-linux/drivers/staging/android
Liam Mark 31eb79db42 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: 2a55e7b5e5 ("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>
2019-01-22 11:38:09 +01:00
..
ion staging: android: ion: Support cpu access during dma_buf_detach 2019-01-22 11:38:09 +01:00
uapi staging: android: ion: Fix license identifier comment format 2018-05-08 13:34:39 +02:00
Kconfig staging: android: Kconfig; Remove excessive hyphens 2018-05-08 13:24:15 +02:00
Makefile staging: Android: Add 'vsoc' driver for cuttlefish. 2018-04-23 14:51:37 +02:00
TODO staging: Android: vsoc: Create wc kernel mapping for region shm. 2018-05-03 13:53:03 -07:00
ashmem.c staging: android: ashmem: doc: Fix spelling 2018-12-19 10:40:51 +01:00
ashmem.h staging: android: Clean up license identifiers 2018-05-08 13:24:15 +02:00
vsoc.c staging: android/vsoc: stop using 'timespec' 2018-06-28 21:57:06 +09:00