From: Cong Wang The dmabuf filesystem uses alloc_anon_inode() to create anonymous inodes but does not set the SB_I_NOEXEC flag on its superblock. This triggers a VFS warning in path_noexec() when userspace mmaps a dma-buf: WARNING: CPU: 6 PID: 5660 at fs/exec.c:118 path_noexec+0x47/0x50 The warning exists to catch anonymous inode filesystems that forget to set SB_I_NOEXEC, as anonymous files should not be executable. All other pseudo-filesystems that use alloc_anon_inode() properly set this flag: - fs/anon_inodes.c: sets SB_I_NOEXEC - fs/aio.c: sets SB_I_NOEXEC - mm/secretmem.c: sets SB_I_NOEXEC Add the missing SB_I_NOEXEC flag to dma_buf_fs_init_context() to fix the warning and maintain consistency with other anonymous inode filesystems. This was triggered when testing DAXFS (https://github.com/multikernel/daxfs) and was 100% reproducible with CONFIG_DEBUG_VFS=y. Cc: Sumit Semwal Cc: "Christian König" Signed-off-by: Cong Wang --- drivers/dma-buf/dma-buf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index edaa9e4ee4ae..e2e1f77aca80 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -192,6 +192,7 @@ static int dma_buf_fs_init_context(struct fs_context *fc) ctx = init_pseudo(fc, DMA_BUF_MAGIC); if (!ctx) return -ENOMEM; + fc->s_iflags |= SB_I_NOEXEC; ctx->dops = &dma_buf_dentry_ops; return 0; } -- 2.34.1