On 11/14/24 10:06 AM, Ertman, David M wrote:
        case ICE_AQC_CAPS_RDMA:
-               caps->rdma = (number == 1);
+               if (IS_ENABLED(CONFIG_INFINIBAND_IRDMA))
+                       caps->rdma = (number == 1);
                ice_debug(hw, ICE_DBG_INIT, "%s: rdma = %d\n", prefix,

The HW caps struct should always accurately reflect the capabilities of the HW 
being probed.  Since this

why must it accurately reflect the capability of the hardware? The driver state and capability is a reflection of the combination of both, so I'm not sure what the point of your statement.

is a kernel configuration (i.e. software) consideration, the more appropriate 
approach would be to control
the PF flag "ICE_FLAG_RDMA_ENA" based on the kernel CONFIG setting.

I started making the changes you suggested, but the ICE_FLAG_RDMA_ENA is blindly set by the LAG code, if the cap.rdma is enabled. see ice_set_rdma_cap(). This means the disable won't stick.

Unless I'm misunderstanding something, ICE_FLAG_RDMA_ENA is used both as a gate and as a state, which is a design issue. This leaves no choice but to implement the way I did in this v1 patch. Do you see any other option to make a simple change that is safe for backporting to stable?

Thanks,
Jesse

Reply via email to