• Brett Creeley's avatar
    ice: Fix VF true promiscuous mode · 1a8c7778
    Brett Creeley authored
    When a VF requests promiscuous mode and it's trusted and true promiscuous
    mode is enabled the PF driver attempts to enable unicast and/or
    multicast promiscuous mode filters based on the request. This is fine,
    but there are a couple issues with the current code.
    
    [1] The define to configure the unicast promiscuous mode mask also
        includes bits to configure the multicast promiscuous mode mask, which
        causes multicast to be set/cleared unintentionally.
    [2] All 4 cases for enable/disable unicast/multicast mode are not
        handled in the promiscuous mode message handler, which causes
        unexpected results regarding the current promiscuous mode settings.
    
    To fix [1] make sure any promiscuous mask defines include the correct
    bits for each of the promiscuous modes.
    
    To fix [2] make sure that all 4 cases are handled since there are 2 bits
    (FLAG_VF_UNICAST_PROMISC and FLAG_VF_MULTICAST_PROMISC) that can be
    either set or cleared. Also, since either unicast and/or multicast
    promiscuous configuration can fail, introduce two separate error values
    to handle each of these cases.
    
    Fixes: 01b5e89a ("ice: Add VF promiscuous support")
    Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
    Tested-by: default avatarTony Brelinski <tony.brelinski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    1a8c7778
ice_virtchnl_pf.c 147 KB