On Thu, Jul 2, 2026 at 1:53 PM Bobby Eshleman <[email protected]> wrote: > > On Wed, Jul 01, 2026 at 12:22:08PM -0700, T.J. Mercier wrote: > > Write permissions on the /dev/udmabuf device file are not required to > > issue ioctls and allocate udmabufs. Applications should be opening this > > file as O_RDONLY. The BPF dmabuf_iter selftest already does this. [1] > > > > Users are pointing to these selftests as examples of how use udmabuf, > > and encountering permission errors on systems where write permissions > > are not available on /dev/udmabuf. Apply the principle of least > > privilege to selftests which use udmabuf by removing the write access > > mode from drivers/dma-buf/udmabuf.c and drivers/net/hw/ncdevmem.c. > > > > [1] > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/bpf/prog_tests/dmabuf_iter.c?h=v7.1#n49 > > > > Signed-off-by: T.J. Mercier <[email protected]> > > --- > > tools/testing/selftests/drivers/dma-buf/udmabuf.c | 2 +- > > tools/testing/selftests/drivers/net/hw/ncdevmem.c | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > b/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > index d78aec662586..ced0b95c876c 100644 > > --- a/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > +++ b/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > @@ -140,7 +140,7 @@ int main(int argc, char *argv[]) > > ksft_print_header(); > > ksft_set_plan(7); > > > > - devfd = open("/dev/udmabuf", O_RDWR); > > + devfd = open("/dev/udmabuf", O_RDONLY); > > if (devfd < 0) { > > ksft_print_msg( > > "%s: [skip,no-udmabuf: Unable to access DMA buffer > > device file]\n", > > diff --git a/tools/testing/selftests/drivers/net/hw/ncdevmem.c > > b/tools/testing/selftests/drivers/net/hw/ncdevmem.c > > index e098d6534c3c..8114a29692fd 100644 > > --- a/tools/testing/selftests/drivers/net/hw/ncdevmem.c > > +++ b/tools/testing/selftests/drivers/net/hw/ncdevmem.c > > @@ -149,7 +149,7 @@ static struct memory_buffer *udmabuf_alloc(size_t size) > > > > ctx->size = size; > > > > - ctx->devfd = open("/dev/udmabuf", O_RDWR); > > + ctx->devfd = open("/dev/udmabuf", O_RDONLY); > > if (ctx->devfd < 0) { > > pr_err("[skip,no-udmabuf: Unable to access DMA buffer device > > file]"); > > goto err_free_ctx; > > > > base-commit: fbb7ad31ab376c5101b2ac7205fad0344fd2de60 > > -- > > 2.55.0.rc0.799.gd6f94ed593-goog > > > > Reviewed-by: Bobby Eshleman <[email protected]>
Thanks Bobby. Shuah, would you mind picking this up?

