diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp
index d8c62dd67..c673d23ec 100644
--- a/src/libcamera/dma_buf_allocator.cpp
+++ b/src/libcamera/dma_buf_allocator.cpp
@@ -100,7 +100,7 @@ DmaBufAllocator::DmaBufAllocator(DmaBufAllocatorFlags type)
 		if (!(type & info.type))
 			continue;
 
-		int ret = ::open(info.deviceNodeName, O_RDWR | O_CLOEXEC, 0);
+		int ret = ::open(info.deviceNodeName, O_RDONLY | O_CLOEXEC, 0);
 		if (ret < 0) {
 			ret = errno;
 			LOG(DmaBufAllocator, Debug)
