mirror of https://gitee.com/openkylin/linux.git
31eb79db42
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:
|
||
---|---|---|
.. | ||
ion | ||
uapi | ||
Kconfig | ||
Makefile | ||
TODO | ||
ashmem.c | ||
ashmem.h | ||
vsoc.c |