diff --git a/libavformat/v4l2.c b/libavformat/v4l2.c
index 99b768774e19786b50f84f1beb1d5c0a7eb4ac3a..d385d57c7c5b378ec3863e744ff510d336db9902 100644
--- a/libavformat/v4l2.c
+++ b/libavformat/v4l2.c
@@ -608,7 +608,7 @@ static int v4l2_read_packet(AVFormatContext *s1, AVPacket *pkt)
         return AVERROR(EIO);
     }
     if (res < 0) {
-        return AVERROR(EIO);
+        return res;
     }
 
     if (s1->streams[0]->codec->coded_frame) {