Netdev List
 help / color / mirror / Atom feed
* [PATCH v2] selftests: Open /dev/udmabuf O_RDONLY
@ 2026-07-01 19:22 T.J. Mercier
  2026-07-02 20:53 ` Bobby Eshleman
  0 siblings, 1 reply; 2+ messages in thread
From: T.J. Mercier @ 2026-07-01 19:22 UTC (permalink / raw)
  To: kraxel, vivek.kasireddy, kuba, Shuah Khan, Andrew Lunn,
	David S. Miller, Eric Dumazet, Paolo Abeni
  Cc: T.J. Mercier, linux-kselftest, linux-kernel, netdev, bpf

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 <tjmercier@google.com>
---
 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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] selftests: Open /dev/udmabuf O_RDONLY
  2026-07-01 19:22 [PATCH v2] selftests: Open /dev/udmabuf O_RDONLY T.J. Mercier
@ 2026-07-02 20:53 ` Bobby Eshleman
  0 siblings, 0 replies; 2+ messages in thread
From: Bobby Eshleman @ 2026-07-02 20:53 UTC (permalink / raw)
  To: T.J. Mercier
  Cc: kraxel, vivek.kasireddy, kuba, Shuah Khan, Andrew Lunn,
	David S. Miller, Eric Dumazet, Paolo Abeni, linux-kselftest,
	linux-kernel, netdev, bpf

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 <tjmercier@google.com>
> ---
>  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 <bobbyeshleman@meta.com>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-07-02 20:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 19:22 [PATCH v2] selftests: Open /dev/udmabuf O_RDONLY T.J. Mercier
2026-07-02 20:53 ` Bobby Eshleman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox