2017-03-18 1:54 GMT+01:00 Laura Abbott <labbott@xxxxxxxxxx>: > > Hi, > > This is v2 of the series to do some serious Ion clean up in preparation for > moving out of staging. I got good feedback last time so this series mostly > attempts to address that feedback and do more still more cleanup. Highlights: > > - All calls to DMA APIs should now be with a real actual proper device > structure > - Patch to stop setting sg_dma_address manually now included > - Fix for a bug in the query interface > - Removal of custom ioctl interface > - Removal of import interface > - Removal of any notion of using Ion as an in kernel interface. > - Cleanup of ABI so compat interface is no longer needed > - Deletion of a bit more platform code > - Combined heap enumeration and heap registration code up so there are fewer > layers of abstraction > - Some general cleanup and header reduction. > - Removal of both the ion_client and ion_handle structures since these mostly > become redundant. As a result, Ion only returns a dma_buf fd. The overall > result is that the only Ion interfaces are the query ioctl and the alloc > ioctl. > > The following are still TODOs/open problems: > - Sumit's comments about the CMA naming. > - Bindings/platform for chunk and carveout heap > - There was some discussion about making the sg_table duplication generic. I > got bogged down in handling some of the edge cases for generic handling > so I put this aside. Making it generic is still something that should happen. > - More fine-grained support for restricting heap access. There are good > arguments to be made for having a way for having good integration with > selinux and other policy mechanisms. > - While not on the original list, there is still no good good test standalone > test framework. I noticed that the existing ion_test was fairly generic so I > proposed moving it to dma_buf. Daniel Vetter suggested just using the VGEM > module instead. Ideally, the tests can live as part of some other existing > test set (drm tests maybe?) > > Feedback appreciated as always. Thanks for this v2, it really clean up and simplify ION. For me the last question mark is about restricting heap access with SElinux policy. Since I haven't see other proposals I still believe that we should have a /dev/ion/$heapname per heap. > > Thanks, > Laura > > Laura Abbott (21): > cma: Store a name in the cma structure > cma: Introduce cma_for_each_area > staging: android: ion: Remove dmap_cnt > staging: android: ion: Remove alignment from allocation field > staging: android: ion: Duplicate sg_table > staging: android: ion: Call dma_map_sg for syncing and mapping > staging: android: ion: Remove page faulting support > staging: android: ion: Remove crufty cache support > staging: android: ion: Remove custom ioctl interface > staging: android: ion: Remove import interface > staging: android: ion: Remove duplicate ION_IOC_MAP > staging: android: ion: Remove old platform support > staging: android: ion: Use CMA APIs directly > staging: android: ion: Stop butchering the DMA address > staging: android: ion: Break the ABI in the name of forward progress > staging: android: ion: Get rid of ion_phys_addr_t > staging: android: ion: Collapse internal header files > staging: android: ion: Rework heap registration/enumeration > staging: android: ion: Drop ion_map_kernel interface > staging: android: ion: Remove ion_handle and ion_client > staging: android: ion: Set query return value > > drivers/base/dma-contiguous.c | 5 +- > drivers/staging/android/ion/Kconfig | 56 +- > drivers/staging/android/ion/Makefile | 18 +- > drivers/staging/android/ion/compat_ion.c | 195 ---- > drivers/staging/android/ion/compat_ion.h | 29 - > drivers/staging/android/ion/hisilicon/Kconfig | 5 - > drivers/staging/android/ion/hisilicon/Makefile | 1 - > drivers/staging/android/ion/hisilicon/hi6220_ion.c | 113 -- > drivers/staging/android/ion/ion-ioctl.c | 85 +- > drivers/staging/android/ion/ion.c | 1164 +++----------------- > drivers/staging/android/ion/ion.h | 393 +++++-- > drivers/staging/android/ion/ion_carveout_heap.c | 37 +- > drivers/staging/android/ion/ion_chunk_heap.c | 27 +- > drivers/staging/android/ion/ion_cma_heap.c | 125 +-- > drivers/staging/android/ion/ion_dummy_driver.c | 156 --- > drivers/staging/android/ion/ion_heap.c | 68 -- > drivers/staging/android/ion/ion_of.c | 184 ---- > drivers/staging/android/ion/ion_of.h | 37 - > drivers/staging/android/ion/ion_page_pool.c | 6 +- > drivers/staging/android/ion/ion_priv.h | 473 -------- > drivers/staging/android/ion/ion_system_heap.c | 53 +- > drivers/staging/android/ion/ion_test.c | 305 ----- > drivers/staging/android/ion/tegra/Makefile | 1 - > drivers/staging/android/ion/tegra/tegra_ion.c | 80 -- > drivers/staging/android/uapi/ion.h | 86 +- > drivers/staging/android/uapi/ion_test.h | 69 -- > include/linux/cma.h | 6 +- > mm/cma.c | 25 +- > mm/cma.h | 1 + > mm/cma_debug.c | 2 +- > 30 files changed, 610 insertions(+), 3195 deletions(-) > delete mode 100644 drivers/staging/android/ion/compat_ion.c > delete mode 100644 drivers/staging/android/ion/compat_ion.h > delete mode 100644 drivers/staging/android/ion/hisilicon/Kconfig > delete mode 100644 drivers/staging/android/ion/hisilicon/Makefile > delete mode 100644 drivers/staging/android/ion/hisilicon/hi6220_ion.c > delete mode 100644 drivers/staging/android/ion/ion_dummy_driver.c > delete mode 100644 drivers/staging/android/ion/ion_of.c > delete mode 100644 drivers/staging/android/ion/ion_of.h > delete mode 100644 drivers/staging/android/ion/ion_priv.h > delete mode 100644 drivers/staging/android/ion/ion_test.c > delete mode 100644 drivers/staging/android/ion/tegra/Makefile > delete mode 100644 drivers/staging/android/ion/tegra/tegra_ion.c > delete mode 100644 drivers/staging/android/uapi/ion_test.h > > -- > 2.7.4 > -- Benjamin Gaignard Graphic Study Group Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href