• Jakub Kicinski's avatar
    ethtool: fix the state of additional contexts with old API · dc975537
    Jakub Kicinski authored
    We expect drivers implementing the new create/modify/destroy
    API to populate the defaults in struct ethtool_rxfh_context.
    In legacy API ctx isn't even passed, and rxfh.indir / rxfh.key
    are NULL so drivers can't give us defaults even if they want to.
    Call get_rxfh() to fetch the values. We can reuse rxfh_dev
    for the get_rxfh(), rxfh stores the input from the user.
    
    This fixes IOCTL reporting 0s instead of the default key /
    indir table for drivers using legacy API.
    
    Add a check to try to catch drivers using the new API
    but not populating the key.
    
    Fixes: 7964e788 ("net: ethtool: use the tracking array for get_rxfh on custom RSS contexts")
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    Reviewed-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dc975537
ioctl.c 94 KB