• Parikh, Neerav's avatar
    ixgbe: Fix incorrect disabling of Tx hang check in case of PFC · 2afaa00d
    Parikh, Neerav authored
    The XOFF received statistic registers are per priority based and not per
    traffic class. The ixgbe driver was incorrectly considering them to be for
    each traffic class; and then disabling the "Tx hang" check for the queues
    that belonged to the particular traffic class that had received PFC frames.
    The above logic worked fine in scenario where the user priority and traffic
    class number matched e.g. priority 0 is mapped to traffic class 0 and so on.
    But, when multiple user priorities are mapped to a single traffic class or
    when user priorities and traffic class numbers do not line up; the ixgbe
    driver may disable the "Tx hang" check for queues belonging to a traffic
    class that did not receive PFC frames and keep the "Tx hang" check enabled
    for the queues that did receive the PFC frames.
    This patch corrects the above in the code by considering the statistics
    on a per priority basis; then getting the traffic class the user priority
    belongs to and disabling the "Tx hang" check for queues that belong
    to that traffic class.
    Signed-off-by: default avatarNeerav Parikh <Neerav.Parikh@intel.com>
    Acked-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
    Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
    Tested-by: default avatarMarcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>