Message ID | YU8oVDFoeD5YYeDT@kroah.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dma-buf: move dma-buf symbols into the DMA_BUF module namespace | expand |
On Sat, Sep 25, 2021 at 3:47 PM Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > > In order to better track where in the kernel the dma-buf code is used, > put the symbols in the namespace DMA_BUF and modify all users of the > symbols to properly import the namespace to not break the build at the > same time. > > Now the output of modinfo shows the use of these symbols, making it > easier to watch for users over time: > > $ modinfo drivers/misc/fastrpc.ko | grep import > import_ns: DMA_BUF > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > Cc: "Christian König" <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Arnd Bergmann <arnd@arndb.de> > The topic of dma-buf came up in the Maintainer's summit yesterday, and > one comment was to put the symbols in their own module namespace, to > make it easier to notice and track who was using them. This patch does > so, and finds some "interesting" users of the api already in the tree. > > Only test-built on x86 allmodconfig, don't know what other arches will > pick up, will let 0-day run on it for a bit... I've added it to my build box doing arm32/arm64/x86 randconfig tests, if it doesn't report anything by Monday, it's probably good in that regard. Arnd
On Sat, Sep 25, 2021 at 7:41 PM Arnd Bergmann <arnd@arndb.de> wrote: > On Sat, Sep 25, 2021 at 3:47 PM Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > > Only test-built on x86 allmodconfig, don't know what other arches will > > pick up, will let 0-day run on it for a bit... > > I've added it to my build box doing arm32/arm64/x86 randconfig tests, > if it doesn't report anything by Monday, it's probably good in that regard. It found these two, please fold into your patch: diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c index 21909642ee4c..711f0cca6f9c 100644 --- a/drivers/gpu/drm/armada/armada_gem.c +++ b/drivers/gpu/drm/armada/armada_gem.c @@ -15,6 +15,8 @@ #include "armada_gem.h" #include "armada_ioctlP.h" +MODULE_IMPORT_NS(DMA_BUF); + static vm_fault_t armada_gem_vm_fault(struct vm_fault *vmf) { struct drm_gem_object *gobj = vmf->vma->vm_private_data; diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c index f4cde3a169d8..809f86cfc540 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c @@ -11,6 +11,8 @@ #include "omap_drv.h" +MODULE_IMPORT_NS(DMA_BUF); + /* ----------------------------------------------------------------------------- * DMABUF Export */
Am 25.09.21 um 15:47 schrieb Greg Kroah-Hartman: > In order to better track where in the kernel the dma-buf code is used, > put the symbols in the namespace DMA_BUF and modify all users of the > symbols to properly import the namespace to not break the build at the > same time. > > Now the output of modinfo shows the use of these symbols, making it > easier to watch for users over time: > > $ modinfo drivers/misc/fastrpc.ko | grep import > import_ns: DMA_BUF > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > Cc: "Christian König" <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Christian König <christian.koenig@amd.com> > --- > > The topic of dma-buf came up in the Maintainer's summit yesterday, and > one comment was to put the symbols in their own module namespace, to > make it easier to notice and track who was using them. This patch does > so, and finds some "interesting" users of the api already in the tree. > > Only test-built on x86 allmodconfig, don't know what other arches will > pick up, will let 0-day run on it for a bit... > > Comments? > > > > drivers/dma-buf/dma-buf.c | 34 +++++++++---------- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++ > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 ++ > drivers/gpu/drm/drm_prime.c | 3 ++ > drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 ++ > drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++ > drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 ++ > drivers/gpu/drm/tegra/gem.c | 3 ++ > drivers/gpu/drm/vmwgfx/ttm_object.c | 3 ++ > drivers/infiniband/core/umem_dmabuf.c | 3 ++ > .../media/common/videobuf2/videobuf2-core.c | 1 + > .../common/videobuf2/videobuf2-dma-contig.c | 1 + > .../media/common/videobuf2/videobuf2-dma-sg.c | 1 + > .../common/videobuf2/videobuf2-vmalloc.c | 1 + > drivers/misc/fastrpc.c | 1 + > .../staging/media/tegra-vde/dmabuf-cache.c | 3 ++ > drivers/tee/tee_shm.c | 3 ++ > drivers/virtio/virtio_dma_buf.c | 1 + > drivers/xen/gntdev-dmabuf.c | 3 ++ > samples/vfio-mdev/mbochs.c | 1 + > 20 files changed, 60 insertions(+), 17 deletions(-) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index 63d32261b63f..6c2b5ea828a6 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -610,7 +610,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) > module_put(exp_info->owner); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_export); > +EXPORT_SYMBOL_NS_GPL(dma_buf_export, DMA_BUF); > > /** > * dma_buf_fd - returns a file descriptor for the given struct dma_buf > @@ -634,7 +634,7 @@ int dma_buf_fd(struct dma_buf *dmabuf, int flags) > > return fd; > } > -EXPORT_SYMBOL_GPL(dma_buf_fd); > +EXPORT_SYMBOL_NS_GPL(dma_buf_fd, DMA_BUF); > > /** > * dma_buf_get - returns the struct dma_buf related to an fd > @@ -660,7 +660,7 @@ struct dma_buf *dma_buf_get(int fd) > > return file->private_data; > } > -EXPORT_SYMBOL_GPL(dma_buf_get); > +EXPORT_SYMBOL_NS_GPL(dma_buf_get, DMA_BUF); > > /** > * dma_buf_put - decreases refcount of the buffer > @@ -679,7 +679,7 @@ void dma_buf_put(struct dma_buf *dmabuf) > > fput(dmabuf->file); > } > -EXPORT_SYMBOL_GPL(dma_buf_put); > +EXPORT_SYMBOL_NS_GPL(dma_buf_put, DMA_BUF); > > static void mangle_sg_table(struct sg_table *sg_table) > { > @@ -810,7 +810,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev, > dma_buf_detach(dmabuf, attach); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_dynamic_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_dynamic_attach, DMA_BUF); > > /** > * dma_buf_attach - Wrapper for dma_buf_dynamic_attach > @@ -825,7 +825,7 @@ struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf, > { > return dma_buf_dynamic_attach(dmabuf, dev, NULL, NULL); > } > -EXPORT_SYMBOL_GPL(dma_buf_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_attach, DMA_BUF); > > static void __unmap_dma_buf(struct dma_buf_attachment *attach, > struct sg_table *sg_table, > @@ -871,7 +871,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach) > > kfree(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_detach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_detach, DMA_BUF); > > /** > * dma_buf_pin - Lock down the DMA-buf > @@ -901,7 +901,7 @@ int dma_buf_pin(struct dma_buf_attachment *attach) > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_pin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_pin, DMA_BUF); > > /** > * dma_buf_unpin - Unpin a DMA-buf > @@ -922,7 +922,7 @@ void dma_buf_unpin(struct dma_buf_attachment *attach) > if (dmabuf->ops->unpin) > dmabuf->ops->unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unpin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unpin, DMA_BUF); > > /** > * dma_buf_map_attachment - Returns the scatterlist table of the attachment; > @@ -1012,7 +1012,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, > #endif /* CONFIG_DMA_API_DEBUG */ > return sg_table; > } > -EXPORT_SYMBOL_GPL(dma_buf_map_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_map_attachment, DMA_BUF); > > /** > * dma_buf_unmap_attachment - unmaps and decreases usecount of the buffer;might > @@ -1048,7 +1048,7 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach, > !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) > dma_buf_unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unmap_attachment, DMA_BUF); > > /** > * dma_buf_move_notify - notify attachments that DMA-buf is moving > @@ -1068,7 +1068,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf) > if (attach->importer_ops) > attach->importer_ops->move_notify(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_move_notify); > +EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, DMA_BUF); > > /** > * DOC: cpu access > @@ -1212,7 +1212,7 @@ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_begin_cpu_access, DMA_BUF); > > /** > * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from the > @@ -1240,7 +1240,7 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, DMA_BUF); > > > /** > @@ -1282,7 +1282,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma, > > return dmabuf->ops->mmap(dmabuf, vma); > } > -EXPORT_SYMBOL_GPL(dma_buf_mmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_mmap, DMA_BUF); > > /** > * dma_buf_vmap - Create virtual mapping for the buffer object into kernel > @@ -1336,7 +1336,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map) > mutex_unlock(&dmabuf->lock); > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_vmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vmap, DMA_BUF); > > /** > * dma_buf_vunmap - Unmap a vmap obtained by dma_buf_vmap. > @@ -1360,7 +1360,7 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map) > } > mutex_unlock(&dmabuf->lock); > } > -EXPORT_SYMBOL_GPL(dma_buf_vunmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vunmap, DMA_BUF); > > #ifdef CONFIG_DEBUG_FS > static int dma_buf_debug_show(struct seq_file *s, void *unused) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index 38dade421d46..38e144504649 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -41,6 +41,7 @@ > #include <linux/swiotlb.h> > #include <linux/dma-buf.h> > #include <linux/sizes.h> > +#include <linux/module.h> > > #include <drm/ttm/ttm_bo_api.h> > #include <drm/ttm/ttm_bo_driver.h> > @@ -59,6 +60,8 @@ > #include "amdgpu_res_cursor.h" > #include "bif/bif_4_1_d.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AMDGPU_TTM_VRAM_MAX_DW_READ (size_t)128 > > static int amdgpu_ttm_backend_bind(struct ttm_device *bdev, > diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > index 3c75d79dbb65..746fd8c73845 100644 > --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c > +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > @@ -6,6 +6,7 @@ > */ > > #include <linux/slab.h> > +#include <linux/module.h> > > #include <drm/drm_damage_helper.h> > #include <drm/drm_fb_helper.h> > @@ -17,6 +18,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AFBC_HEADER_SIZE 16 > #define AFBC_TH_LAYOUT_ALIGNMENT 8 > #define AFBC_HDR_ALIGN 64 > diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c > index deb23dbec8b5..d8ba95744410 100644 > --- a/drivers/gpu/drm/drm_prime.c > +++ b/drivers/gpu/drm/drm_prime.c > @@ -29,6 +29,7 @@ > #include <linux/export.h> > #include <linux/dma-buf.h> > #include <linux/rbtree.h> > +#include <linux/module.h> > > #include <drm/drm.h> > #include <drm/drm_drv.h> > @@ -39,6 +40,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * DOC: overview and lifetime rules > * > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > index 6d8bed9c739d..6788ea8490d1 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > @@ -5,10 +5,13 @@ > > #include <drm/drm_prime.h> > #include <linux/dma-buf.h> > +#include <linux/module.h> > > #include "etnaviv_drv.h" > #include "etnaviv_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static struct lock_class_key etnaviv_prime_lock_class; > > struct sg_table *etnaviv_gem_prime_get_sg_table(struct drm_gem_object *obj) > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index 4396224227d1..0a0c042a3155 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -9,6 +9,7 @@ > #include <linux/dma-buf.h> > #include <linux/pfn_t.h> > #include <linux/shmem_fs.h> > +#include <linux/module.h> > > #include <drm/drm_prime.h> > #include <drm/drm_vma_manager.h> > @@ -17,6 +18,8 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap) > { > struct drm_device *dev = exynos_gem->base.dev; > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > index afa34111de02..abb854281347 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > @@ -7,11 +7,14 @@ > #include <linux/dma-buf.h> > #include <linux/highmem.h> > #include <linux/dma-resv.h> > +#include <linux/module.h> > > #include "i915_drv.h" > #include "i915_gem_object.h" > #include "i915_scatterlist.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > I915_SELFTEST_DECLARE(static bool force_different_devices;) > > static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) > diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c > index 6ec598f5d5b3..d38fd7e12b57 100644 > --- a/drivers/gpu/drm/tegra/gem.c > +++ b/drivers/gpu/drm/tegra/gem.c > @@ -12,6 +12,7 @@ > > #include <linux/dma-buf.h> > #include <linux/iommu.h> > +#include <linux/module.h> > > #include <drm/drm_drv.h> > #include <drm/drm_prime.h> > @@ -20,6 +21,8 @@ > #include "drm.h" > #include "gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void tegra_bo_put(struct host1x_bo *bo) > { > struct tegra_bo *obj = host1x_to_tegra_bo(bo); > diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c b/drivers/gpu/drm/vmwgfx/ttm_object.c > index 04789b2bb2a2..899945f54dc7 100644 > --- a/drivers/gpu/drm/vmwgfx/ttm_object.c > +++ b/drivers/gpu/drm/vmwgfx/ttm_object.c > @@ -48,8 +48,11 @@ > #include <linux/spinlock.h> > #include <linux/slab.h> > #include <linux/atomic.h> > +#include <linux/module.h> > #include "ttm_object.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * struct ttm_object_file > * > diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c > index e824baf4640d..2d14929543af 100644 > --- a/drivers/infiniband/core/umem_dmabuf.c > +++ b/drivers/infiniband/core/umem_dmabuf.c > @@ -6,9 +6,12 @@ > #include <linux/dma-buf.h> > #include <linux/dma-resv.h> > #include <linux/dma-mapping.h> > +#include <linux/module.h> > > #include "uverbs.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) > { > struct sg_table *sgt; > diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c > index 508ac295eb06..773c68dcd158 100644 > --- a/drivers/media/common/videobuf2/videobuf2-core.c > +++ b/drivers/media/common/videobuf2/videobuf2-core.c > @@ -2978,3 +2978,4 @@ EXPORT_SYMBOL_GPL(vb2_thread_stop); > MODULE_DESCRIPTION("Media buffer core framework"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>, Marek Szyprowski"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > index a7f61ba85440..9a1a9baca2e4 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > @@ -755,3 +755,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); > MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > index c5b06a509566..db90ebb8950f 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > @@ -666,3 +666,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_sg_memops); > MODULE_DESCRIPTION("dma scatter/gather memory handling routines for videobuf2"); > MODULE_AUTHOR("Andrzej Pietrasiewicz"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > index 83f95258ec8c..fa983897d0e9 100644 > --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > @@ -444,3 +444,4 @@ EXPORT_SYMBOL_GPL(vb2_vmalloc_memops); > MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index beda610e6b30..fa5c067f1c1e 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -1763,3 +1763,4 @@ static void fastrpc_exit(void) > module_exit(fastrpc_exit); > > MODULE_LICENSE("GPL v2"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/staging/media/tegra-vde/dmabuf-cache.c b/drivers/staging/media/tegra-vde/dmabuf-cache.c > index a93b317885bf..a98d03419b8f 100644 > --- a/drivers/staging/media/tegra-vde/dmabuf-cache.c > +++ b/drivers/staging/media/tegra-vde/dmabuf-cache.c > @@ -12,9 +12,12 @@ > #include <linux/sched.h> > #include <linux/slab.h> > #include <linux/workqueue.h> > +#include <linux/module.h> > > #include "vde.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > struct tegra_vde_cache_entry { > enum dma_data_direction dma_dir; > struct dma_buf_attachment *a; > diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c > index 8a9384a64f3e..8a8deb95e918 100644 > --- a/drivers/tee/tee_shm.c > +++ b/drivers/tee/tee_shm.c > @@ -10,8 +10,11 @@ > #include <linux/slab.h> > #include <linux/tee_drv.h> > #include <linux/uio.h> > +#include <linux/module.h> > #include "tee_private.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void release_registered_pages(struct tee_shm *shm) > { > if (shm->pages) { > diff --git a/drivers/virtio/virtio_dma_buf.c b/drivers/virtio/virtio_dma_buf.c > index 5127a2f0c986..2521a75009c3 100644 > --- a/drivers/virtio/virtio_dma_buf.c > +++ b/drivers/virtio/virtio_dma_buf.c > @@ -86,3 +86,4 @@ int virtio_dma_buf_get_uuid(struct dma_buf *dma_buf, > EXPORT_SYMBOL(virtio_dma_buf_get_uuid); > > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c > index 4c13cbc99896..12e380db7f55 100644 > --- a/drivers/xen/gntdev-dmabuf.c > +++ b/drivers/xen/gntdev-dmabuf.c > @@ -14,6 +14,7 @@ > #include <linux/slab.h> > #include <linux/types.h> > #include <linux/uaccess.h> > +#include <linux/module.h> > > #include <xen/xen.h> > #include <xen/grant_table.h> > @@ -21,6 +22,8 @@ > #include "gntdev-common.h" > #include "gntdev-dmabuf.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #ifndef GRANT_INVALID_REF > /* > * Note on usage of grant reference 0 as invalid grant reference: > diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c > index c313ab4d1f4e..a83be6cd162f 100644 > --- a/samples/vfio-mdev/mbochs.c > +++ b/samples/vfio-mdev/mbochs.c > @@ -1493,5 +1493,6 @@ static void __exit mbochs_dev_exit(void) > mbochs_class = NULL; > } > > +MODULE_IMPORT_NS(DMA_BUF); > module_init(mbochs_dev_init) > module_exit(mbochs_dev_exit)
Hello Greg, Thanks for the patch! On Sat, 25 Sept 2021 at 19:17, Greg Kroah-Hartman < gregkh@linuxfoundation.org> wrote: > In order to better track where in the kernel the dma-buf code is used, > put the symbols in the namespace DMA_BUF and modify all users of the > symbols to properly import the namespace to not break the build at the > same time. > > Now the output of modinfo shows the use of these symbols, making it > easier to watch for users over time: > > $ modinfo drivers/misc/fastrpc.ko | grep import > import_ns: DMA_BUF > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > Cc: "Christian König" <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > With the addition of the 2 misses found by Arnd, please feel free to add my Acked-by: Sumit Semwal <sumit.semwal@linaro.org> > --- > > The topic of dma-buf came up in the Maintainer's summit yesterday, and > one comment was to put the symbols in their own module namespace, to > make it easier to notice and track who was using them. This patch does > so, and finds some "interesting" users of the api already in the tree. > > Only test-built on x86 allmodconfig, don't know what other arches will > pick up, will let 0-day run on it for a bit... > > Comments? > > > drivers/dma-buf/dma-buf.c | 34 +++++++++---------- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++ > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 ++ > drivers/gpu/drm/drm_prime.c | 3 ++ > drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 ++ > drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++ > drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 ++ > drivers/gpu/drm/tegra/gem.c | 3 ++ > drivers/gpu/drm/vmwgfx/ttm_object.c | 3 ++ > drivers/infiniband/core/umem_dmabuf.c | 3 ++ > .../media/common/videobuf2/videobuf2-core.c | 1 + > .../common/videobuf2/videobuf2-dma-contig.c | 1 + > .../media/common/videobuf2/videobuf2-dma-sg.c | 1 + > .../common/videobuf2/videobuf2-vmalloc.c | 1 + > drivers/misc/fastrpc.c | 1 + > .../staging/media/tegra-vde/dmabuf-cache.c | 3 ++ > drivers/tee/tee_shm.c | 3 ++ > drivers/virtio/virtio_dma_buf.c | 1 + > drivers/xen/gntdev-dmabuf.c | 3 ++ > samples/vfio-mdev/mbochs.c | 1 + > 20 files changed, 60 insertions(+), 17 deletions(-) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index 63d32261b63f..6c2b5ea828a6 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -610,7 +610,7 @@ struct dma_buf *dma_buf_export(const struct > dma_buf_export_info *exp_info) > module_put(exp_info->owner); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_export); > +EXPORT_SYMBOL_NS_GPL(dma_buf_export, DMA_BUF); > > /** > * dma_buf_fd - returns a file descriptor for the given struct dma_buf > @@ -634,7 +634,7 @@ int dma_buf_fd(struct dma_buf *dmabuf, int flags) > > return fd; > } > -EXPORT_SYMBOL_GPL(dma_buf_fd); > +EXPORT_SYMBOL_NS_GPL(dma_buf_fd, DMA_BUF); > > /** > * dma_buf_get - returns the struct dma_buf related to an fd > @@ -660,7 +660,7 @@ struct dma_buf *dma_buf_get(int fd) > > return file->private_data; > } > -EXPORT_SYMBOL_GPL(dma_buf_get); > +EXPORT_SYMBOL_NS_GPL(dma_buf_get, DMA_BUF); > > /** > * dma_buf_put - decreases refcount of the buffer > @@ -679,7 +679,7 @@ void dma_buf_put(struct dma_buf *dmabuf) > > fput(dmabuf->file); > } > -EXPORT_SYMBOL_GPL(dma_buf_put); > +EXPORT_SYMBOL_NS_GPL(dma_buf_put, DMA_BUF); > > static void mangle_sg_table(struct sg_table *sg_table) > { > @@ -810,7 +810,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct > device *dev, > dma_buf_detach(dmabuf, attach); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_dynamic_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_dynamic_attach, DMA_BUF); > > /** > * dma_buf_attach - Wrapper for dma_buf_dynamic_attach > @@ -825,7 +825,7 @@ struct dma_buf_attachment *dma_buf_attach(struct > dma_buf *dmabuf, > { > return dma_buf_dynamic_attach(dmabuf, dev, NULL, NULL); > } > -EXPORT_SYMBOL_GPL(dma_buf_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_attach, DMA_BUF); > > static void __unmap_dma_buf(struct dma_buf_attachment *attach, > struct sg_table *sg_table, > @@ -871,7 +871,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct > dma_buf_attachment *attach) > > kfree(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_detach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_detach, DMA_BUF); > > /** > * dma_buf_pin - Lock down the DMA-buf > @@ -901,7 +901,7 @@ int dma_buf_pin(struct dma_buf_attachment *attach) > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_pin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_pin, DMA_BUF); > > /** > * dma_buf_unpin - Unpin a DMA-buf > @@ -922,7 +922,7 @@ void dma_buf_unpin(struct dma_buf_attachment *attach) > if (dmabuf->ops->unpin) > dmabuf->ops->unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unpin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unpin, DMA_BUF); > > /** > * dma_buf_map_attachment - Returns the scatterlist table of the > attachment; > @@ -1012,7 +1012,7 @@ struct sg_table *dma_buf_map_attachment(struct > dma_buf_attachment *attach, > #endif /* CONFIG_DMA_API_DEBUG */ > return sg_table; > } > -EXPORT_SYMBOL_GPL(dma_buf_map_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_map_attachment, DMA_BUF); > > /** > * dma_buf_unmap_attachment - unmaps and decreases usecount of the > buffer;might > @@ -1048,7 +1048,7 @@ void dma_buf_unmap_attachment(struct > dma_buf_attachment *attach, > !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) > dma_buf_unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unmap_attachment, DMA_BUF); > > /** > * dma_buf_move_notify - notify attachments that DMA-buf is moving > @@ -1068,7 +1068,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf) > if (attach->importer_ops) > attach->importer_ops->move_notify(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_move_notify); > +EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, DMA_BUF); > > /** > * DOC: cpu access > @@ -1212,7 +1212,7 @@ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_begin_cpu_access, DMA_BUF); > > /** > * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from > the > @@ -1240,7 +1240,7 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, DMA_BUF); > > > /** > @@ -1282,7 +1282,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct > vm_area_struct *vma, > > return dmabuf->ops->mmap(dmabuf, vma); > } > -EXPORT_SYMBOL_GPL(dma_buf_mmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_mmap, DMA_BUF); > > /** > * dma_buf_vmap - Create virtual mapping for the buffer object into kernel > @@ -1336,7 +1336,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct > dma_buf_map *map) > mutex_unlock(&dmabuf->lock); > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_vmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vmap, DMA_BUF); > > /** > * dma_buf_vunmap - Unmap a vmap obtained by dma_buf_vmap. > @@ -1360,7 +1360,7 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct > dma_buf_map *map) > } > mutex_unlock(&dmabuf->lock); > } > -EXPORT_SYMBOL_GPL(dma_buf_vunmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vunmap, DMA_BUF); > > #ifdef CONFIG_DEBUG_FS > static int dma_buf_debug_show(struct seq_file *s, void *unused) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index 38dade421d46..38e144504649 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -41,6 +41,7 @@ > #include <linux/swiotlb.h> > #include <linux/dma-buf.h> > #include <linux/sizes.h> > +#include <linux/module.h> > > #include <drm/ttm/ttm_bo_api.h> > #include <drm/ttm/ttm_bo_driver.h> > @@ -59,6 +60,8 @@ > #include "amdgpu_res_cursor.h" > #include "bif/bif_4_1_d.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AMDGPU_TTM_VRAM_MAX_DW_READ (size_t)128 > > static int amdgpu_ttm_backend_bind(struct ttm_device *bdev, > diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c > b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > index 3c75d79dbb65..746fd8c73845 100644 > --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c > +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > @@ -6,6 +6,7 @@ > */ > > #include <linux/slab.h> > +#include <linux/module.h> > > #include <drm/drm_damage_helper.h> > #include <drm/drm_fb_helper.h> > @@ -17,6 +18,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AFBC_HEADER_SIZE 16 > #define AFBC_TH_LAYOUT_ALIGNMENT 8 > #define AFBC_HDR_ALIGN 64 > diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c > index deb23dbec8b5..d8ba95744410 100644 > --- a/drivers/gpu/drm/drm_prime.c > +++ b/drivers/gpu/drm/drm_prime.c > @@ -29,6 +29,7 @@ > #include <linux/export.h> > #include <linux/dma-buf.h> > #include <linux/rbtree.h> > +#include <linux/module.h> > > #include <drm/drm.h> > #include <drm/drm_drv.h> > @@ -39,6 +40,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * DOC: overview and lifetime rules > * > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > index 6d8bed9c739d..6788ea8490d1 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > @@ -5,10 +5,13 @@ > > #include <drm/drm_prime.h> > #include <linux/dma-buf.h> > +#include <linux/module.h> > > #include "etnaviv_drv.h" > #include "etnaviv_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static struct lock_class_key etnaviv_prime_lock_class; > > struct sg_table *etnaviv_gem_prime_get_sg_table(struct drm_gem_object > *obj) > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c > b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index 4396224227d1..0a0c042a3155 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -9,6 +9,7 @@ > #include <linux/dma-buf.h> > #include <linux/pfn_t.h> > #include <linux/shmem_fs.h> > +#include <linux/module.h> > > #include <drm/drm_prime.h> > #include <drm/drm_vma_manager.h> > @@ -17,6 +18,8 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool > kvmap) > { > struct drm_device *dev = exynos_gem->base.dev; > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > index afa34111de02..abb854281347 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > @@ -7,11 +7,14 @@ > #include <linux/dma-buf.h> > #include <linux/highmem.h> > #include <linux/dma-resv.h> > +#include <linux/module.h> > > #include "i915_drv.h" > #include "i915_gem_object.h" > #include "i915_scatterlist.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > I915_SELFTEST_DECLARE(static bool force_different_devices;) > > static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) > diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c > index 6ec598f5d5b3..d38fd7e12b57 100644 > --- a/drivers/gpu/drm/tegra/gem.c > +++ b/drivers/gpu/drm/tegra/gem.c > @@ -12,6 +12,7 @@ > > #include <linux/dma-buf.h> > #include <linux/iommu.h> > +#include <linux/module.h> > > #include <drm/drm_drv.h> > #include <drm/drm_prime.h> > @@ -20,6 +21,8 @@ > #include "drm.h" > #include "gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void tegra_bo_put(struct host1x_bo *bo) > { > struct tegra_bo *obj = host1x_to_tegra_bo(bo); > diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c > b/drivers/gpu/drm/vmwgfx/ttm_object.c > index 04789b2bb2a2..899945f54dc7 100644 > --- a/drivers/gpu/drm/vmwgfx/ttm_object.c > +++ b/drivers/gpu/drm/vmwgfx/ttm_object.c > @@ -48,8 +48,11 @@ > #include <linux/spinlock.h> > #include <linux/slab.h> > #include <linux/atomic.h> > +#include <linux/module.h> > #include "ttm_object.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * struct ttm_object_file > * > diff --git a/drivers/infiniband/core/umem_dmabuf.c > b/drivers/infiniband/core/umem_dmabuf.c > index e824baf4640d..2d14929543af 100644 > --- a/drivers/infiniband/core/umem_dmabuf.c > +++ b/drivers/infiniband/core/umem_dmabuf.c > @@ -6,9 +6,12 @@ > #include <linux/dma-buf.h> > #include <linux/dma-resv.h> > #include <linux/dma-mapping.h> > +#include <linux/module.h> > > #include "uverbs.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) > { > struct sg_table *sgt; > diff --git a/drivers/media/common/videobuf2/videobuf2-core.c > b/drivers/media/common/videobuf2/videobuf2-core.c > index 508ac295eb06..773c68dcd158 100644 > --- a/drivers/media/common/videobuf2/videobuf2-core.c > +++ b/drivers/media/common/videobuf2/videobuf2-core.c > @@ -2978,3 +2978,4 @@ EXPORT_SYMBOL_GPL(vb2_thread_stop); > MODULE_DESCRIPTION("Media buffer core framework"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>, Marek Szyprowski"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > index a7f61ba85440..9a1a9baca2e4 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > @@ -755,3 +755,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); > MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > index c5b06a509566..db90ebb8950f 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > @@ -666,3 +666,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_sg_memops); > MODULE_DESCRIPTION("dma scatter/gather memory handling routines for > videobuf2"); > MODULE_AUTHOR("Andrzej Pietrasiewicz"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > index 83f95258ec8c..fa983897d0e9 100644 > --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > @@ -444,3 +444,4 @@ EXPORT_SYMBOL_GPL(vb2_vmalloc_memops); > MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index beda610e6b30..fa5c067f1c1e 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -1763,3 +1763,4 @@ static void fastrpc_exit(void) > module_exit(fastrpc_exit); > > MODULE_LICENSE("GPL v2"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/staging/media/tegra-vde/dmabuf-cache.c > b/drivers/staging/media/tegra-vde/dmabuf-cache.c > index a93b317885bf..a98d03419b8f 100644 > --- a/drivers/staging/media/tegra-vde/dmabuf-cache.c > +++ b/drivers/staging/media/tegra-vde/dmabuf-cache.c > @@ -12,9 +12,12 @@ > #include <linux/sched.h> > #include <linux/slab.h> > #include <linux/workqueue.h> > +#include <linux/module.h> > > #include "vde.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > struct tegra_vde_cache_entry { > enum dma_data_direction dma_dir; > struct dma_buf_attachment *a; > diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c > index 8a9384a64f3e..8a8deb95e918 100644 > --- a/drivers/tee/tee_shm.c > +++ b/drivers/tee/tee_shm.c > @@ -10,8 +10,11 @@ > #include <linux/slab.h> > #include <linux/tee_drv.h> > #include <linux/uio.h> > +#include <linux/module.h> > #include "tee_private.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void release_registered_pages(struct tee_shm *shm) > { > if (shm->pages) { > diff --git a/drivers/virtio/virtio_dma_buf.c > b/drivers/virtio/virtio_dma_buf.c > index 5127a2f0c986..2521a75009c3 100644 > --- a/drivers/virtio/virtio_dma_buf.c > +++ b/drivers/virtio/virtio_dma_buf.c > @@ -86,3 +86,4 @@ int virtio_dma_buf_get_uuid(struct dma_buf *dma_buf, > EXPORT_SYMBOL(virtio_dma_buf_get_uuid); > > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c > index 4c13cbc99896..12e380db7f55 100644 > --- a/drivers/xen/gntdev-dmabuf.c > +++ b/drivers/xen/gntdev-dmabuf.c > @@ -14,6 +14,7 @@ > #include <linux/slab.h> > #include <linux/types.h> > #include <linux/uaccess.h> > +#include <linux/module.h> > > #include <xen/xen.h> > #include <xen/grant_table.h> > @@ -21,6 +22,8 @@ > #include "gntdev-common.h" > #include "gntdev-dmabuf.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #ifndef GRANT_INVALID_REF > /* > * Note on usage of grant reference 0 as invalid grant reference: > diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c > index c313ab4d1f4e..a83be6cd162f 100644 > --- a/samples/vfio-mdev/mbochs.c > +++ b/samples/vfio-mdev/mbochs.c > @@ -1493,5 +1493,6 @@ static void __exit mbochs_dev_exit(void) > mbochs_class = NULL; > } > > +MODULE_IMPORT_NS(DMA_BUF); > module_init(mbochs_dev_init) > module_exit(mbochs_dev_exit) > -- > 2.33.0 > > Best, Sumit.
On Mon, Sep 27, 2021 at 7:15 AM Sumit Semwal <sumit.semwal@linaro.org> wrote: > > Hello Greg, > > Thanks for the patch! > > On Sat, 25 Sept 2021 at 19:17, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: >> >> In order to better track where in the kernel the dma-buf code is used, >> put the symbols in the namespace DMA_BUF and modify all users of the >> symbols to properly import the namespace to not break the build at the >> same time. >> >> Now the output of modinfo shows the use of these symbols, making it >> easier to watch for users over time: >> >> $ modinfo drivers/misc/fastrpc.ko | grep import >> import_ns: DMA_BUF >> >> Cc: Sumit Semwal <sumit.semwal@linaro.org> >> Cc: "Christian König" <christian.koenig@amd.com> >> Cc: Alex Deucher <alexander.deucher@amd.com> >> Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> >> Cc: David Airlie <airlied@linux.ie> >> Cc: Daniel Vetter <daniel@ffwll.ch> >> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> Cc: Maxime Ripard <mripard@kernel.org> >> Cc: Thomas Zimmermann <tzimmermann@suse.de> >> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> >> Cc: Arnd Bergmann <arnd@arndb.de> >> Cc: dri-devel@lists.freedesktop.org >> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > > With the addition of the 2 misses found by Arnd, please feel free to add my > Acked-by: Sumit Semwal <sumit.semwal@linaro.org> Same here. Acked-by: Alex Deucher <alexander.deucher@amd.com> >> >> --- >> >> The topic of dma-buf came up in the Maintainer's summit yesterday, and >> one comment was to put the symbols in their own module namespace, to >> make it easier to notice and track who was using them. This patch does >> so, and finds some "interesting" users of the api already in the tree. >> >> Only test-built on x86 allmodconfig, don't know what other arches will >> pick up, will let 0-day run on it for a bit... >> >> Comments? >> >> >> >> >> drivers/dma-buf/dma-buf.c | 34 +++++++++---------- >> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++ >> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 ++ >> drivers/gpu/drm/drm_prime.c | 3 ++ >> drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 ++ >> drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++ >> drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 ++ >> drivers/gpu/drm/tegra/gem.c | 3 ++ >> drivers/gpu/drm/vmwgfx/ttm_object.c | 3 ++ >> drivers/infiniband/core/umem_dmabuf.c | 3 ++ >> .../media/common/videobuf2/videobuf2-core.c | 1 + >> .../common/videobuf2/videobuf2-dma-contig.c | 1 + >> .../media/common/videobuf2/videobuf2-dma-sg.c | 1 + >> .../common/videobuf2/videobuf2-vmalloc.c | 1 + >> drivers/misc/fastrpc.c | 1 + >> .../staging/media/tegra-vde/dmabuf-cache.c | 3 ++ >> drivers/tee/tee_shm.c | 3 ++ >> drivers/virtio/virtio_dma_buf.c | 1 + >> drivers/xen/gntdev-dmabuf.c | 3 ++ >> samples/vfio-mdev/mbochs.c | 1 + >> 20 files changed, 60 insertions(+), 17 deletions(-) >> >> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c >> index 63d32261b63f..6c2b5ea828a6 100644 >> --- a/drivers/dma-buf/dma-buf.c >> +++ b/drivers/dma-buf/dma-buf.c >> @@ -610,7 +610,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) >> module_put(exp_info->owner); >> return ERR_PTR(ret); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_export); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_export, DMA_BUF); >> >> /** >> * dma_buf_fd - returns a file descriptor for the given struct dma_buf >> @@ -634,7 +634,7 @@ int dma_buf_fd(struct dma_buf *dmabuf, int flags) >> >> return fd; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_fd); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_fd, DMA_BUF); >> >> /** >> * dma_buf_get - returns the struct dma_buf related to an fd >> @@ -660,7 +660,7 @@ struct dma_buf *dma_buf_get(int fd) >> >> return file->private_data; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_get); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_get, DMA_BUF); >> >> /** >> * dma_buf_put - decreases refcount of the buffer >> @@ -679,7 +679,7 @@ void dma_buf_put(struct dma_buf *dmabuf) >> >> fput(dmabuf->file); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_put); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_put, DMA_BUF); >> >> static void mangle_sg_table(struct sg_table *sg_table) >> { >> @@ -810,7 +810,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev, >> dma_buf_detach(dmabuf, attach); >> return ERR_PTR(ret); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_dynamic_attach); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_dynamic_attach, DMA_BUF); >> >> /** >> * dma_buf_attach - Wrapper for dma_buf_dynamic_attach >> @@ -825,7 +825,7 @@ struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf, >> { >> return dma_buf_dynamic_attach(dmabuf, dev, NULL, NULL); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_attach); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_attach, DMA_BUF); >> >> static void __unmap_dma_buf(struct dma_buf_attachment *attach, >> struct sg_table *sg_table, >> @@ -871,7 +871,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach) >> >> kfree(attach); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_detach); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_detach, DMA_BUF); >> >> /** >> * dma_buf_pin - Lock down the DMA-buf >> @@ -901,7 +901,7 @@ int dma_buf_pin(struct dma_buf_attachment *attach) >> >> return ret; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_pin); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_pin, DMA_BUF); >> >> /** >> * dma_buf_unpin - Unpin a DMA-buf >> @@ -922,7 +922,7 @@ void dma_buf_unpin(struct dma_buf_attachment *attach) >> if (dmabuf->ops->unpin) >> dmabuf->ops->unpin(attach); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_unpin); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_unpin, DMA_BUF); >> >> /** >> * dma_buf_map_attachment - Returns the scatterlist table of the attachment; >> @@ -1012,7 +1012,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, >> #endif /* CONFIG_DMA_API_DEBUG */ >> return sg_table; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_map_attachment); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_map_attachment, DMA_BUF); >> >> /** >> * dma_buf_unmap_attachment - unmaps and decreases usecount of the buffer;might >> @@ -1048,7 +1048,7 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach, >> !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) >> dma_buf_unpin(attach); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_unmap_attachment, DMA_BUF); >> >> /** >> * dma_buf_move_notify - notify attachments that DMA-buf is moving >> @@ -1068,7 +1068,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf) >> if (attach->importer_ops) >> attach->importer_ops->move_notify(attach); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_move_notify); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, DMA_BUF); >> >> /** >> * DOC: cpu access >> @@ -1212,7 +1212,7 @@ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, >> >> return ret; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_begin_cpu_access, DMA_BUF); >> >> /** >> * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from the >> @@ -1240,7 +1240,7 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf, >> >> return ret; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, DMA_BUF); >> >> >> /** >> @@ -1282,7 +1282,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma, >> >> return dmabuf->ops->mmap(dmabuf, vma); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_mmap); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_mmap, DMA_BUF); >> >> /** >> * dma_buf_vmap - Create virtual mapping for the buffer object into kernel >> @@ -1336,7 +1336,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map) >> mutex_unlock(&dmabuf->lock); >> return ret; >> } >> -EXPORT_SYMBOL_GPL(dma_buf_vmap); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_vmap, DMA_BUF); >> >> /** >> * dma_buf_vunmap - Unmap a vmap obtained by dma_buf_vmap. >> @@ -1360,7 +1360,7 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map) >> } >> mutex_unlock(&dmabuf->lock); >> } >> -EXPORT_SYMBOL_GPL(dma_buf_vunmap); >> +EXPORT_SYMBOL_NS_GPL(dma_buf_vunmap, DMA_BUF); >> >> #ifdef CONFIG_DEBUG_FS >> static int dma_buf_debug_show(struct seq_file *s, void *unused) >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >> index 38dade421d46..38e144504649 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c >> @@ -41,6 +41,7 @@ >> #include <linux/swiotlb.h> >> #include <linux/dma-buf.h> >> #include <linux/sizes.h> >> +#include <linux/module.h> >> >> #include <drm/ttm/ttm_bo_api.h> >> #include <drm/ttm/ttm_bo_driver.h> >> @@ -59,6 +60,8 @@ >> #include "amdgpu_res_cursor.h" >> #include "bif/bif_4_1_d.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> #define AMDGPU_TTM_VRAM_MAX_DW_READ (size_t)128 >> >> static int amdgpu_ttm_backend_bind(struct ttm_device *bdev, >> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> index 3c75d79dbb65..746fd8c73845 100644 >> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> @@ -6,6 +6,7 @@ >> */ >> >> #include <linux/slab.h> >> +#include <linux/module.h> >> >> #include <drm/drm_damage_helper.h> >> #include <drm/drm_fb_helper.h> >> @@ -17,6 +18,8 @@ >> >> #include "drm_internal.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> #define AFBC_HEADER_SIZE 16 >> #define AFBC_TH_LAYOUT_ALIGNMENT 8 >> #define AFBC_HDR_ALIGN 64 >> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c >> index deb23dbec8b5..d8ba95744410 100644 >> --- a/drivers/gpu/drm/drm_prime.c >> +++ b/drivers/gpu/drm/drm_prime.c >> @@ -29,6 +29,7 @@ >> #include <linux/export.h> >> #include <linux/dma-buf.h> >> #include <linux/rbtree.h> >> +#include <linux/module.h> >> >> #include <drm/drm.h> >> #include <drm/drm_drv.h> >> @@ -39,6 +40,8 @@ >> >> #include "drm_internal.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> /** >> * DOC: overview and lifetime rules >> * >> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c >> index 6d8bed9c739d..6788ea8490d1 100644 >> --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c >> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c >> @@ -5,10 +5,13 @@ >> >> #include <drm/drm_prime.h> >> #include <linux/dma-buf.h> >> +#include <linux/module.h> >> >> #include "etnaviv_drv.h" >> #include "etnaviv_gem.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> static struct lock_class_key etnaviv_prime_lock_class; >> >> struct sg_table *etnaviv_gem_prime_get_sg_table(struct drm_gem_object *obj) >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c >> index 4396224227d1..0a0c042a3155 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c >> @@ -9,6 +9,7 @@ >> #include <linux/dma-buf.h> >> #include <linux/pfn_t.h> >> #include <linux/shmem_fs.h> >> +#include <linux/module.h> >> >> #include <drm/drm_prime.h> >> #include <drm/drm_vma_manager.h> >> @@ -17,6 +18,8 @@ >> #include "exynos_drm_drv.h" >> #include "exynos_drm_gem.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap) >> { >> struct drm_device *dev = exynos_gem->base.dev; >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >> index afa34111de02..abb854281347 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >> @@ -7,11 +7,14 @@ >> #include <linux/dma-buf.h> >> #include <linux/highmem.h> >> #include <linux/dma-resv.h> >> +#include <linux/module.h> >> >> #include "i915_drv.h" >> #include "i915_gem_object.h" >> #include "i915_scatterlist.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> I915_SELFTEST_DECLARE(static bool force_different_devices;) >> >> static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) >> diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c >> index 6ec598f5d5b3..d38fd7e12b57 100644 >> --- a/drivers/gpu/drm/tegra/gem.c >> +++ b/drivers/gpu/drm/tegra/gem.c >> @@ -12,6 +12,7 @@ >> >> #include <linux/dma-buf.h> >> #include <linux/iommu.h> >> +#include <linux/module.h> >> >> #include <drm/drm_drv.h> >> #include <drm/drm_prime.h> >> @@ -20,6 +21,8 @@ >> #include "drm.h" >> #include "gem.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> static void tegra_bo_put(struct host1x_bo *bo) >> { >> struct tegra_bo *obj = host1x_to_tegra_bo(bo); >> diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c b/drivers/gpu/drm/vmwgfx/ttm_object.c >> index 04789b2bb2a2..899945f54dc7 100644 >> --- a/drivers/gpu/drm/vmwgfx/ttm_object.c >> +++ b/drivers/gpu/drm/vmwgfx/ttm_object.c >> @@ -48,8 +48,11 @@ >> #include <linux/spinlock.h> >> #include <linux/slab.h> >> #include <linux/atomic.h> >> +#include <linux/module.h> >> #include "ttm_object.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> /** >> * struct ttm_object_file >> * >> diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c >> index e824baf4640d..2d14929543af 100644 >> --- a/drivers/infiniband/core/umem_dmabuf.c >> +++ b/drivers/infiniband/core/umem_dmabuf.c >> @@ -6,9 +6,12 @@ >> #include <linux/dma-buf.h> >> #include <linux/dma-resv.h> >> #include <linux/dma-mapping.h> >> +#include <linux/module.h> >> >> #include "uverbs.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) >> { >> struct sg_table *sgt; >> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c >> index 508ac295eb06..773c68dcd158 100644 >> --- a/drivers/media/common/videobuf2/videobuf2-core.c >> +++ b/drivers/media/common/videobuf2/videobuf2-core.c >> @@ -2978,3 +2978,4 @@ EXPORT_SYMBOL_GPL(vb2_thread_stop); >> MODULE_DESCRIPTION("Media buffer core framework"); >> MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>, Marek Szyprowski"); >> MODULE_LICENSE("GPL"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c >> index a7f61ba85440..9a1a9baca2e4 100644 >> --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c >> +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c >> @@ -755,3 +755,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); >> MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); >> MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); >> MODULE_LICENSE("GPL"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c >> index c5b06a509566..db90ebb8950f 100644 >> --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c >> +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c >> @@ -666,3 +666,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_sg_memops); >> MODULE_DESCRIPTION("dma scatter/gather memory handling routines for videobuf2"); >> MODULE_AUTHOR("Andrzej Pietrasiewicz"); >> MODULE_LICENSE("GPL"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c >> index 83f95258ec8c..fa983897d0e9 100644 >> --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c >> +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c >> @@ -444,3 +444,4 @@ EXPORT_SYMBOL_GPL(vb2_vmalloc_memops); >> MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2"); >> MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); >> MODULE_LICENSE("GPL"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c >> index beda610e6b30..fa5c067f1c1e 100644 >> --- a/drivers/misc/fastrpc.c >> +++ b/drivers/misc/fastrpc.c >> @@ -1763,3 +1763,4 @@ static void fastrpc_exit(void) >> module_exit(fastrpc_exit); >> >> MODULE_LICENSE("GPL v2"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/staging/media/tegra-vde/dmabuf-cache.c b/drivers/staging/media/tegra-vde/dmabuf-cache.c >> index a93b317885bf..a98d03419b8f 100644 >> --- a/drivers/staging/media/tegra-vde/dmabuf-cache.c >> +++ b/drivers/staging/media/tegra-vde/dmabuf-cache.c >> @@ -12,9 +12,12 @@ >> #include <linux/sched.h> >> #include <linux/slab.h> >> #include <linux/workqueue.h> >> +#include <linux/module.h> >> >> #include "vde.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> struct tegra_vde_cache_entry { >> enum dma_data_direction dma_dir; >> struct dma_buf_attachment *a; >> diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c >> index 8a9384a64f3e..8a8deb95e918 100644 >> --- a/drivers/tee/tee_shm.c >> +++ b/drivers/tee/tee_shm.c >> @@ -10,8 +10,11 @@ >> #include <linux/slab.h> >> #include <linux/tee_drv.h> >> #include <linux/uio.h> >> +#include <linux/module.h> >> #include "tee_private.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> static void release_registered_pages(struct tee_shm *shm) >> { >> if (shm->pages) { >> diff --git a/drivers/virtio/virtio_dma_buf.c b/drivers/virtio/virtio_dma_buf.c >> index 5127a2f0c986..2521a75009c3 100644 >> --- a/drivers/virtio/virtio_dma_buf.c >> +++ b/drivers/virtio/virtio_dma_buf.c >> @@ -86,3 +86,4 @@ int virtio_dma_buf_get_uuid(struct dma_buf *dma_buf, >> EXPORT_SYMBOL(virtio_dma_buf_get_uuid); >> >> MODULE_LICENSE("GPL"); >> +MODULE_IMPORT_NS(DMA_BUF); >> diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c >> index 4c13cbc99896..12e380db7f55 100644 >> --- a/drivers/xen/gntdev-dmabuf.c >> +++ b/drivers/xen/gntdev-dmabuf.c >> @@ -14,6 +14,7 @@ >> #include <linux/slab.h> >> #include <linux/types.h> >> #include <linux/uaccess.h> >> +#include <linux/module.h> >> >> #include <xen/xen.h> >> #include <xen/grant_table.h> >> @@ -21,6 +22,8 @@ >> #include "gntdev-common.h" >> #include "gntdev-dmabuf.h" >> >> +MODULE_IMPORT_NS(DMA_BUF); >> + >> #ifndef GRANT_INVALID_REF >> /* >> * Note on usage of grant reference 0 as invalid grant reference: >> diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c >> index c313ab4d1f4e..a83be6cd162f 100644 >> --- a/samples/vfio-mdev/mbochs.c >> +++ b/samples/vfio-mdev/mbochs.c >> @@ -1493,5 +1493,6 @@ static void __exit mbochs_dev_exit(void) >> mbochs_class = NULL; >> } >> >> +MODULE_IMPORT_NS(DMA_BUF); >> module_init(mbochs_dev_init) >> module_exit(mbochs_dev_exit) >> -- >> 2.33.0 >> > > Best, > Sumit.
On Sat, Sep 25, 2021 at 03:47:00PM +0200, Greg Kroah-Hartman wrote: > In order to better track where in the kernel the dma-buf code is used, > put the symbols in the namespace DMA_BUF and modify all users of the > symbols to properly import the namespace to not break the build at the > same time. > > Now the output of modinfo shows the use of these symbols, making it > easier to watch for users over time: > > $ modinfo drivers/misc/fastrpc.ko | grep import > import_ns: DMA_BUF > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > Cc: "Christian König" <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > > The topic of dma-buf came up in the Maintainer's summit yesterday, and > one comment was to put the symbols in their own module namespace, to > make it easier to notice and track who was using them. This patch does > so, and finds some "interesting" users of the api already in the tree. Yeah, the interesting ones is why I added the dma-buf wildcard match a while ago. Since that landed I don't think anything escaped. Should we perhaps also add K: MODULE_IMPORT_NS(DMA_BUF); to the dma-buf MAINATINERS entry? Entirely untested, also no idea whether there's not a better way to match for module namespaces. Either way: Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > Only test-built on x86 allmodconfig, don't know what other arches will > pick up, will let 0-day run on it for a bit... > > Comments? > > > > drivers/dma-buf/dma-buf.c | 34 +++++++++---------- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++ > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 ++ > drivers/gpu/drm/drm_prime.c | 3 ++ > drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 ++ > drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++ > drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 ++ > drivers/gpu/drm/tegra/gem.c | 3 ++ > drivers/gpu/drm/vmwgfx/ttm_object.c | 3 ++ > drivers/infiniband/core/umem_dmabuf.c | 3 ++ > .../media/common/videobuf2/videobuf2-core.c | 1 + > .../common/videobuf2/videobuf2-dma-contig.c | 1 + > .../media/common/videobuf2/videobuf2-dma-sg.c | 1 + > .../common/videobuf2/videobuf2-vmalloc.c | 1 + > drivers/misc/fastrpc.c | 1 + > .../staging/media/tegra-vde/dmabuf-cache.c | 3 ++ > drivers/tee/tee_shm.c | 3 ++ > drivers/virtio/virtio_dma_buf.c | 1 + > drivers/xen/gntdev-dmabuf.c | 3 ++ > samples/vfio-mdev/mbochs.c | 1 + > 20 files changed, 60 insertions(+), 17 deletions(-) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index 63d32261b63f..6c2b5ea828a6 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -610,7 +610,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) > module_put(exp_info->owner); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_export); > +EXPORT_SYMBOL_NS_GPL(dma_buf_export, DMA_BUF); > > /** > * dma_buf_fd - returns a file descriptor for the given struct dma_buf > @@ -634,7 +634,7 @@ int dma_buf_fd(struct dma_buf *dmabuf, int flags) > > return fd; > } > -EXPORT_SYMBOL_GPL(dma_buf_fd); > +EXPORT_SYMBOL_NS_GPL(dma_buf_fd, DMA_BUF); > > /** > * dma_buf_get - returns the struct dma_buf related to an fd > @@ -660,7 +660,7 @@ struct dma_buf *dma_buf_get(int fd) > > return file->private_data; > } > -EXPORT_SYMBOL_GPL(dma_buf_get); > +EXPORT_SYMBOL_NS_GPL(dma_buf_get, DMA_BUF); > > /** > * dma_buf_put - decreases refcount of the buffer > @@ -679,7 +679,7 @@ void dma_buf_put(struct dma_buf *dmabuf) > > fput(dmabuf->file); > } > -EXPORT_SYMBOL_GPL(dma_buf_put); > +EXPORT_SYMBOL_NS_GPL(dma_buf_put, DMA_BUF); > > static void mangle_sg_table(struct sg_table *sg_table) > { > @@ -810,7 +810,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev, > dma_buf_detach(dmabuf, attach); > return ERR_PTR(ret); > } > -EXPORT_SYMBOL_GPL(dma_buf_dynamic_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_dynamic_attach, DMA_BUF); > > /** > * dma_buf_attach - Wrapper for dma_buf_dynamic_attach > @@ -825,7 +825,7 @@ struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf, > { > return dma_buf_dynamic_attach(dmabuf, dev, NULL, NULL); > } > -EXPORT_SYMBOL_GPL(dma_buf_attach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_attach, DMA_BUF); > > static void __unmap_dma_buf(struct dma_buf_attachment *attach, > struct sg_table *sg_table, > @@ -871,7 +871,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach) > > kfree(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_detach); > +EXPORT_SYMBOL_NS_GPL(dma_buf_detach, DMA_BUF); > > /** > * dma_buf_pin - Lock down the DMA-buf > @@ -901,7 +901,7 @@ int dma_buf_pin(struct dma_buf_attachment *attach) > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_pin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_pin, DMA_BUF); > > /** > * dma_buf_unpin - Unpin a DMA-buf > @@ -922,7 +922,7 @@ void dma_buf_unpin(struct dma_buf_attachment *attach) > if (dmabuf->ops->unpin) > dmabuf->ops->unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unpin); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unpin, DMA_BUF); > > /** > * dma_buf_map_attachment - Returns the scatterlist table of the attachment; > @@ -1012,7 +1012,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, > #endif /* CONFIG_DMA_API_DEBUG */ > return sg_table; > } > -EXPORT_SYMBOL_GPL(dma_buf_map_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_map_attachment, DMA_BUF); > > /** > * dma_buf_unmap_attachment - unmaps and decreases usecount of the buffer;might > @@ -1048,7 +1048,7 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach, > !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) > dma_buf_unpin(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); > +EXPORT_SYMBOL_NS_GPL(dma_buf_unmap_attachment, DMA_BUF); > > /** > * dma_buf_move_notify - notify attachments that DMA-buf is moving > @@ -1068,7 +1068,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf) > if (attach->importer_ops) > attach->importer_ops->move_notify(attach); > } > -EXPORT_SYMBOL_GPL(dma_buf_move_notify); > +EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, DMA_BUF); > > /** > * DOC: cpu access > @@ -1212,7 +1212,7 @@ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_begin_cpu_access, DMA_BUF); > > /** > * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from the > @@ -1240,7 +1240,7 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf, > > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); > +EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, DMA_BUF); > > > /** > @@ -1282,7 +1282,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma, > > return dmabuf->ops->mmap(dmabuf, vma); > } > -EXPORT_SYMBOL_GPL(dma_buf_mmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_mmap, DMA_BUF); > > /** > * dma_buf_vmap - Create virtual mapping for the buffer object into kernel > @@ -1336,7 +1336,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map) > mutex_unlock(&dmabuf->lock); > return ret; > } > -EXPORT_SYMBOL_GPL(dma_buf_vmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vmap, DMA_BUF); > > /** > * dma_buf_vunmap - Unmap a vmap obtained by dma_buf_vmap. > @@ -1360,7 +1360,7 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map) > } > mutex_unlock(&dmabuf->lock); > } > -EXPORT_SYMBOL_GPL(dma_buf_vunmap); > +EXPORT_SYMBOL_NS_GPL(dma_buf_vunmap, DMA_BUF); > > #ifdef CONFIG_DEBUG_FS > static int dma_buf_debug_show(struct seq_file *s, void *unused) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index 38dade421d46..38e144504649 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -41,6 +41,7 @@ > #include <linux/swiotlb.h> > #include <linux/dma-buf.h> > #include <linux/sizes.h> > +#include <linux/module.h> > > #include <drm/ttm/ttm_bo_api.h> > #include <drm/ttm/ttm_bo_driver.h> > @@ -59,6 +60,8 @@ > #include "amdgpu_res_cursor.h" > #include "bif/bif_4_1_d.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AMDGPU_TTM_VRAM_MAX_DW_READ (size_t)128 > > static int amdgpu_ttm_backend_bind(struct ttm_device *bdev, > diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > index 3c75d79dbb65..746fd8c73845 100644 > --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c > +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > @@ -6,6 +6,7 @@ > */ > > #include <linux/slab.h> > +#include <linux/module.h> > > #include <drm/drm_damage_helper.h> > #include <drm/drm_fb_helper.h> > @@ -17,6 +18,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #define AFBC_HEADER_SIZE 16 > #define AFBC_TH_LAYOUT_ALIGNMENT 8 > #define AFBC_HDR_ALIGN 64 > diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c > index deb23dbec8b5..d8ba95744410 100644 > --- a/drivers/gpu/drm/drm_prime.c > +++ b/drivers/gpu/drm/drm_prime.c > @@ -29,6 +29,7 @@ > #include <linux/export.h> > #include <linux/dma-buf.h> > #include <linux/rbtree.h> > +#include <linux/module.h> > > #include <drm/drm.h> > #include <drm/drm_drv.h> > @@ -39,6 +40,8 @@ > > #include "drm_internal.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * DOC: overview and lifetime rules > * > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > index 6d8bed9c739d..6788ea8490d1 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c > @@ -5,10 +5,13 @@ > > #include <drm/drm_prime.h> > #include <linux/dma-buf.h> > +#include <linux/module.h> > > #include "etnaviv_drv.h" > #include "etnaviv_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static struct lock_class_key etnaviv_prime_lock_class; > > struct sg_table *etnaviv_gem_prime_get_sg_table(struct drm_gem_object *obj) > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index 4396224227d1..0a0c042a3155 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -9,6 +9,7 @@ > #include <linux/dma-buf.h> > #include <linux/pfn_t.h> > #include <linux/shmem_fs.h> > +#include <linux/module.h> > > #include <drm/drm_prime.h> > #include <drm/drm_vma_manager.h> > @@ -17,6 +18,8 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap) > { > struct drm_device *dev = exynos_gem->base.dev; > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > index afa34111de02..abb854281347 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c > @@ -7,11 +7,14 @@ > #include <linux/dma-buf.h> > #include <linux/highmem.h> > #include <linux/dma-resv.h> > +#include <linux/module.h> > > #include "i915_drv.h" > #include "i915_gem_object.h" > #include "i915_scatterlist.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > I915_SELFTEST_DECLARE(static bool force_different_devices;) > > static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) > diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c > index 6ec598f5d5b3..d38fd7e12b57 100644 > --- a/drivers/gpu/drm/tegra/gem.c > +++ b/drivers/gpu/drm/tegra/gem.c > @@ -12,6 +12,7 @@ > > #include <linux/dma-buf.h> > #include <linux/iommu.h> > +#include <linux/module.h> > > #include <drm/drm_drv.h> > #include <drm/drm_prime.h> > @@ -20,6 +21,8 @@ > #include "drm.h" > #include "gem.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void tegra_bo_put(struct host1x_bo *bo) > { > struct tegra_bo *obj = host1x_to_tegra_bo(bo); > diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c b/drivers/gpu/drm/vmwgfx/ttm_object.c > index 04789b2bb2a2..899945f54dc7 100644 > --- a/drivers/gpu/drm/vmwgfx/ttm_object.c > +++ b/drivers/gpu/drm/vmwgfx/ttm_object.c > @@ -48,8 +48,11 @@ > #include <linux/spinlock.h> > #include <linux/slab.h> > #include <linux/atomic.h> > +#include <linux/module.h> > #include "ttm_object.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > /** > * struct ttm_object_file > * > diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c > index e824baf4640d..2d14929543af 100644 > --- a/drivers/infiniband/core/umem_dmabuf.c > +++ b/drivers/infiniband/core/umem_dmabuf.c > @@ -6,9 +6,12 @@ > #include <linux/dma-buf.h> > #include <linux/dma-resv.h> > #include <linux/dma-mapping.h> > +#include <linux/module.h> > > #include "uverbs.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) > { > struct sg_table *sgt; > diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c > index 508ac295eb06..773c68dcd158 100644 > --- a/drivers/media/common/videobuf2/videobuf2-core.c > +++ b/drivers/media/common/videobuf2/videobuf2-core.c > @@ -2978,3 +2978,4 @@ EXPORT_SYMBOL_GPL(vb2_thread_stop); > MODULE_DESCRIPTION("Media buffer core framework"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>, Marek Szyprowski"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > index a7f61ba85440..9a1a9baca2e4 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > @@ -755,3 +755,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); > MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > index c5b06a509566..db90ebb8950f 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > @@ -666,3 +666,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_sg_memops); > MODULE_DESCRIPTION("dma scatter/gather memory handling routines for videobuf2"); > MODULE_AUTHOR("Andrzej Pietrasiewicz"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > index 83f95258ec8c..fa983897d0e9 100644 > --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > @@ -444,3 +444,4 @@ EXPORT_SYMBOL_GPL(vb2_vmalloc_memops); > MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index beda610e6b30..fa5c067f1c1e 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -1763,3 +1763,4 @@ static void fastrpc_exit(void) > module_exit(fastrpc_exit); > > MODULE_LICENSE("GPL v2"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/staging/media/tegra-vde/dmabuf-cache.c b/drivers/staging/media/tegra-vde/dmabuf-cache.c > index a93b317885bf..a98d03419b8f 100644 > --- a/drivers/staging/media/tegra-vde/dmabuf-cache.c > +++ b/drivers/staging/media/tegra-vde/dmabuf-cache.c > @@ -12,9 +12,12 @@ > #include <linux/sched.h> > #include <linux/slab.h> > #include <linux/workqueue.h> > +#include <linux/module.h> > > #include "vde.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > struct tegra_vde_cache_entry { > enum dma_data_direction dma_dir; > struct dma_buf_attachment *a; > diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c > index 8a9384a64f3e..8a8deb95e918 100644 > --- a/drivers/tee/tee_shm.c > +++ b/drivers/tee/tee_shm.c > @@ -10,8 +10,11 @@ > #include <linux/slab.h> > #include <linux/tee_drv.h> > #include <linux/uio.h> > +#include <linux/module.h> > #include "tee_private.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > static void release_registered_pages(struct tee_shm *shm) > { > if (shm->pages) { > diff --git a/drivers/virtio/virtio_dma_buf.c b/drivers/virtio/virtio_dma_buf.c > index 5127a2f0c986..2521a75009c3 100644 > --- a/drivers/virtio/virtio_dma_buf.c > +++ b/drivers/virtio/virtio_dma_buf.c > @@ -86,3 +86,4 @@ int virtio_dma_buf_get_uuid(struct dma_buf *dma_buf, > EXPORT_SYMBOL(virtio_dma_buf_get_uuid); > > MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS(DMA_BUF); > diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c > index 4c13cbc99896..12e380db7f55 100644 > --- a/drivers/xen/gntdev-dmabuf.c > +++ b/drivers/xen/gntdev-dmabuf.c > @@ -14,6 +14,7 @@ > #include <linux/slab.h> > #include <linux/types.h> > #include <linux/uaccess.h> > +#include <linux/module.h> > > #include <xen/xen.h> > #include <xen/grant_table.h> > @@ -21,6 +22,8 @@ > #include "gntdev-common.h" > #include "gntdev-dmabuf.h" > > +MODULE_IMPORT_NS(DMA_BUF); > + > #ifndef GRANT_INVALID_REF > /* > * Note on usage of grant reference 0 as invalid grant reference: > diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c > index c313ab4d1f4e..a83be6cd162f 100644 > --- a/samples/vfio-mdev/mbochs.c > +++ b/samples/vfio-mdev/mbochs.c > @@ -1493,5 +1493,6 @@ static void __exit mbochs_dev_exit(void) > mbochs_class = NULL; > } > > +MODULE_IMPORT_NS(DMA_BUF); > module_init(mbochs_dev_init) > module_exit(mbochs_dev_exit) > -- > 2.33.0 >
On Tue, Sep 28, 2021 at 09:31:45AM +0200, Daniel Vetter wrote: > On Sat, Sep 25, 2021 at 03:47:00PM +0200, Greg Kroah-Hartman wrote: > > In order to better track where in the kernel the dma-buf code is used, > > put the symbols in the namespace DMA_BUF and modify all users of the > > symbols to properly import the namespace to not break the build at the > > same time. > > > > Now the output of modinfo shows the use of these symbols, making it > > easier to watch for users over time: > > > > $ modinfo drivers/misc/fastrpc.ko | grep import > > import_ns: DMA_BUF > > > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > > Cc: "Christian König" <christian.koenig@amd.com> > > Cc: Alex Deucher <alexander.deucher@amd.com> > > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > > Cc: David Airlie <airlied@linux.ie> > > Cc: Daniel Vetter <daniel@ffwll.ch> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Cc: Maxime Ripard <mripard@kernel.org> > > Cc: Thomas Zimmermann <tzimmermann@suse.de> > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: dri-devel@lists.freedesktop.org > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > --- > > > > The topic of dma-buf came up in the Maintainer's summit yesterday, and > > one comment was to put the symbols in their own module namespace, to > > make it easier to notice and track who was using them. This patch does > > so, and finds some "interesting" users of the api already in the tree. > > Yeah, the interesting ones is why I added the dma-buf wildcard match a > while ago. Since that landed I don't think anything escaped. Should we > perhaps also add > > K: MODULE_IMPORT_NS(DMA_BUF); > > to the dma-buf MAINATINERS entry? Entirely untested, also no idea whether > there's not a better way to match for module namespaces. Either way: I don't know if that would really work, if anything, just make the MAINTAINERS file harder to maintain :) > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Thanks for the review, I'll send out a v2 later today... greg k-h
On Tue, Sep 28, 2021 at 09:31:45AM +0200, Daniel Vetter wrote: > On Sat, Sep 25, 2021 at 03:47:00PM +0200, Greg Kroah-Hartman wrote: > > In order to better track where in the kernel the dma-buf code is used, > > put the symbols in the namespace DMA_BUF and modify all users of the > > symbols to properly import the namespace to not break the build at the > > same time. > > > > Now the output of modinfo shows the use of these symbols, making it > > easier to watch for users over time: > > > > $ modinfo drivers/misc/fastrpc.ko | grep import > > import_ns: DMA_BUF > > > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > > Cc: "Christian König" <christian.koenig@amd.com> > > Cc: Alex Deucher <alexander.deucher@amd.com> > > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > > Cc: David Airlie <airlied@linux.ie> > > Cc: Daniel Vetter <daniel@ffwll.ch> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Cc: Maxime Ripard <mripard@kernel.org> > > Cc: Thomas Zimmermann <tzimmermann@suse.de> > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: dri-devel@lists.freedesktop.org > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > --- > > > > The topic of dma-buf came up in the Maintainer's summit yesterday, and > > one comment was to put the symbols in their own module namespace, to > > make it easier to notice and track who was using them. This patch does > > so, and finds some "interesting" users of the api already in the tree. > > Yeah, the interesting ones is why I added the dma-buf wildcard match a > while ago. Since that landed I don't think anything escaped. Should we > perhaps also add > > K: MODULE_IMPORT_NS(DMA_BUF); > > to the dma-buf MAINATINERS entry? Entirely untested, also no idea whether > there's not a better way to match for module namespaces. Either way: I think MAINTAINERS is already overloaded with too many of these things, but feel free to mess with it if you want to :) > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Thanks for the ack! greg k-h
On Mon, Sep 27, 2021 at 12:08:45PM +0200, Christian König wrote: > Am 25.09.21 um 15:47 schrieb Greg Kroah-Hartman: > > In order to better track where in the kernel the dma-buf code is used, > > put the symbols in the namespace DMA_BUF and modify all users of the > > symbols to properly import the namespace to not break the build at the > > same time. > > > > Now the output of modinfo shows the use of these symbols, making it > > easier to watch for users over time: > > > > $ modinfo drivers/misc/fastrpc.ko | grep import > > import_ns: DMA_BUF > > > > Cc: Sumit Semwal <sumit.semwal@linaro.org> > > Cc: "Christian König" <christian.koenig@amd.com> > > Cc: Alex Deucher <alexander.deucher@amd.com> > > Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > > Cc: David Airlie <airlied@linux.ie> > > Cc: Daniel Vetter <daniel@ffwll.ch> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Cc: Maxime Ripard <mripard@kernel.org> > > Cc: Thomas Zimmermann <tzimmermann@suse.de> > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: dri-devel@lists.freedesktop.org > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > Acked-by: Christian König <christian.koenig@amd.com> Thanks for the ack. greg k-h
On Mon, Sep 27, 2021 at 11:39:21AM +0200, Arnd Bergmann wrote: > On Sat, Sep 25, 2021 at 7:41 PM Arnd Bergmann <arnd@arndb.de> wrote: > > On Sat, Sep 25, 2021 at 3:47 PM Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > > > > Only test-built on x86 allmodconfig, don't know what other arches will > > > pick up, will let 0-day run on it for a bit... > > > > I've added it to my build box doing arm32/arm64/x86 randconfig tests, > > if it doesn't report anything by Monday, it's probably good in that regard. > > It found these two, please fold into your patch: Now folded in, odd that 0-day didn't find it... Thanks for the ack as well, I'll send out a v2 soon. greg k-h
On Mon, Sep 27, 2021 at 11:00:14AM -0400, Alex Deucher wrote: > On Mon, Sep 27, 2021 at 7:15 AM Sumit Semwal <sumit.semwal@linaro.org> wrote: > > > > Hello Greg, > > > > Thanks for the patch! > > > > On Sat, 25 Sept 2021 at 19:17, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > >> > >> In order to better track where in the kernel the dma-buf code is used, > >> put the symbols in the namespace DMA_BUF and modify all users of the > >> symbols to properly import the namespace to not break the build at the > >> same time. > >> > >> Now the output of modinfo shows the use of these symbols, making it > >> easier to watch for users over time: > >> > >> $ modinfo drivers/misc/fastrpc.ko | grep import > >> import_ns: DMA_BUF > >> > >> Cc: Sumit Semwal <sumit.semwal@linaro.org> > >> Cc: "Christian König" <christian.koenig@amd.com> > >> Cc: Alex Deucher <alexander.deucher@amd.com> > >> Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> > >> Cc: David Airlie <airlied@linux.ie> > >> Cc: Daniel Vetter <daniel@ffwll.ch> > >> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > >> Cc: Maxime Ripard <mripard@kernel.org> > >> Cc: Thomas Zimmermann <tzimmermann@suse.de> > >> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > >> Cc: Arnd Bergmann <arnd@arndb.de> > >> Cc: dri-devel@lists.freedesktop.org > >> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > > > > > With the addition of the 2 misses found by Arnd, please feel free to add my > > Acked-by: Sumit Semwal <sumit.semwal@linaro.org> > > Same here. > > Acked-by: Alex Deucher <alexander.deucher@amd.com> Thanks both of you for your acks. greg k-h
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 63d32261b63f..6c2b5ea828a6 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -610,7 +610,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) module_put(exp_info->owner); return ERR_PTR(ret); } -EXPORT_SYMBOL_GPL(dma_buf_export); +EXPORT_SYMBOL_NS_GPL(dma_buf_export, DMA_BUF); /** * dma_buf_fd - returns a file descriptor for the given struct dma_buf @@ -634,7 +634,7 @@ int dma_buf_fd(struct dma_buf *dmabuf, int flags) return fd; } -EXPORT_SYMBOL_GPL(dma_buf_fd); +EXPORT_SYMBOL_NS_GPL(dma_buf_fd, DMA_BUF); /** * dma_buf_get - returns the struct dma_buf related to an fd @@ -660,7 +660,7 @@ struct dma_buf *dma_buf_get(int fd) return file->private_data; } -EXPORT_SYMBOL_GPL(dma_buf_get); +EXPORT_SYMBOL_NS_GPL(dma_buf_get, DMA_BUF); /** * dma_buf_put - decreases refcount of the buffer @@ -679,7 +679,7 @@ void dma_buf_put(struct dma_buf *dmabuf) fput(dmabuf->file); } -EXPORT_SYMBOL_GPL(dma_buf_put); +EXPORT_SYMBOL_NS_GPL(dma_buf_put, DMA_BUF); static void mangle_sg_table(struct sg_table *sg_table) { @@ -810,7 +810,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev, dma_buf_detach(dmabuf, attach); return ERR_PTR(ret); } -EXPORT_SYMBOL_GPL(dma_buf_dynamic_attach); +EXPORT_SYMBOL_NS_GPL(dma_buf_dynamic_attach, DMA_BUF); /** * dma_buf_attach - Wrapper for dma_buf_dynamic_attach @@ -825,7 +825,7 @@ struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf, { return dma_buf_dynamic_attach(dmabuf, dev, NULL, NULL); } -EXPORT_SYMBOL_GPL(dma_buf_attach); +EXPORT_SYMBOL_NS_GPL(dma_buf_attach, DMA_BUF); static void __unmap_dma_buf(struct dma_buf_attachment *attach, struct sg_table *sg_table, @@ -871,7 +871,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach) kfree(attach); } -EXPORT_SYMBOL_GPL(dma_buf_detach); +EXPORT_SYMBOL_NS_GPL(dma_buf_detach, DMA_BUF); /** * dma_buf_pin - Lock down the DMA-buf @@ -901,7 +901,7 @@ int dma_buf_pin(struct dma_buf_attachment *attach) return ret; } -EXPORT_SYMBOL_GPL(dma_buf_pin); +EXPORT_SYMBOL_NS_GPL(dma_buf_pin, DMA_BUF); /** * dma_buf_unpin - Unpin a DMA-buf @@ -922,7 +922,7 @@ void dma_buf_unpin(struct dma_buf_attachment *attach) if (dmabuf->ops->unpin) dmabuf->ops->unpin(attach); } -EXPORT_SYMBOL_GPL(dma_buf_unpin); +EXPORT_SYMBOL_NS_GPL(dma_buf_unpin, DMA_BUF); /** * dma_buf_map_attachment - Returns the scatterlist table of the attachment; @@ -1012,7 +1012,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, #endif /* CONFIG_DMA_API_DEBUG */ return sg_table; } -EXPORT_SYMBOL_GPL(dma_buf_map_attachment); +EXPORT_SYMBOL_NS_GPL(dma_buf_map_attachment, DMA_BUF); /** * dma_buf_unmap_attachment - unmaps and decreases usecount of the buffer;might @@ -1048,7 +1048,7 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach, !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) dma_buf_unpin(attach); } -EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); +EXPORT_SYMBOL_NS_GPL(dma_buf_unmap_attachment, DMA_BUF); /** * dma_buf_move_notify - notify attachments that DMA-buf is moving @@ -1068,7 +1068,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf) if (attach->importer_ops) attach->importer_ops->move_notify(attach); } -EXPORT_SYMBOL_GPL(dma_buf_move_notify); +EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, DMA_BUF); /** * DOC: cpu access @@ -1212,7 +1212,7 @@ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, return ret; } -EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); +EXPORT_SYMBOL_NS_GPL(dma_buf_begin_cpu_access, DMA_BUF); /** * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from the @@ -1240,7 +1240,7 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf, return ret; } -EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); +EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, DMA_BUF); /** @@ -1282,7 +1282,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma, return dmabuf->ops->mmap(dmabuf, vma); } -EXPORT_SYMBOL_GPL(dma_buf_mmap); +EXPORT_SYMBOL_NS_GPL(dma_buf_mmap, DMA_BUF); /** * dma_buf_vmap - Create virtual mapping for the buffer object into kernel @@ -1336,7 +1336,7 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map) mutex_unlock(&dmabuf->lock); return ret; } -EXPORT_SYMBOL_GPL(dma_buf_vmap); +EXPORT_SYMBOL_NS_GPL(dma_buf_vmap, DMA_BUF); /** * dma_buf_vunmap - Unmap a vmap obtained by dma_buf_vmap. @@ -1360,7 +1360,7 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map) } mutex_unlock(&dmabuf->lock); } -EXPORT_SYMBOL_GPL(dma_buf_vunmap); +EXPORT_SYMBOL_NS_GPL(dma_buf_vunmap, DMA_BUF); #ifdef CONFIG_DEBUG_FS static int dma_buf_debug_show(struct seq_file *s, void *unused) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 38dade421d46..38e144504649 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -41,6 +41,7 @@ #include <linux/swiotlb.h> #include <linux/dma-buf.h> #include <linux/sizes.h> +#include <linux/module.h> #include <drm/ttm/ttm_bo_api.h> #include <drm/ttm/ttm_bo_driver.h> @@ -59,6 +60,8 @@ #include "amdgpu_res_cursor.h" #include "bif/bif_4_1_d.h" +MODULE_IMPORT_NS(DMA_BUF); + #define AMDGPU_TTM_VRAM_MAX_DW_READ (size_t)128 static int amdgpu_ttm_backend_bind(struct ttm_device *bdev, diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c index 3c75d79dbb65..746fd8c73845 100644 --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c @@ -6,6 +6,7 @@ */ #include <linux/slab.h> +#include <linux/module.h> #include <drm/drm_damage_helper.h> #include <drm/drm_fb_helper.h> @@ -17,6 +18,8 @@ #include "drm_internal.h" +MODULE_IMPORT_NS(DMA_BUF); + #define AFBC_HEADER_SIZE 16 #define AFBC_TH_LAYOUT_ALIGNMENT 8 #define AFBC_HDR_ALIGN 64 diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index deb23dbec8b5..d8ba95744410 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c @@ -29,6 +29,7 @@ #include <linux/export.h> #include <linux/dma-buf.h> #include <linux/rbtree.h> +#include <linux/module.h> #include <drm/drm.h> #include <drm/drm_drv.h> @@ -39,6 +40,8 @@ #include "drm_internal.h" +MODULE_IMPORT_NS(DMA_BUF); + /** * DOC: overview and lifetime rules * diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c index 6d8bed9c739d..6788ea8490d1 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c @@ -5,10 +5,13 @@ #include <drm/drm_prime.h> #include <linux/dma-buf.h> +#include <linux/module.h> #include "etnaviv_drv.h" #include "etnaviv_gem.h" +MODULE_IMPORT_NS(DMA_BUF); + static struct lock_class_key etnaviv_prime_lock_class; struct sg_table *etnaviv_gem_prime_get_sg_table(struct drm_gem_object *obj) diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c index 4396224227d1..0a0c042a3155 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -9,6 +9,7 @@ #include <linux/dma-buf.h> #include <linux/pfn_t.h> #include <linux/shmem_fs.h> +#include <linux/module.h> #include <drm/drm_prime.h> #include <drm/drm_vma_manager.h> @@ -17,6 +18,8 @@ #include "exynos_drm_drv.h" #include "exynos_drm_gem.h" +MODULE_IMPORT_NS(DMA_BUF); + static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap) { struct drm_device *dev = exynos_gem->base.dev; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c index afa34111de02..abb854281347 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c @@ -7,11 +7,14 @@ #include <linux/dma-buf.h> #include <linux/highmem.h> #include <linux/dma-resv.h> +#include <linux/module.h> #include "i915_drv.h" #include "i915_gem_object.h" #include "i915_scatterlist.h" +MODULE_IMPORT_NS(DMA_BUF); + I915_SELFTEST_DECLARE(static bool force_different_devices;) static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 6ec598f5d5b3..d38fd7e12b57 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -12,6 +12,7 @@ #include <linux/dma-buf.h> #include <linux/iommu.h> +#include <linux/module.h> #include <drm/drm_drv.h> #include <drm/drm_prime.h> @@ -20,6 +21,8 @@ #include "drm.h" #include "gem.h" +MODULE_IMPORT_NS(DMA_BUF); + static void tegra_bo_put(struct host1x_bo *bo) { struct tegra_bo *obj = host1x_to_tegra_bo(bo); diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c b/drivers/gpu/drm/vmwgfx/ttm_object.c index 04789b2bb2a2..899945f54dc7 100644 --- a/drivers/gpu/drm/vmwgfx/ttm_object.c +++ b/drivers/gpu/drm/vmwgfx/ttm_object.c @@ -48,8 +48,11 @@ #include <linux/spinlock.h> #include <linux/slab.h> #include <linux/atomic.h> +#include <linux/module.h> #include "ttm_object.h" +MODULE_IMPORT_NS(DMA_BUF); + /** * struct ttm_object_file * diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c index e824baf4640d..2d14929543af 100644 --- a/drivers/infiniband/core/umem_dmabuf.c +++ b/drivers/infiniband/core/umem_dmabuf.c @@ -6,9 +6,12 @@ #include <linux/dma-buf.h> #include <linux/dma-resv.h> #include <linux/dma-mapping.h> +#include <linux/module.h> #include "uverbs.h" +MODULE_IMPORT_NS(DMA_BUF); + int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) { struct sg_table *sgt; diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c index 508ac295eb06..773c68dcd158 100644 --- a/drivers/media/common/videobuf2/videobuf2-core.c +++ b/drivers/media/common/videobuf2/videobuf2-core.c @@ -2978,3 +2978,4 @@ EXPORT_SYMBOL_GPL(vb2_thread_stop); MODULE_DESCRIPTION("Media buffer core framework"); MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>, Marek Szyprowski"); MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c index a7f61ba85440..9a1a9baca2e4 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c @@ -755,3 +755,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index c5b06a509566..db90ebb8950f 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -666,3 +666,4 @@ EXPORT_SYMBOL_GPL(vb2_dma_sg_memops); MODULE_DESCRIPTION("dma scatter/gather memory handling routines for videobuf2"); MODULE_AUTHOR("Andrzej Pietrasiewicz"); MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c index 83f95258ec8c..fa983897d0e9 100644 --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c @@ -444,3 +444,4 @@ EXPORT_SYMBOL_GPL(vb2_vmalloc_memops); MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2"); MODULE_AUTHOR("Pawel Osciak <pawel@osciak.com>"); MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index beda610e6b30..fa5c067f1c1e 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1763,3 +1763,4 @@ static void fastrpc_exit(void) module_exit(fastrpc_exit); MODULE_LICENSE("GPL v2"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/staging/media/tegra-vde/dmabuf-cache.c b/drivers/staging/media/tegra-vde/dmabuf-cache.c index a93b317885bf..a98d03419b8f 100644 --- a/drivers/staging/media/tegra-vde/dmabuf-cache.c +++ b/drivers/staging/media/tegra-vde/dmabuf-cache.c @@ -12,9 +12,12 @@ #include <linux/sched.h> #include <linux/slab.h> #include <linux/workqueue.h> +#include <linux/module.h> #include "vde.h" +MODULE_IMPORT_NS(DMA_BUF); + struct tegra_vde_cache_entry { enum dma_data_direction dma_dir; struct dma_buf_attachment *a; diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index 8a9384a64f3e..8a8deb95e918 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -10,8 +10,11 @@ #include <linux/slab.h> #include <linux/tee_drv.h> #include <linux/uio.h> +#include <linux/module.h> #include "tee_private.h" +MODULE_IMPORT_NS(DMA_BUF); + static void release_registered_pages(struct tee_shm *shm) { if (shm->pages) { diff --git a/drivers/virtio/virtio_dma_buf.c b/drivers/virtio/virtio_dma_buf.c index 5127a2f0c986..2521a75009c3 100644 --- a/drivers/virtio/virtio_dma_buf.c +++ b/drivers/virtio/virtio_dma_buf.c @@ -86,3 +86,4 @@ int virtio_dma_buf_get_uuid(struct dma_buf *dma_buf, EXPORT_SYMBOL(virtio_dma_buf_get_uuid); MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS(DMA_BUF); diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c index 4c13cbc99896..12e380db7f55 100644 --- a/drivers/xen/gntdev-dmabuf.c +++ b/drivers/xen/gntdev-dmabuf.c @@ -14,6 +14,7 @@ #include <linux/slab.h> #include <linux/types.h> #include <linux/uaccess.h> +#include <linux/module.h> #include <xen/xen.h> #include <xen/grant_table.h> @@ -21,6 +22,8 @@ #include "gntdev-common.h" #include "gntdev-dmabuf.h" +MODULE_IMPORT_NS(DMA_BUF); + #ifndef GRANT_INVALID_REF /* * Note on usage of grant reference 0 as invalid grant reference: diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c index c313ab4d1f4e..a83be6cd162f 100644 --- a/samples/vfio-mdev/mbochs.c +++ b/samples/vfio-mdev/mbochs.c @@ -1493,5 +1493,6 @@ static void __exit mbochs_dev_exit(void) mbochs_class = NULL; } +MODULE_IMPORT_NS(DMA_BUF); module_init(mbochs_dev_init) module_exit(mbochs_dev_exit)
In order to better track where in the kernel the dma-buf code is used, put the symbols in the namespace DMA_BUF and modify all users of the symbols to properly import the namespace to not break the build at the same time. Now the output of modinfo shows the use of these symbols, making it easier to watch for users over time: $ modinfo drivers/misc/fastrpc.ko | grep import import_ns: DMA_BUF Cc: Sumit Semwal <sumit.semwal@linaro.org> Cc: "Christian König" <christian.koenig@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- The topic of dma-buf came up in the Maintainer's summit yesterday, and one comment was to put the symbols in their own module namespace, to make it easier to notice and track who was using them. This patch does so, and finds some "interesting" users of the api already in the tree. Only test-built on x86 allmodconfig, don't know what other arches will pick up, will let 0-day run on it for a bit... Comments? drivers/dma-buf/dma-buf.c | 34 +++++++++---------- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++ drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 ++ drivers/gpu/drm/drm_prime.c | 3 ++ drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 ++ drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++ drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 ++ drivers/gpu/drm/tegra/gem.c | 3 ++ drivers/gpu/drm/vmwgfx/ttm_object.c | 3 ++ drivers/infiniband/core/umem_dmabuf.c | 3 ++ .../media/common/videobuf2/videobuf2-core.c | 1 + .../common/videobuf2/videobuf2-dma-contig.c | 1 + .../media/common/videobuf2/videobuf2-dma-sg.c | 1 + .../common/videobuf2/videobuf2-vmalloc.c | 1 + drivers/misc/fastrpc.c | 1 + .../staging/media/tegra-vde/dmabuf-cache.c | 3 ++ drivers/tee/tee_shm.c | 3 ++ drivers/virtio/virtio_dma_buf.c | 1 + drivers/xen/gntdev-dmabuf.c | 3 ++ samples/vfio-mdev/mbochs.c | 1 + 20 files changed, 60 insertions(+), 17 deletions(-)