On 2/13/26 09:48, Nikolay Aleksandrov wrote:
If CONFIG_IRDMA isn't enabled but there are ice NICs in the system, the
driver will prevent full devlink dev param show dump because its rdma get
callbacks return ENODEV and stop the dump. For example:
  $ devlink dev param show
  pci/0000:82:00.0:
    name msix_vec_per_pf_max type generic
      values:
        cmode driverinit value 2
    name msix_vec_per_pf_min type generic
      values:
        cmode driverinit value 2
  kernel answers: No such device

this issue reproduces even with CONFIG_IRDMA enabled,
but just when there is no irdma in use, so the fix helps
a lot

Reviewed-by: Przemek Kitszel <[email protected]>
Tested-by: Przemek Kitszel <[email protected]>


Returning EOPNOTSUPP allows the dump to continue so we can see all devices'
devlink parameters.

Fixes: c24a65b6a27c ("iidc/ice/irdma: Update IDC to support multiple consumers")
Signed-off-by: Nikolay Aleksandrov <[email protected]>
---
  drivers/net/ethernet/intel/ice/devlink/devlink.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c 
b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index 2ef39cc70c21..7de749d3f047 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -1360,7 +1360,7 @@ ice_devlink_enable_roce_get(struct devlink *devlink, u32 
id,
cdev = pf->cdev_info;
        if (!cdev)
-               return -ENODEV;
+               return -EOPNOTSUPP;
ctx->val.vbool = !!(cdev->rdma_protocol & IIDC_RDMA_PROTOCOL_ROCEV2); @@ -1427,7 +1427,7 @@ ice_devlink_enable_iw_get(struct devlink *devlink, u32 id, cdev = pf->cdev_info;
        if (!cdev)
-               return -ENODEV;
+               return -EOPNOTSUPP;
ctx->val.vbool = !!(cdev->rdma_protocol & IIDC_RDMA_PROTOCOL_IWARP);

Reply via email to