From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 26A3F248880 for ; Sat, 11 Apr 2026 21:11:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775941896; cv=none; b=e0jjYrbXczyizQmYz03bxs2FYWv3hlJoaMou6lAV/vIUGAbySEs+PL9kk1w88tgJcVxtDLR+gEvmjX8aOYaozoeqybvl2H59pZvyY4EOv11BmsPTUOvb221bkQZ5AMWoAZbkBVRfYMn+v/5386NINdcVnxuhsB70QjkLsq2VC/A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775941896; c=relaxed/simple; bh=gi15hcyqfgdadvIhdvu5Qn7qP7o4w4fImY4nXxFjqQc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=sEO8ZBkHbWop7nKv/qYCVvN/JZMqnfzhUD+9zOJ5M400rrU5cCPOcpRH+ZNIVUFJSjq12IzicVYKXSkqVIJ96nBEpPBKEGd3hKKfHj2E717bOhd8/8CwJEv00tD9JCwIF+yblpxx3Pni9I3yMeZ25yNtzCX0QI5MZ2BFLk2nqQo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ixj8ZSCf; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ixj8ZSCf" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-66c24b42efbso4842324a12.2 for ; Sat, 11 Apr 2026 14:11:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775941893; x=1776546693; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7sJmPJWyRpJ6XpOWhqHf2lRa3H2nAMFw7nJfxUU+y3o=; b=Ixj8ZSCfh9qoyLBz05ac4nnJJeza7KmqAD8wV816BmzFZN5hwn0CqobIIF3Z98nPJQ d1mFxY/boyPEG3/fpS0fr7OP7ltIrnVm5S/rVPX5MuYVZs+97JXkES534wjObAWrxSln Edh3zs2miqDRGa0YcYp6EwEbP3d8dtRAzrtUtiGDbInT9xqR1NrcQ9DKgCJdYY4SNjfe woVUlpP6RCizXf0wRfvel6Aa2MKCl+SekvcNN8ujiz+UUjqlUGiO+s2Y7bZbFrURi9ds 9141oz4vBiZoAJt7h7PATVjpKTijn+//SmhG5UOkkfxv0grMEEaOtcYFamnGcM4fgfJA Jyiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775941893; x=1776546693; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7sJmPJWyRpJ6XpOWhqHf2lRa3H2nAMFw7nJfxUU+y3o=; b=ALrBnbS+VHJPD7pqocs5JY0mnHqGe9w/eew9MYwgiPFyZpQQoK8H5roOI3XBSKKQHI 1Kmy1jG9h28L56cGD4zqjewofWNkbc8VkRUj5UxNEC1rX/HFTiq1Zb/X1FWk7aapye76 mlds1L2GERHD/ZuZ3rP3jNVw11D57yMH2Vk+r/XxK8sdXYwDIMFbNeIDD4/cXF3o2IM0 2UoHw/lhFlmZpxa2mL2d1Vd91lGcJGoAxTnHCu6nXKKnMqR2xKK8v1fmmrLfRzdZerzv B4r+7Ls6DnKxyU43JsUHNCbe8GWf8uENMyTS7eIJ1UIsodu+A1HJqw/IR6rLIC2JG/b1 oFAA== X-Forwarded-Encrypted: i=1; AJvYcCVG6y3l1XzDZX1PalxKd5K717Yr3DgZ5kBz07KVMPavhC2sLcEzNUzFttcT4hI62pS7z3rPpy+y4DIo0PI=@vger.kernel.org X-Gm-Message-State: AOJu0YxDnEoDjX4OK0z0KWXupGz4U7ytXE5h+U35ieNlpw9uxDvp0bc+ NysdvPx/FyNEP9etWJtmuv9OygvTDdMxIm62now3x9aP8s+tRgWWQuKr X-Gm-Gg: AeBDiesYJmHiS7xgGEKs8c77s/zkcyS2RUH1VGHRtgyab1rEOyffKdNxxhP+YLMydWm j0oBZZ9oOp9j4fjpJ9/DzdjolzWgu/qvQ1mVQTR1S0cxUbJp2SZ7+S6HRCaAIBb1Mwxa4jWgXoy HgtsCETb2OBJAwfvqc0rV2EGxIQJpkcFbd4/JTEqdC3Vvpsgfpfx4AqsaHqn3yl/iMClsVsbEUz 9aOpfajptVSgFYvJUhJJT31AbR3bs2k8GoLo969bBZlb9GcH+gjkQsk9MZ7dPI5AmRR/Qcs7b2+ oX9EsBoQOJtbL5jIfiiSHDLwSDNShid3fPXa1PHOWmQc1DpsqlwhFbbRzQzyM9B44wiYK1aieh3 E6CKqQHJaOZubTlm8fc/ZqzWkUrZfA4z4YI9hUKAqQRM5O4cdg81hVEQzLfRbl+BhqgOMfsykDY xXv717ToJ8niwtfeZVEjR1MueI0bZPcPLu2QXtRctZ7Unb3+ARCV3WMtKBAng9Vib4WD4uhJI4q yrka6s3vXctwLzMUdrWvYaHDzz1OQfIzQ6nWcIYJaCbxMrfvvu/JEuzzglSLnfcyR/4JJ3unQ3I BG4fsw== X-Received: by 2002:a05:6402:280c:b0:670:64fd:2301 with SMTP id 4fb4d7f45d1cf-670795162d8mr3722324a12.15.1775941893193; Sat, 11 Apr 2026 14:11:33 -0700 (PDT) Received: from ahossu.residents.sin.openfiber.nl ([88.202.160.248]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-670702eec8asm1511110a12.2.2026.04.11.14.11.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Apr 2026 14:11:31 -0700 (PDT) From: Alexandru Hossu To: Thierry Reding , Sowjanya Komatineni Cc: Jonathan Hunter , Luca Ceresoli , Mauro Carvalho Chehab , Greg Kroah-Hartman , linux-media@vger.kernel.org, linux-tegra@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Alexandru Hossu Subject: [PATCH 1/2] staging: media: tegra-video: fix wrong return type in tegra_get_format_fourcc_by_idx() Date: Sat, 11 Apr 2026 23:10:04 +0200 Message-ID: <20260411211006.150782-1-hossu.alexandru@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The function is declared to return u32, but returns -EINVAL on the error path. Due to implicit conversion, -EINVAL (-22) becomes 0xFFFFFFEA as u32, which is an invalid V4L2 pixel format value. The caller tegra_channel_enum_format() assigns this garbage value directly to f->pixelformat and returns 0 (success) to userspace via VIDIOC_ENUM_FMT, giving applications a silently wrong format descriptor instead of an error. Fix this by changing the return type to int and propagating the error correctly in the caller. Signed-off-by: Alexandru Hossu --- drivers/staging/media/tegra-video/vi.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media/tegra-video/vi.c index 9c0b38585d63..afc7327ef318 100644 --- a/drivers/staging/media/tegra-video/vi.c +++ b/drivers/staging/media/tegra-video/vi.c @@ -77,13 +77,13 @@ static int tegra_get_format_idx_by_code(struct tegra_vi *vi, return -1; } -static u32 tegra_get_format_fourcc_by_idx(struct tegra_vi *vi, +static int tegra_get_format_fourcc_by_idx(struct tegra_vi *vi, unsigned int index) { if (index >= vi->soc->nformats) return -EINVAL; - return vi->soc->video_formats[index].fourcc; + return (int)vi->soc->video_formats[index].fourcc; } static const struct tegra_video_format * @@ -395,6 +395,7 @@ static int tegra_channel_enum_format(struct file *file, void *fh, struct tegra_vi_channel *chan = video_drvdata(file); unsigned int index = 0, i; unsigned long *fmts_bitmap = chan->tpg_fmts_bitmap; + int ret; if (!IS_ENABLED(CONFIG_VIDEO_TEGRA_TPG)) fmts_bitmap = chan->fmts_bitmap; @@ -405,7 +406,11 @@ static int tegra_channel_enum_format(struct file *file, void *fh, for (i = 0; i < f->index + 1; i++, index++) index = find_next_bit(fmts_bitmap, MAX_FORMAT_NUM, index); - f->pixelformat = tegra_get_format_fourcc_by_idx(chan->vi, index - 1); + ret = tegra_get_format_fourcc_by_idx(chan->vi, index - 1); + if (ret < 0) + return ret; + + f->pixelformat = ret; return 0; } -- 2.53.0