* [PATCH 0/3] EDITME: cover title for mdtloader-changes
@ 2025-08-04 12:41 Mukesh Ojha
2025-08-04 12:41 ` [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
` (4 more replies)
0 siblings, 5 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 12:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson, Mukesh Ojha
---
Mukesh Ojha (3):
soc: qcom: mdt_loader: Remove unused parameter
soc: qcom: mdt_loader: Remove pas id parameter
soc: qcom: mdt_loader: Fix check mdt_header_valid()
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 | 22 ++++++++++------------
include/linux/soc/qcom/mdt_loader.h | 7 +++----
7 files changed, 21 insertions(+), 25 deletions(-)
---
base-commit: 5c5a10f0be967a8950a2309ea965bae54251b50e
change-id: 20250804-mdtloader-changes-9aca55e8cf37
Best regards,
--
Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
@ 2025-08-04 12:41 ` Mukesh Ojha
2025-08-04 13:14 ` Konrad Dybcio
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
` (3 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 12:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson, Mukesh Ojha
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().
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
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 0ca268bdf1f8..dfd15d189087 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] 17+ messages in thread
* [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
2025-08-04 12:41 ` [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
@ 2025-08-04 12:41 ` Mukesh Ojha
2025-08-04 13:16 ` Konrad Dybcio
` (3 more replies)
2025-08-04 12:41 ` [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
` (2 subsequent siblings)
4 siblings, 4 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 12:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson, 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.
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
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 | 14 ++++++--------
include/linux/soc/qcom/mdt_loader.h | 7 +++----
7 files changed, 17 insertions(+), 21 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 dfd15d189087..7522223835f5 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;
@@ -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] 17+ messages in thread
* [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid()
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
2025-08-04 12:41 ` [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
@ 2025-08-04 12:41 ` Mukesh Ojha
2025-08-05 5:00 ` Dmitry Baryshkov
2025-08-06 17:32 ` Bjorn Andersson
2025-08-04 12:46 ` [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
2025-08-05 5:01 ` Dmitry Baryshkov
4 siblings, 2 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 12:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson, 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")
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
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 7522223835f5..8210fb3dd51a 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] 17+ messages in thread
* Re: [PATCH 0/3] EDITME: cover title for mdtloader-changes
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
` (2 preceding siblings ...)
2025-08-04 12:41 ` [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
@ 2025-08-04 12:46 ` Mukesh Ojha
2025-08-05 5:01 ` Dmitry Baryshkov
4 siblings, 0 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 12:46 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On Mon, Aug 04, 2025 at 06:11:48PM +0530, Mukesh Ojha wrote:
Please ignore this mistake of sending empty cover-letter to your inbox.
-Mukesh
> ---
> Mukesh Ojha (3):
> soc: qcom: mdt_loader: Remove unused parameter
> soc: qcom: mdt_loader: Remove pas id parameter
> soc: qcom: mdt_loader: Fix check mdt_header_valid()
>
> 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 | 22 ++++++++++------------
> include/linux/soc/qcom/mdt_loader.h | 7 +++----
> 7 files changed, 21 insertions(+), 25 deletions(-)
> ---
> base-commit: 5c5a10f0be967a8950a2309ea965bae54251b50e
> change-id: 20250804-mdtloader-changes-9aca55e8cf37
>
> Best regards,
> --
> Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter
2025-08-04 12:41 ` [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
@ 2025-08-04 13:14 ` Konrad Dybcio
0 siblings, 0 replies; 17+ messages in thread
From: Konrad Dybcio @ 2025-08-04 13:14 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
Jeff Johnson, Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 8/4/25 2:41 PM, Mukesh Ojha wrote:
> 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().
>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
@ 2025-08-04 13:16 ` Konrad Dybcio
2025-08-04 14:17 ` Mukesh Ojha
2025-08-04 14:17 ` Jeff Johnson
` (2 subsequent siblings)
3 siblings, 1 reply; 17+ messages in thread
From: Konrad Dybcio @ 2025-08-04 13:16 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
Jeff Johnson, Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 8/4/25 2:41 PM, 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.
>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
[...]
> -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)
This seems unrelated (or at least unmentioned)
Konrad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
2025-08-04 13:16 ` Konrad Dybcio
@ 2025-08-04 14:17 ` Jeff Johnson
2025-08-05 14:05 ` Mukesh Ojha
2025-08-06 1:57 ` Bjorn Andersson
2025-08-06 7:25 ` Dikshita Agarwal
2025-08-06 14:08 ` Jeff Johnson
3 siblings, 2 replies; 17+ messages in thread
From: Jeff Johnson @ 2025-08-04 14:17 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
Jeff Johnson, Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 8/4/2025 5:41 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.
>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> 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 | 14 ++++++--------
> include/linux/soc/qcom/mdt_loader.h | 7 +++----
> 7 files changed, 17 insertions(+), 21 deletions(-)
Since this patch touches files which go through different maintainers, do you
have a plan on how this will be merged?
I can ack the drivers/net/wireless/ath change once I know how it will be handled.
/jeff
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 13:16 ` Konrad Dybcio
@ 2025-08-04 14:17 ` Mukesh Ojha
0 siblings, 0 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-04 14:17 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov, linux-arm-msm, linux-kernel,
linux-media, linux-wireless, ath12k, linux-remoteproc,
Bjorn Andersson
On Mon, Aug 04, 2025 at 03:16:35PM +0200, Konrad Dybcio wrote:
> On 8/4/25 2:41 PM, 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.
> >
> > Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> > ---
>
> [...]
>
> > -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)
>
> This seems unrelated (or at least unmentioned)
Ah, Missed it.
I will keep this as separate change.
-Mukesh
>
> Konrad
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid()
2025-08-04 12:41 ` [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
@ 2025-08-05 5:00 ` Dmitry Baryshkov
2025-08-06 17:32 ` Bjorn Andersson
1 sibling, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-08-05 5:00 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, linux-arm-msm, linux-kernel, linux-media,
linux-wireless, ath12k, linux-remoteproc, Bjorn Andersson
On Mon, Aug 04, 2025 at 06:11:51PM +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.
>
> Fixes: 9f9967fed9d0 ("soc: qcom: mdt_loader: Ensure we don't read past the ELF header")
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> drivers/soc/qcom/mdt_loader.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 0/3] EDITME: cover title for mdtloader-changes
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
` (3 preceding siblings ...)
2025-08-04 12:46 ` [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
@ 2025-08-05 5:01 ` Dmitry Baryshkov
4 siblings, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-08-05 5:01 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, linux-arm-msm, linux-kernel, linux-media,
linux-wireless, ath12k, linux-remoteproc, Bjorn Andersson
On Mon, Aug 04, 2025 at 06:11:48PM +0530, Mukesh Ojha wrote:
>
> ---
> Mukesh Ojha (3):
> soc: qcom: mdt_loader: Remove unused parameter
> soc: qcom: mdt_loader: Remove pas id parameter
> soc: qcom: mdt_loader: Fix check mdt_header_valid()
For v2 please move the fix to the start of the series, so that it can be
picked up independently.
>
> 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 | 22 ++++++++++------------
> include/linux/soc/qcom/mdt_loader.h | 7 +++----
> 7 files changed, 21 insertions(+), 25 deletions(-)
> ---
> base-commit: 5c5a10f0be967a8950a2309ea965bae54251b50e
> change-id: 20250804-mdtloader-changes-9aca55e8cf37
>
> Best regards,
> --
> Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 14:17 ` Jeff Johnson
@ 2025-08-05 14:05 ` Mukesh Ojha
2025-08-06 1:57 ` Bjorn Andersson
1 sibling, 0 replies; 17+ messages in thread
From: Mukesh Ojha @ 2025-08-05 14:05 UTC (permalink / raw)
To: Jeff Johnson
Cc: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov, linux-arm-msm, linux-kernel,
linux-media, linux-wireless, ath12k, linux-remoteproc,
Bjorn Andersson
On Mon, Aug 04, 2025 at 07:17:02AM -0700, Jeff Johnson wrote:
> On 8/4/2025 5:41 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.
> >
> > Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> > ---
> > 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 | 14 ++++++--------
> > include/linux/soc/qcom/mdt_loader.h | 7 +++----
> > 7 files changed, 17 insertions(+), 21 deletions(-)
>
> Since this patch touches files which go through different maintainers, do you
> have a plan on how this will be merged?
I am hoping, Bjorn should be ok to take this into his tree ?
>
> I can ack the drivers/net/wireless/ath change once I know how it will be handled.
Going to send v2, please ack it, once we have confirmation on the above
question.
-Mukesh
>
> /jeff
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 14:17 ` Jeff Johnson
2025-08-05 14:05 ` Mukesh Ojha
@ 2025-08-06 1:57 ` Bjorn Andersson
1 sibling, 0 replies; 17+ messages in thread
From: Bjorn Andersson @ 2025-08-06 1:57 UTC (permalink / raw)
To: Jeff Johnson
Cc: Mukesh Ojha, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov, linux-arm-msm, linux-kernel,
linux-media, linux-wireless, ath12k, linux-remoteproc,
Bjorn Andersson
On Mon, Aug 04, 2025 at 07:17:02AM -0700, Jeff Johnson wrote:
> On 8/4/2025 5:41 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.
> >
> > Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> > ---
> > 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 | 14 ++++++--------
> > include/linux/soc/qcom/mdt_loader.h | 7 +++----
> > 7 files changed, 17 insertions(+), 21 deletions(-)
>
> Since this patch touches files which go through different maintainers, do you
> have a plan on how this will be merged?
>
> I can ack the drivers/net/wireless/ath change once I know how it will be handled.
>
An ack from you and a venus maintainer would be preferable, then I can
pick the change through the qcom tree.
Regards,
Bjorn
> /jeff
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
2025-08-04 13:16 ` Konrad Dybcio
2025-08-04 14:17 ` Jeff Johnson
@ 2025-08-06 7:25 ` Dikshita Agarwal
2025-08-12 8:31 ` Krzysztof Kozlowski
2025-08-06 14:08 ` Jeff Johnson
3 siblings, 1 reply; 17+ messages in thread
From: Dikshita Agarwal @ 2025-08-06 7:25 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 8/4/2025 6:11 PM, 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.
>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> 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 | 14 ++++++--------
> include/linux/soc/qcom/mdt_loader.h | 7 +++----
> 7 files changed, 17 insertions(+), 21 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:
Reviewed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
` (2 preceding siblings ...)
2025-08-06 7:25 ` Dikshita Agarwal
@ 2025-08-06 14:08 ` Jeff Johnson
3 siblings, 0 replies; 17+ messages in thread
From: Jeff Johnson @ 2025-08-06 14:08 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
Jeff Johnson, Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 8/4/2025 5:41 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.
>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> 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 | 14 ++++++--------
> include/linux/soc/qcom/mdt_loader.h | 7 +++----
> 7 files changed, 17 insertions(+), 21 deletions(-)
Acked-by: Jeff Johnson <jjohnson@kernel.org> # drivers/net/wireless/ath/ath12k/ahb.c
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid()
2025-08-04 12:41 ` [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
2025-08-05 5:00 ` Dmitry Baryshkov
@ 2025-08-06 17:32 ` Bjorn Andersson
1 sibling, 0 replies; 17+ messages in thread
From: Bjorn Andersson @ 2025-08-06 17:32 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Jeff Johnson,
Mathieu Poirier, Dmitry Baryshkov, linux-arm-msm, linux-kernel,
linux-media, linux-wireless, ath12k, linux-remoteproc,
Bjorn Andersson
On Mon, Aug 04, 2025 at 06:11:51PM +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.
>
Thanks for the fix, Mukesh.
I posted and now merged
https://lore.kernel.org/all/20250730-mdt-loader-shentsize-zero-v1-1-04f43186229c@oss.qualcomm.com/
for this.
As was mentioned, in the future, when you have a fix and some other
changes, put the fix first in the series (or send it separately when
possible) so that it can conveniently be picked up on its own by the
maintainers.
Regards,
Bjorn
> Fixes: 9f9967fed9d0 ("soc: qcom: mdt_loader: Ensure we don't read past the ELF header")
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> 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 7522223835f5..8210fb3dd51a 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] 17+ messages in thread
* Re: [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter
2025-08-06 7:25 ` Dikshita Agarwal
@ 2025-08-12 8:31 ` Krzysztof Kozlowski
0 siblings, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-12 8:31 UTC (permalink / raw)
To: Dikshita Agarwal, Mukesh Ojha, Bjorn Andersson, Konrad Dybcio,
Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Jeff Johnson, Mathieu Poirier, Dmitry Baryshkov
Cc: linux-arm-msm, linux-kernel, linux-media, linux-wireless, ath12k,
linux-remoteproc, Bjorn Andersson
On 06/08/2025 09:25, Dikshita Agarwal wrote:
>
>
> On 8/4/2025 6:11 PM, 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.
>>
>> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
>> ---
>> 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 | 14 ++++++--------
>> include/linux/soc/qcom/mdt_loader.h | 7 +++----
>> 7 files changed, 17 insertions(+), 21 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:
>
> Reviewed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
You wanted Acked tag for reviewing that one, trivial line. Adding entire
review for entire commit just after looking at trivial change is not
really justified.
See also submitting patches about reviewer's statement of oversight.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2025-08-12 8:31 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04 12:41 [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
2025-08-04 12:41 ` [PATCH 1/3] soc: qcom: mdt_loader: Remove unused parameter Mukesh Ojha
2025-08-04 13:14 ` Konrad Dybcio
2025-08-04 12:41 ` [PATCH 2/3] soc: qcom: mdt_loader: Remove pas id parameter Mukesh Ojha
2025-08-04 13:16 ` Konrad Dybcio
2025-08-04 14:17 ` Mukesh Ojha
2025-08-04 14:17 ` Jeff Johnson
2025-08-05 14:05 ` Mukesh Ojha
2025-08-06 1:57 ` Bjorn Andersson
2025-08-06 7:25 ` Dikshita Agarwal
2025-08-12 8:31 ` Krzysztof Kozlowski
2025-08-06 14:08 ` Jeff Johnson
2025-08-04 12:41 ` [PATCH 3/3] soc: qcom: mdt_loader: Fix check mdt_header_valid() Mukesh Ojha
2025-08-05 5:00 ` Dmitry Baryshkov
2025-08-06 17:32 ` Bjorn Andersson
2025-08-04 12:46 ` [PATCH 0/3] EDITME: cover title for mdtloader-changes Mukesh Ojha
2025-08-05 5:01 ` Dmitry Baryshkov
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).