]> git.baikalelectronics.ru Git - kernel.git/commit
ixgbe: DCB, only reprogram HW if the FCoE priority is changed
authorJohn Fastabend <john.r.fastabend@intel.com>
Tue, 1 Feb 2011 02:10:20 +0000 (02:10 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 11 Feb 2011 16:43:14 +0000 (08:43 -0800)
commitdf70248fa28161df5c4b5039067dbf09958da9b6
tree2f84cce0899166fa395ddb21d3621bd023bf274d
parent51f7d3c7a8ea624e682100712e31ea7d7c6946cb
ixgbe: DCB, only reprogram HW if the FCoE priority is changed

If the FCoE priority is not changing do not set the RESET and
APP_UPCHG bits. This causes unneeded HW resets and which can
cause unneeded LLDP frames and negotiations.

The current check is not sufficient because the FCoE priority
can change twice during a negotiation which results in the
bits being set. This occurs when the switch changes the
priority or when the link is reset with switches that do not
include the APP priority until after PFC has been negotiated.

This results in set_app being called with the local APP
priority. Then the negotiation completes and set_app
is called again with the peer APP priority. The check
fails so the device is reset and the above occurs again
resulting in an endless loop of resets.

By only resetting the device if the APP priority has really
changed we short circuit the loop.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ixgbe/ixgbe_dcb_nl.c