• J
    ixgbe: DCB: IEEE transitions may fail to reprogram hardware. · 43497cc2
    John Fastabend 提交于
    Transitioning through an IEEE DCBX version from a CEE DCBX
    and back (CEE->IEEE->CEE) may leave IEEE attributes programmed
    in the hardware. DCB uses a bit field in the set routines to
    determine which attributes PG, PFC, APP need to be reprogrammed.
    This is needed because user flow allows queueing a series
    of changes and then reprogramming the hardware with the
    entire set in one operation.
    
    When transitioning from IEEE DCBX mode back into CEE DCBX
    mode the PG and PFC bits need to be set so the possibly
    
    different CEE attributes get programmed into the device.
    
    This patch fixes broken logic that was evaluating to 0
    and never setting any bits. Further this removes some
    checks for num_tc in set routines. This logic only worked
    when the number of traffic classes and user priorities
    were equal. This is no longer the case for X540 devices.
    Besides we can trust user input in this case if the
    device is incorrectly configured the DCB bandwidths will
    be incorrectly mapped but no OOPs, BUG, or hardware
    failure will occur.
    Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
    Tested-by: NRoss Brattain <ross.b.brattain@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    43497cc2
ixgbe_dcb_nl.c 22.6 KB