drivers/fwctl/pds/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
From: Jackie Liu <liuyun01@kylinos.cn>
When pdsfc_get_operations() fails in pdsfc_validate_rpc(), the
function hardcodes the return value to -ENOMEM regardless of the
actual failure. pdsfc_get_operations() can return various errors
from the adminq command (e.g. -ETIMEDOUT, -EIO, -ENODEV) or from
DMA mapping failure (-ENOMEM). Propagate the actual error via
PTR_ERR(operations) so userspace and debugging tools see the correct
failure reason.
Fixes: 92c66ee829b9 ("pds_fwctl: add rpc and query support")
Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
---
drivers/fwctl/pds/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/fwctl/pds/main.c b/drivers/fwctl/pds/main.c
index 68fe254dd10a..a4e80cfa3c50 100644
--- a/drivers/fwctl/pds/main.c
+++ b/drivers/fwctl/pds/main.c
@@ -325,7 +325,7 @@ static int pdsfc_validate_rpc(struct pdsfc_dev *pdsfc,
rpc->in.ep);
if (IS_ERR(operations)) {
mutex_unlock(&ep_info->lock);
- return -ENOMEM;
+ return PTR_ERR(operations);
}
ep_info->operations = operations;
}
--
2.54.0
On 6/2/26 6:22 PM, Jackie Liu wrote:
> From: Jackie Liu <liuyun01@kylinos.cn>
>
> When pdsfc_get_operations() fails in pdsfc_validate_rpc(), the
> function hardcodes the return value to -ENOMEM regardless of the
> actual failure. pdsfc_get_operations() can return various errors
> from the adminq command (e.g. -ETIMEDOUT, -EIO, -ENODEV) or from
> DMA mapping failure (-ENOMEM). Propagate the actual error via
> PTR_ERR(operations) so userspace and debugging tools see the correct
> failure reason.
>
> Fixes: 92c66ee829b9 ("pds_fwctl: add rpc and query support")
> Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
> drivers/fwctl/pds/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/fwctl/pds/main.c b/drivers/fwctl/pds/main.c
> index 68fe254dd10a..a4e80cfa3c50 100644
> --- a/drivers/fwctl/pds/main.c
> +++ b/drivers/fwctl/pds/main.c
> @@ -325,7 +325,7 @@ static int pdsfc_validate_rpc(struct pdsfc_dev *pdsfc,
> rpc->in.ep);
> if (IS_ERR(operations)) {
> mutex_unlock(&ep_info->lock);
> - return -ENOMEM;
> + return PTR_ERR(operations);
> }
> ep_info->operations = operations;
> }
On 6/2/2026 6:22 PM, Jackie Liu wrote:
> [You don't often get email from liu.yun@linux.dev. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> From: Jackie Liu <liuyun01@kylinos.cn>
>
> When pdsfc_get_operations() fails in pdsfc_validate_rpc(), the
> function hardcodes the return value to -ENOMEM regardless of the
> actual failure. pdsfc_get_operations() can return various errors
> from the adminq command (e.g. -ETIMEDOUT, -EIO, -ENODEV) or from
> DMA mapping failure (-ENOMEM). Propagate the actual error via
> PTR_ERR(operations) so userspace and debugging tools see the correct
> failure reason.
>
> Fixes: 92c66ee829b9 ("pds_fwctl: add rpc and query support")
> Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
> ---
> drivers/fwctl/pds/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/fwctl/pds/main.c b/drivers/fwctl/pds/main.c
> index 68fe254dd10a..a4e80cfa3c50 100644
> --- a/drivers/fwctl/pds/main.c
> +++ b/drivers/fwctl/pds/main.c
> @@ -325,7 +325,7 @@ static int pdsfc_validate_rpc(struct pdsfc_dev *pdsfc,
> rpc->in.ep);
> if (IS_ERR(operations)) {
> mutex_unlock(&ep_info->lock);
> - return -ENOMEM;
> + return PTR_ERR(operations);
LGTM. Thanks for the fix.
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
> }
> ep_info->operations = operations;
> }
> --
> 2.54.0
>
© 2016 - 2026 Red Hat, Inc.