From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 5A3B235972 for ; Wed, 10 Jun 2026 12:57:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781096245; cv=none; b=GnFzaVmoEanKQIFoEka25vrkUi1qLdlaZhSij0Kk56CnXNcyf0PLHNOv0T7IqCFL57SeXnMMS/wMkxpwhHbResVbZgsgo1wbaebihszwYWxAIBozgVnwLdYs6Mw2wMrbH50zUaoE3einUsbEuzQ/5D7RPeWwG6i3TxDPKbQ2v5o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781096245; c=relaxed/simple; bh=6YA9f27qh9mxNMJTy0t4qFwBEHKoclJ2oyWrLICkyF8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jLDjLKecxJI0bFdDNVNH4AjejqAxELqdIHsjYeuuv57uAjHfPTz5wxSYzvtYhuRzlnTrPpPEc+5dWaCQjd+j1R6O7GS4NkHsYTsX7tkubHyDKtgefMTAk175PjUbTMakgpjyRzaMC9ScLkbvOCKKbareConWPbkxxv/X2KtE96w= 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=pBSI4TWs; arc=none smtp.client-ip=209.85.128.41 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="pBSI4TWs" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4903d730b1fso77715035e9.2 for ; Wed, 10 Jun 2026 05:57:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781096243; x=1781701043; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H5uqsocWiifn9fI4qO/LPuRHJe9fzJpovNTdwKX0G8U=; b=pBSI4TWshHy8z07GkK8iUK7BKMvUWX9HIEvO4tsOnWS6uRIi+8B3+j7t1X/B47JMTj NygS53LOiDkCpo/aBGuxtAIZqqpLmPoVfd3iy0kAKCvMpDFc/Olc/9VD9++PrCiHuWMb xsRL9JbYXlF64fR1Cz62AliOJmKJd6lRA2n/d5ufcQ7grxKFnvq4i/zDLh3swOR9dh1X i9Ae3iLjdDds0F08Dk4h2nI1EU9ta2zVhyf8vGOXbn/XdxpMfbL/++ki+TuvehfNjLVs L6yjTghPwb2XAAQ/qKkxxhdWi3wBaZiTpvXb60DVgbMLmxkeYKohd2Dp3MzCDkNX/lXy Wsug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781096243; x=1781701043; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=H5uqsocWiifn9fI4qO/LPuRHJe9fzJpovNTdwKX0G8U=; b=encd31E/jTbY/AEY55O1XQW6d9l9aiWJXQa//zEQZsqsl49MD8Ut7LPeDU1JUw3YHo Kq+/jqosEhPFp3lnmGGLL/QFaz91PwNPMtiDf4DgljZE8JXuJJpaWrHnMOFoEfKN9tM8 ZtDgeiqvFmVNeZO2vfK7EjrahHKuNNf3XPy5iW5EHL6tdSqTFeSt9clD9vIsW5avOwpK ovfElWME1JRNSMtPP2ikIjb7bO7CG5TAev/lw64mNAylC7RwkGsNRntiIJhpBmNfjZp+ MpumFC5sP8R84fXjlqSVlcVerT5GcKzuZzMdvd5OLGdzHrNfIJy7eP3ywpHYEbsXepJZ MkUw== X-Forwarded-Encrypted: i=1; AFNElJ9zVrsIwYRtPUHjdpJqpdXy7wNaWhola6KaHqkVELmyUJYIokpfUt0U53riak6JZ6Qtv3mID1IRXIbrunc=@vger.kernel.org X-Gm-Message-State: AOJu0YwZ/JIWkDkICYCh91O20PiA+bN23I31EXJv4aKa9s4G3ARme/km hv2Vyf1bThj8anc5M/CaJ1ieY0MOWUu8qZvEa96IZ5Nd9En6DqeUFr8= X-Gm-Gg: Acq92OGSPhTwAS8Df4tlOyADkXUjFlN6gA3SSbPB/NLYt/8QElJEctjnruNSsfmQB5k EKjRswtzOSVhV7jS02r9zPwsxNi8Hcp/jZ8xL5Fc5EWsvjWb+sd9AjIcXy4Qy7i3li3t2b5Uy3g 4mE8yLLPc8XBIQ8D6i4X7xKs8AAcqk78/C9Hs0Rya5ZVnYZ1JftxsZbPGOmH8664VhoJMlBl9bL iLvBMoh/83c3qrctzEQ8WT7u7qVsYreqE8Impx9vIqz0yV0Ntzw49ilA1c2/XtbVpXOHbf7/C6+ FECXZVzTDhqgQ6+KqiGt5pO/JzW4MSgDvUNiCyTo0NUjqrRqq3/re54fJD3ip5at9X8/STeVJqJ GGQcsaKT1/ituWzQeElqehYKf6KT2pyoma9R9XhO+dpTs8peJ74MIEt/q++UmwaxQOdAyAG9MyJ 7CtTCdahSXdmjbxzqDGFXIvvcUTUHYGM94f5qBbSs9hqRefpjChbgUrWxKYqWICnfXPS2fsNTSJ 6BcQsHw4GVIu3vhWr5vVPHOjjsTfMmFpPD+frrBfkstILVM2gn/6uM= X-Received: by 2002:a05:600c:4444:b0:490:b9c3:6c59 with SMTP id 5b1f17b1804b1-490c260579fmr398877765e9.29.1781096242349; Wed, 10 Jun 2026 05:57:22 -0700 (PDT) Received: from localhost.localdomain ([196.119.91.132]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490bc3d66c8sm537328905e9.10.2026.06.10.05.57.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 05:57:21 -0700 (PDT) From: Mohammed EL Kadiri To: quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org Cc: hverkuil@kernel.org, dmitry.baryshkov@oss.qualcomm.com, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Mohammed EL Kadiri , stable@vger.kernel.org Subject: [PATCH 1/2] media: venus: fix payload size returned by parse_caps() and parse_alloc_mode() Date: Wed, 10 Jun 2026 13:56:54 +0100 Message-ID: <20260610125655.10517-2-med08elkadiri@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260610125655.10517-1-med08elkadiri@gmail.com> References: <20260610125655.10517-1-med08elkadiri@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit parse_caps() and parse_alloc_mode() return only the size of their fixed header fields, excluding the flexible array payload. hfi_parser() uses this return value to advance through the firmware response buffer, so underreporting causes parser desynchronization. Return the full consumed size (header + entries), matching the correct pattern used by parse_profile_level(). Fixes: 9edaaa8e3e15 ("media: venus: hfi_parser: refactor hfi packet parsing logic") Cc: stable@vger.kernel.org Signed-off-by: Mohammed EL Kadiri --- drivers/media/platform/qcom/venus/hfi_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media/platform/qcom/venus/hfi_parser.c index 1b3db2caa99f..e2af4e9901ee 100644 --- a/drivers/media/platform/qcom/venus/hfi_parser.c +++ b/drivers/media/platform/qcom/venus/hfi_parser.c @@ -85,7 +85,7 @@ parse_alloc_mode(struct venus_core *core, u32 codecs, u32 domain, void *data) type++; } - return sizeof(*mode); + return mode->num_entries * sizeof(u32) + sizeof(*mode); } static void fill_profile_level(struct hfi_plat_caps *cap, const void *data, @@ -146,7 +146,7 @@ parse_caps(struct venus_core *core, u32 codecs, u32 domain, void *data) for_each_codec(core->caps, ARRAY_SIZE(core->caps), codecs, domain, fill_caps, caps_arr, num_caps); - return sizeof(*caps); + return num_caps * sizeof(*cap) + sizeof(u32); } static void fill_raw_fmts(struct hfi_plat_caps *cap, const void *fmts, -- 2.43.0