On 8/27/26 9:27 AM, Lucas Sproule wrote:
> Commit f9b888599418 ("remoteproc: qcom_wcnss: Fix reserved region
> mapping failure") switched back from devm_ioremap_resource_wc() to
> devm_ioremap_wc(), but kept the IS_ERR() check that had been added to
> match the resource variant.
>
> devm_ioremap_wc() returns NULL on failure rather than an error pointer,
> so IS_ERR() never fires and wcnss_alloc_memory_region() returns success
> with wcnss->mem_region left NULL. Probe completes, and every subsequent
> firmware boot then fails with a bare -EINVAL from qcom_mdt_load_no_init(),
> masking the real mapping failure.
>
> Check for NULL instead, and return -ENOMEM to match the other remoteproc
> drivers.
>
> Fixes: f9b888599418 ("remoteproc: qcom_wcnss: Fix reserved region mapping
> failure")
> Cc: [email protected] # v7.0+
> Signed-off-by: Lucas Sproule <[email protected]>
> ---
> drivers/remoteproc/qcom_wcnss.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/qcom_wcnss.c b/drivers/remoteproc/qcom_wcnss.c
> index c856a92af43c..90747af237f7 100644
> --- a/drivers/remoteproc/qcom_wcnss.c
> +++ b/drivers/remoteproc/qcom_wcnss.c
> @@ -542,9 +542,9 @@ static int wcnss_alloc_memory_region(struct qcom_wcnss
> *wcnss)
> wcnss->mem_phys = wcnss->mem_reloc = res.start;
> wcnss->mem_size = resource_size(&res);
> wcnss->mem_region = devm_ioremap_wc(wcnss->dev, wcnss->mem_phys,
> wcnss->mem_size);
> - if (IS_ERR(wcnss->mem_region)) {
> + if (!wcnss->mem_region) {
> dev_err(wcnss->dev, "unable to map memory region: %pR\n", &res);
> - return PTR_ERR(wcnss->mem_region);
> + return -ENOMEM;
> }
It seems like whatever program you used to send this patch messed up its
contents by squashing the whitespace - I would recommend using the b4
tool:
https://b4.docs.kernel.org/en/latest/index.html
for the patch itself, please carry my:
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad