From nobody Tue Apr 7 04:36:50 2026 Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2104926E6F2 for ; Mon, 16 Mar 2026 13:30:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773667836; cv=none; b=WyIQyyxytjOwPlOQbq7H1/YOh5Ej5V/rNUAu+nZhylIMay7VGkS3wKyqORFiyITaQ9gnTvhOpCqQXmB6e3bxcYcf/MrMpHujQ+IZTO4YhMdg7yUZ8o978jOqGq0mLhlEnHcAVqTgGyrLSpWds4ervbShQaCnm/Q614GVWQ00H3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773667836; c=relaxed/simple; bh=Yq7adSLvEY5q4q42T4Hel6YbK+rT6LRdgNp2DFqfKmo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZaJXIt64/XAGk9uq9OgniOUHjtVFZyOq8zdaKEZ2Oo/2T4rVYPza8hlXSP/Fn/tTqbqJ7o9e4e7H7je3yL1rtChsRhLWEBX+GP/M8sa7GTFVaEv+y3zZfAgtF5bMDsvs3D6UKnHS3t3FR1L/PSrDUwM7DvYySHUdjiY25NqwBvk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=UazB3YNu; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="UazB3YNu" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-5a140efd2d5so8284224e87.2 for ; Mon, 16 Mar 2026 06:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1773667832; x=1774272632; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=nNpO7clZEY/eZEw4c7Ur6m3POITgkwC7i5ZcONx8gKw=; b=UazB3YNuR1OA9YQAf40Rqtk97+mCLzD0Ydb9SuvnVn3lX/m9jj6TpJTH5/JBtH1KUi UWkMYniUkrdbmDft0nV82PGhiMjJQjcdTNGre2vJC4eWmgTMlTP9U+pjtcGgrdRjYZTp QwvaEOGTnDcsvhXFf5F9wwGZRgel4t1vpEUg4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773667832; x=1774272632; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=nNpO7clZEY/eZEw4c7Ur6m3POITgkwC7i5ZcONx8gKw=; b=adZB8s+dE7xJTIfJwUCoXZj+HPb6zg9y51yOsxqaPaS2g9MIDxs6kftcC49jsbUkvH pLxYWvWUoTdQETtI8RbYK3n7NYlxnMi5Fq7uMuZapG9dQR6AovDyISz8mGj5/Tp/ceto 0AJPeD5vJvQwp6J2G8X5+pMlNLMiF1IDwFULoE864PYFx5n22dLSrpa3lyb+2jGONsho YRGWK1MYyc6bRhRRBqHycKrczH1A7dERMISYnYJuTJIjE5+YqQ+OdhSglZhhdS7Z6+YT z6YFnEQKnNSiYjAMga+95xYnnrvz2O7E0hmUkDBBGSM5C78TqJteMjRXvdoCCT3ehHbM O+RQ== X-Forwarded-Encrypted: i=1; AJvYcCVLQiaYJjv8Ugp0SmiyLLY4r+RbFkqeBq4roBRpetdJtNMwrqQUaGPbJBnWlduqBA3sZ9bf1nROzeYMQlI=@vger.kernel.org X-Gm-Message-State: AOJu0YxshT1szeDKAuPcyrUGuD/OSpibrCs/1w6oZUjKwe/0USUxzQ58 GQD5+SV6JSVzH0xsRb4kMvdh55AoVFq04lS2vmFaoJfYoGxm50luiyftkrKivMINJg== X-Gm-Gg: ATEYQzwGJ6iGBmbd6c5E+1mo5EUl/myLDRkLiaKowIfvbv+FkFWL59UBmibQt0AqZtg E0kDKAM/fqKPIP6KWYaYqblinVv31hc62AuegHHOmUSdlOBSbhKd/t2KdY/PPFKAJsxX8+CD2tL B/QGi5CI+5AIrPrDzaAqhZJjXB9zsMKclcwAlQXqezfvoMQctm0ELJfubmlgDtcEa+2qcNchrkm Ito0pPu3PcbWiW3UPdS55Rq+xrIrcwIQAw98npzIIOCHZmucKykvuJtqEMp3o5sazUV/2Po8piy Fz6YfFFsHANPvyiqxRnuhOpqe5L72yGc31g0FpWKTJ6En0a7en0XP7IQ0JU3mlkdO9IUD78lJsn 3sIi3Ijnd5FXOC/y8RtN+QATlarrNhkEI1/A2OvcdDu2ad77qfIAmGMMu7iKuT6ayEs+v7s7ApE Zz7ZHgNXqsO8ukUSwCVizbh/i39eD1rf47lQRMVq+1wvyLezAaiSvg+0hdnZt1SWejGzksKA7t6 g== X-Received: by 2002:ac2:559b:0:b0:5a1:440f:512f with SMTP id 2adb3069b0e04-5a162b0c48fmr3716581e87.27.1773667832281; Mon, 16 Mar 2026 06:30:32 -0700 (PDT) Received: from ribalda.c.googlers.com (27.69.88.34.bc.googleusercontent.com. [34.88.69.27]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a15636b69dsm3469985e87.82.2026.03.16.06.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2026 06:30:31 -0700 (PDT) From: Ricardo Ribalda Date: Mon, 16 Mar 2026 13:30:30 +0000 Subject: [PATCH v3 2/2] media: uvcvideo: Fix sequence number when no EOF Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260316-uvc-fid-v3-2-c793354469b5@chromium.org> References: <20260316-uvc-fid-v3-0-c793354469b5@chromium.org> In-Reply-To: <20260316-uvc-fid-v3-0-c793354469b5@chromium.org> To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Yunke Cao , Ricardo Ribalda , stable@kernel.org X-Mailer: b4 0.14.3 If the driver could not detect the EOF, the sequence number is increased twice: 1) When we enter uvc_video_decode_start() with the old buffer and FID has fliped =3D> We return -EAGAIN and last_fid is not flipped 2) When we enter uvc_video_decode_start() with the new buffer. Fix this issue by saving last_fid on the first FID flip. Cc: stable@kernel.org Fixes: 650b95feee35 ("[media] uvcvideo: Generate discontinuous sequence num= bers when frames are lost") Reported-by: Hans de Goede Closes: https://lore.kernel.org/linux-media/CANiDSCuj4cPuB5_v2xyvAagA5FjoN8= V5scXiFFOeD3aKDMqkCg@mail.gmail.com/T/#me39fb134e8c2c085567a31548c3403eb639= 625e4 Signed-off-by: Ricardo Ribalda --- drivers/media/usb/uvc/uvc_video.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_= video.c index 9e06b1d0f0f9..3e6ded69388f 100644 --- a/drivers/media/usb/uvc/uvc_video.c +++ b/drivers/media/usb/uvc/uvc_video.c @@ -1254,6 +1254,12 @@ static int uvc_video_decode_start(struct uvc_streami= ng *stream, uvc_dbg(stream->dev, FRAME, "Frame complete (FID bit toggled)\n"); buf->state =3D UVC_BUF_STATE_READY; + + /* + * If the EOF detection has failed, we need to save the last_fid + * to avoid increasing the sequence number twice. + */ + stream->last_fid =3D fid; return -EAGAIN; } =20 --=20 2.53.0.851.ga537e3e6e9-goog