• Dave Ertman's avatar
    i40e: check for and deal with non-contiguous TCs · fbfe12c6
    Dave Ertman authored
    The i40e driver was causing a kernel panic when
    non-contiguous Traffic Classes, or Traffic Classes not
    starting with TC0, were configured on a link partner switch.
    i40e does not support non-contiguous TCs.
    
    To fix this, the patch changes the logic when determining
    the total number of TCs enabled.  Before, this would use the
    highest TC number enabled and assume that all TCs below it were
    also enabled.  Now, we create a bitmask of enabled TCs and scan
    it to determine not only the number of TCs, but also if the set
    of enabled TCs starts at zero and is contiguous.  If not, then
    DCB is disabled by only returning one TC.
    Signed-off-by: default avatarDave Ertman <david.m.ertman@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    fbfe12c6
i40e_main.c 317 KB