diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 955e1508..d0427fef 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -661,17 +661,9 @@ int V4L2VideoDevice::open(SharedFD handle, enum v4l2_buf_type type)
 {
 	int ret;
 
-	UniqueFD newFd = handle.dup();
-	if (!newFd.isValid()) {
-		ret = -errno;
-		LOG(V4L2, Error) << "Failed to duplicate file handle: "
-				 << strerror(-ret);
-		return ret;
-	}
-
-	ret = V4L2Device::setFd(std::move(newFd));
+	ret = V4L2Device::open(handle);
 	if (ret < 0) {
-		LOG(V4L2, Error) << "Failed to set file handle: "
+		LOG(V4L2, Error) << "Failed to open file handle: "
 				 << strerror(-ret);
 		return ret;
 	}
