• Saeed Mahameed's avatar
    net: ethtool: Fix RSS setting · 503757c8
    Saeed Mahameed authored
    When user submits a rxfh set command without touching XFRM_SYM_XOR,
    rxfh.input_xfrm is set to RXH_XFRM_NO_CHANGE, which is equal to 0xff.
    
    Testing if (rxfh.input_xfrm & RXH_XFRM_SYM_XOR &&
    	    !ops->cap_rss_sym_xor_supported)
    		return -EOPNOTSUPP;
    
    Will always be true on devices that don't set cap_rss_sym_xor_supported,
    since rxfh.input_xfrm & RXH_XFRM_SYM_XOR is always true, if input_xfrm
    was not set, i.e RXH_XFRM_NO_CHANGE=0xff, which will result in failure
    of any command that doesn't require any change of XFRM, e.g RSS context
    or hash function changes.
    
    To avoid this breakage, test if rxfh.input_xfrm != RXH_XFRM_NO_CHANGE
    before testing other conditions. Note that the problem will only trigger
    with XFRM-aware userspace, old ethtool CLI would continue to work.
    
    Fixes: 0dd415d1 ("net: ethtool: add a NO_CHANGE uAPI for new RXFH's input_xfrm")
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    Reviewed-by: default avatarAhmed Zaki <ahmed.zaki@intel.com>
    Link: https://patch.msgid.link/20240710225538.43368-1-saeed@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    503757c8
ioctl.c 89 KB