linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid()
@ 2025-08-06 17:25 Mukesh Ojha
  2025-08-06 17:25 ` [PATCH v2 2/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-06 17:25 UTC (permalink / raw)
  To: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
	Dmitry Baryshkov
  Cc: Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc,
	Mukesh Ojha

Firmware binaries may lack section headers, in which case
the e_shentsize field in the ELF header can be zero.

Update mdt_header_valid() to correctly handle this scenario
by adjusting the validation logic accordingly.

Fixes: 9f9967fed9d0 ("soc: qcom: mdt_loader: Ensure we don't read past the ELF header")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
Changes in v2:
- Make this patch as first patch of the series.
- Added R-b tag

 drivers/soc/qcom/mdt_loader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
index 0ca268bdf1f8..2a14ba9b0fb6 100644
--- a/drivers/soc/qcom/mdt_loader.c
+++ b/drivers/soc/qcom/mdt_loader.c
@@ -39,7 +39,7 @@ static bool mdt_header_valid(const struct firmware *fw)
 	if (phend > fw->size)
 		return false;
 
-	if (ehdr->e_shentsize != sizeof(struct elf32_shdr))
+	if (ehdr->e_shentsize && ehdr->e_shentsize != sizeof(struct elf32_shdr))
 		return false;
 
 	shend = size_add(size_mul(sizeof(struct elf32_shdr), ehdr->e_shnum), ehdr->e_shoff);
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/4] soc: qcom: mdt_loader: Remove unused parameter
  2025-08-06 17:25 [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
@ 2025-08-06 17:25 ` Mukesh Ojha
  2025-08-06 17:25 ` [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-06 17:25 UTC (permalink / raw)
  To: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
	Dmitry Baryshkov
  Cc: Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc,
	Mukesh Ojha, Konrad Dybcio

commit f4e526ff7e38e ("soc: qcom: mdt_loader: Extract PAS
 operations") move pas specific code from __qcom_mdt_load()
to a separate function qcom_mdt_pas_init() after which the
pas_init variable became unused in __qcom_mdt_load().

Remove pas_init argument from __qcom_mdt_load().

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
Changes in v2:
 - Added R-b tag and its order in the series.

 drivers/soc/qcom/mdt_loader.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
index 2a14ba9b0fb6..63af3e97c93b 100644
--- a/drivers/soc/qcom/mdt_loader.c
+++ b/drivers/soc/qcom/mdt_loader.c
@@ -333,7 +333,7 @@ static bool qcom_mdt_bins_are_split(const struct firmware *fw, const char *fw_na
 static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,
 			   const char *fw_name, int pas_id, void *mem_region,
 			   phys_addr_t mem_phys, size_t mem_size,
-			   phys_addr_t *reloc_base, bool pas_init)
+			   phys_addr_t *reloc_base)
 {
 	const struct elf32_phdr *phdrs;
 	const struct elf32_phdr *phdr;
@@ -459,7 +459,7 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
 		return ret;
 
 	return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
-			       mem_size, reloc_base, true);
+			       mem_size, reloc_base);
 }
 EXPORT_SYMBOL_GPL(qcom_mdt_load);
 
@@ -482,7 +482,7 @@ int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
 			  size_t mem_size, phys_addr_t *reloc_base)
 {
 	return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
-			       mem_size, reloc_base, false);
+			       mem_size, reloc_base);
 }
 EXPORT_SYMBOL_GPL(qcom_mdt_load_no_init);
 
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter
  2025-08-06 17:25 [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
  2025-08-06 17:25 ` [PATCH v2 2/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
@ 2025-08-06 17:25 ` Mukesh Ojha
  2025-08-06 19:07   ` Jeff Johnson
  2025-08-06 17:25 ` [PATCH v2 4/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
  2025-08-06 22:01 ` [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Bjorn Andersson
  3 siblings, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-06 17:25 UTC (permalink / raw)
  To: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
	Dmitry Baryshkov
  Cc: Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc,
	Mukesh Ojha

pas id is not used in qcom_mdt_load_no_init() and it should not
be used as it is non-PAS specific function and has no relation
to PAS specific mechanism.

Reviewed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Acked-by: Jeff Johnson <jjohnson@kernel.org> # drivers/net/wireless/ath/ath12k/ahb.c
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
Changes in v2:
 -  Added Acked-b and R-b tag and its order in the series.

 drivers/media/platform/qcom/venus/firmware.c |  4 ++--
 drivers/net/wireless/ath/ath12k/ahb.c        |  2 +-
 drivers/remoteproc/qcom_q6v5_adsp.c          |  2 +-
 drivers/remoteproc/qcom_q6v5_pas.c           |  7 +++----
 drivers/remoteproc/qcom_q6v5_wcss.c          |  2 +-
 drivers/soc/qcom/mdt_loader.c                | 12 +++++-------
 include/linux/soc/qcom/mdt_loader.h          |  7 +++----
 7 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index 66a18830e66d..862d0718f694 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -136,8 +136,8 @@ static int venus_load_fw(struct venus_core *core, const char *fwname,
 		ret = qcom_mdt_load(dev, mdt, fwname, VENUS_PAS_ID,
 				    mem_va, *mem_phys, *mem_size, NULL);
 	else
-		ret = qcom_mdt_load_no_init(dev, mdt, fwname, VENUS_PAS_ID,
-					    mem_va, *mem_phys, *mem_size, NULL);
+		ret = qcom_mdt_load_no_init(dev, mdt, fwname, mem_va,
+					    *mem_phys, *mem_size, NULL);
 
 	memunmap(mem_va);
 err_release_fw:
diff --git a/drivers/net/wireless/ath/ath12k/ahb.c b/drivers/net/wireless/ath/ath12k/ahb.c
index 3b983f4e3268..b30527c402f6 100644
--- a/drivers/net/wireless/ath/ath12k/ahb.c
+++ b/drivers/net/wireless/ath/ath12k/ahb.c
@@ -414,7 +414,7 @@ static int ath12k_ahb_power_up(struct ath12k_base *ab)
 		goto err_fw2;
 	}
 
-	ret = qcom_mdt_load_no_init(dev, fw2, fw2_name, pasid, mem_region, mem_phys,
+	ret = qcom_mdt_load_no_init(dev, fw2, fw2_name, mem_region, mem_phys,
 				    mem_size, &mem_phys);
 	if (ret) {
 		ath12k_err(ab, "Failed to load MDT segments: %d\n", ret);
diff --git a/drivers/remoteproc/qcom_q6v5_adsp.c b/drivers/remoteproc/qcom_q6v5_adsp.c
index 94af77baa7a1..e98b7e03162c 100644
--- a/drivers/remoteproc/qcom_q6v5_adsp.c
+++ b/drivers/remoteproc/qcom_q6v5_adsp.c
@@ -317,7 +317,7 @@ static int adsp_load(struct rproc *rproc, const struct firmware *fw)
 	struct qcom_adsp *adsp = rproc->priv;
 	int ret;
 
-	ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0,
+	ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware,
 				    adsp->mem_region, adsp->mem_phys,
 				    adsp->mem_size, &adsp->mem_reloc);
 	if (ret)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 02e29171cbbe..55a7da801183 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -242,9 +242,8 @@ static int qcom_pas_load(struct rproc *rproc, const struct firmware *fw)
 			goto release_dtb_firmware;
 
 		ret = qcom_mdt_load_no_init(pas->dev, pas->dtb_firmware, pas->dtb_firmware_name,
-					    pas->dtb_pas_id, pas->dtb_mem_region,
-					    pas->dtb_mem_phys, pas->dtb_mem_size,
-					    &pas->dtb_mem_reloc);
+					    pas->dtb_mem_region, pas->dtb_mem_phys,
+					    pas->dtb_mem_size, &pas->dtb_mem_reloc);
 		if (ret)
 			goto release_dtb_metadata;
 	}
@@ -307,7 +306,7 @@ static int qcom_pas_start(struct rproc *rproc)
 	if (ret)
 		goto disable_px_supply;
 
-	ret = qcom_mdt_load_no_init(pas->dev, pas->firmware, rproc->firmware, pas->pas_id,
+	ret = qcom_mdt_load_no_init(pas->dev, pas->firmware, rproc->firmware,
 				    pas->mem_region, pas->mem_phys, pas->mem_size,
 				    &pas->mem_reloc);
 	if (ret)
diff --git a/drivers/remoteproc/qcom_q6v5_wcss.c b/drivers/remoteproc/qcom_q6v5_wcss.c
index 93648734a2f2..07c88623f597 100644
--- a/drivers/remoteproc/qcom_q6v5_wcss.c
+++ b/drivers/remoteproc/qcom_q6v5_wcss.c
@@ -757,7 +757,7 @@ static int q6v5_wcss_load(struct rproc *rproc, const struct firmware *fw)
 	int ret;
 
 	ret = qcom_mdt_load_no_init(wcss->dev, fw, rproc->firmware,
-				    0, wcss->mem_region, wcss->mem_phys,
+				    wcss->mem_region, wcss->mem_phys,
 				    wcss->mem_size, &wcss->mem_reloc);
 	if (ret)
 		return ret;
diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
index 63af3e97c93b..145bd1374f07 100644
--- a/drivers/soc/qcom/mdt_loader.c
+++ b/drivers/soc/qcom/mdt_loader.c
@@ -331,7 +331,7 @@ static bool qcom_mdt_bins_are_split(const struct firmware *fw, const char *fw_na
 }
 
 static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,
-			   const char *fw_name, int pas_id, void *mem_region,
+			   const char *fw_name, void *mem_region,
 			   phys_addr_t mem_phys, size_t mem_size,
 			   phys_addr_t *reloc_base)
 {
@@ -353,7 +353,7 @@ static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,
 	if (!mdt_header_valid(fw))
 		return -EINVAL;
 
-	is_split = qcom_mdt_bins_are_split(fw, fw_name);
+	is_split = qcom_mdt_bins_are_split(fw);
 	ehdr = (struct elf32_hdr *)fw->data;
 	phdrs = (struct elf32_phdr *)(fw->data + ehdr->e_phoff);
 
@@ -458,7 +458,7 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
 	if (ret)
 		return ret;
 
-	return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
+	return __qcom_mdt_load(dev, fw, firmware, mem_region, mem_phys,
 			       mem_size, reloc_base);
 }
 EXPORT_SYMBOL_GPL(qcom_mdt_load);
@@ -468,7 +468,6 @@ EXPORT_SYMBOL_GPL(qcom_mdt_load);
  * @dev:	device handle to associate resources with
  * @fw:		firmware object for the mdt file
  * @firmware:	name of the firmware, for construction of segment file names
- * @pas_id:	PAS identifier
  * @mem_region:	allocated memory region to load firmware into
  * @mem_phys:	physical address of allocated memory region
  * @mem_size:	size of the allocated memory region
@@ -477,11 +476,10 @@ EXPORT_SYMBOL_GPL(qcom_mdt_load);
  * Returns 0 on success, negative errno otherwise.
  */
 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
-			  const char *firmware, int pas_id,
-			  void *mem_region, phys_addr_t mem_phys,
+			  const char *firmware, void *mem_region, phys_addr_t mem_phys,
 			  size_t mem_size, phys_addr_t *reloc_base)
 {
-	return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
+	return __qcom_mdt_load(dev, fw, firmware, mem_region, mem_phys,
 			       mem_size, reloc_base);
 }
 EXPORT_SYMBOL_GPL(qcom_mdt_load_no_init);
diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/mdt_loader.h
index 9e8e60421192..8ea8230579a2 100644
--- a/include/linux/soc/qcom/mdt_loader.h
+++ b/include/linux/soc/qcom/mdt_loader.h
@@ -24,7 +24,7 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
 		  phys_addr_t *reloc_base);
 
 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
-			  const char *fw_name, int pas_id, void *mem_region,
+			  const char *fw_name, void *mem_region,
 			  phys_addr_t mem_phys, size_t mem_size,
 			  phys_addr_t *reloc_base);
 void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len,
@@ -54,9 +54,8 @@ static inline int qcom_mdt_load(struct device *dev, const struct firmware *fw,
 
 static inline int qcom_mdt_load_no_init(struct device *dev,
 					const struct firmware *fw,
-					const char *fw_name, int pas_id,
-					void *mem_region, phys_addr_t mem_phys,
-					size_t mem_size,
+					const char *fw_name, void *mem_region,
+					phys_addr_t mem_phys, size_t mem_size,
 					phys_addr_t *reloc_base)
 {
 	return -ENODEV;
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 4/4] soc: qcom: mdt_loader: Remove unused parameter
  2025-08-06 17:25 [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
  2025-08-06 17:25 ` [PATCH v2 2/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
  2025-08-06 17:25 ` [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
@ 2025-08-06 17:25 ` Mukesh Ojha
  2025-08-06 22:01 ` [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Bjorn Andersson
  3 siblings, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-06 17:25 UTC (permalink / raw)
  To: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
	Dmitry Baryshkov
  Cc: Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc,
	Mukesh Ojha

fw_name in qcom_mdt_bins_are_split() seems unused now, it may have
used in the past for logging it but due to code refactor this parameter
is unused now.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
Changes in v2:
 - made this as separate patch.

 drivers/soc/qcom/mdt_loader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
index 145bd1374f07..8210fb3dd51a 100644
--- a/drivers/soc/qcom/mdt_loader.c
+++ b/drivers/soc/qcom/mdt_loader.c
@@ -302,7 +302,7 @@ int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw,
 }
 EXPORT_SYMBOL_GPL(qcom_mdt_pas_init);
 
-static bool qcom_mdt_bins_are_split(const struct firmware *fw, const char *fw_name)
+static bool qcom_mdt_bins_are_split(const struct firmware *fw)
 {
 	const struct elf32_phdr *phdrs;
 	const struct elf32_hdr *ehdr;
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter
  2025-08-06 17:25 ` [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
@ 2025-08-06 19:07   ` Jeff Johnson
  2025-08-07  5:36     ` Mukesh Ojha
  0 siblings, 1 reply; 9+ messages in thread
From: Jeff Johnson @ 2025-08-06 19:07 UTC (permalink / raw)
  To: Mukesh Ojha, Vikash Garodia, Dikshita Agarwal,
	Mauro Carvalho Chehab, Jeff Johnson, Bjorn Andersson,
	Mathieu Poirier, Konrad Dybcio, Dmitry Baryshkov
  Cc: Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc

On 8/6/2025 10:25 AM, Mukesh Ojha wrote:
> pas id is not used in qcom_mdt_load_no_init() and it should not
> be used as it is non-PAS specific function and has no relation
> to PAS specific mechanism.
...> @@ -353,7 +353,7 @@ static int __qcom_mdt_load(struct device *dev, const
struct firmware *fw,
>  	if (!mdt_header_valid(fw))
>  		return -EINVAL;
>  
> -	is_split = qcom_mdt_bins_are_split(fw, fw_name);
> +	is_split = qcom_mdt_bins_are_split(fw);

this should be in the 4/4 patch


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid()
  2025-08-06 17:25 [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
                   ` (2 preceding siblings ...)
  2025-08-06 17:25 ` [PATCH v2 4/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
@ 2025-08-06 22:01 ` Bjorn Andersson
  2025-08-07  5:09   ` Mukesh Ojha
  3 siblings, 1 reply; 9+ messages in thread
From: Bjorn Andersson @ 2025-08-06 22:01 UTC (permalink / raw)
  To: Mukesh Ojha
  Cc: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Mathieu Poirier, Konrad Dybcio, Dmitry Baryshkov,
	Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc

On Wed, Aug 06, 2025 at 10:55:28PM +0530, Mukesh Ojha wrote:
> Firmware binaries may lack section headers, in which case
> the e_shentsize field in the ELF header can be zero.
> 
> Update mdt_header_valid() to correctly handle this scenario
> by adjusting the validation logic accordingly.
> 

As I replied earlier today on v1 (probably after you sent this), I've
applied the patch I sent out earlier for this problem.

Thanks,
Bjorn

> Fixes: 9f9967fed9d0 ("soc: qcom: mdt_loader: Ensure we don't read past the ELF header")
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> Changes in v2:
> - Make this patch as first patch of the series.
> - Added R-b tag
> 
>  drivers/soc/qcom/mdt_loader.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
> index 0ca268bdf1f8..2a14ba9b0fb6 100644
> --- a/drivers/soc/qcom/mdt_loader.c
> +++ b/drivers/soc/qcom/mdt_loader.c
> @@ -39,7 +39,7 @@ static bool mdt_header_valid(const struct firmware *fw)
>  	if (phend > fw->size)
>  		return false;
>  
> -	if (ehdr->e_shentsize != sizeof(struct elf32_shdr))
> +	if (ehdr->e_shentsize && ehdr->e_shentsize != sizeof(struct elf32_shdr))
>  		return false;
>  
>  	shend = size_add(size_mul(sizeof(struct elf32_shdr), ehdr->e_shnum), ehdr->e_shoff);
> -- 
> 2.50.1
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid()
  2025-08-06 22:01 ` [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Bjorn Andersson
@ 2025-08-07  5:09   ` Mukesh Ojha
  0 siblings, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-07  5:09 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Mathieu Poirier, Konrad Dybcio, Dmitry Baryshkov,
	Bryan O'Donoghue, Bjorn Andersson, linux-media, linux-arm-msm,
	linux-kernel, linux-wireless, ath12k, linux-remoteproc

On Wed, Aug 06, 2025 at 03:01:45PM -0700, Bjorn Andersson wrote:
> On Wed, Aug 06, 2025 at 10:55:28PM +0530, Mukesh Ojha wrote:
> > Firmware binaries may lack section headers, in which case
> > the e_shentsize field in the ELF header can be zero.
> > 
> > Update mdt_header_valid() to correctly handle this scenario
> > by adjusting the validation logic accordingly.
> > 
> 
> As I replied earlier today on v1 (probably after you sent this), I've
> applied the patch I sent out earlier for this problem.

Sure, thank you.

-Mukesh

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter
  2025-08-06 19:07   ` Jeff Johnson
@ 2025-08-07  5:36     ` Mukesh Ojha
  2025-08-07 16:50       ` Bjorn Andersson
  0 siblings, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2025-08-07  5:36 UTC (permalink / raw)
  To: Jeff Johnson
  Cc: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
	Jeff Johnson, Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
	Dmitry Baryshkov, Bryan O'Donoghue, Bjorn Andersson,
	linux-media, linux-arm-msm, linux-kernel, linux-wireless, ath12k,
	linux-remoteproc

On Wed, Aug 06, 2025 at 12:07:05PM -0700, Jeff Johnson wrote:
> On 8/6/2025 10:25 AM, Mukesh Ojha wrote:
> > pas id is not used in qcom_mdt_load_no_init() and it should not
> > be used as it is non-PAS specific function and has no relation
> > to PAS specific mechanism.
> ...> @@ -353,7 +353,7 @@ static int __qcom_mdt_load(struct device *dev, const
> struct firmware *fw,
> >  	if (!mdt_header_valid(fw))
> >  		return -EINVAL;
> >  
> > -	is_split = qcom_mdt_bins_are_split(fw, fw_name);
> > +	is_split = qcom_mdt_bins_are_split(fw);
> 
> this should be in the 4/4 patch
> 

Rush to send patches!!

-- 
-Mukesh

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter
  2025-08-07  5:36     ` Mukesh Ojha
@ 2025-08-07 16:50       ` Bjorn Andersson
  0 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2025-08-07 16:50 UTC (permalink / raw)
  To: Jeff Johnson, Vikash Garodia, Dikshita Agarwal,
	Mauro Carvalho Chehab, Jeff Johnson, Mathieu Poirier,
	Konrad Dybcio, Dmitry Baryshkov, Bryan O'Donoghue,
	Bjorn Andersson, linux-media, linux-arm-msm, linux-kernel,
	linux-wireless, ath12k, linux-remoteproc

On Thu, Aug 07, 2025 at 11:06:10AM +0530, Mukesh Ojha wrote:
> On Wed, Aug 06, 2025 at 12:07:05PM -0700, Jeff Johnson wrote:
> > On 8/6/2025 10:25 AM, Mukesh Ojha wrote:
> > > pas id is not used in qcom_mdt_load_no_init() and it should not
> > > be used as it is non-PAS specific function and has no relation
> > > to PAS specific mechanism.
> > ...> @@ -353,7 +353,7 @@ static int __qcom_mdt_load(struct device *dev, const
> > struct firmware *fw,
> > >  	if (!mdt_header_valid(fw))
> > >  		return -EINVAL;
> > >  
> > > -	is_split = qcom_mdt_bins_are_split(fw, fw_name);
> > > +	is_split = qcom_mdt_bins_are_split(fw);
> > 
> > this should be in the 4/4 patch
> > 
> 
> Rush to send patches!!
> 

Please don't!

Also remember that this isn't a regression fix and we're in the merge
window, so we're not going to pick these changes this week anyways.

Regards,
Bjorn

> -- 
> -Mukesh

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-08-07 16:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-06 17:25 [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
2025-08-06 17:25 ` [PATCH v2 2/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
2025-08-06 17:25 ` [PATCH v2 3/4] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
2025-08-06 19:07   ` Jeff Johnson
2025-08-07  5:36     ` Mukesh Ojha
2025-08-07 16:50       ` Bjorn Andersson
2025-08-06 17:25 ` [PATCH v2 4/4] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
2025-08-06 22:01 ` [PATCH v2 1/4] soc: qcom: mdt_loader: Fix check mdt_header_valid() Bjorn Andersson
2025-08-07  5:09   ` Mukesh Ojha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).