linux/drivers/net/ixgbe
John Fastabend 10eec95569 ixgbe: only process one ixgbe_watchdog_task at a time.
Processing multiple ixgbe_watchdog_task calls may cause
the link_up variable and IXGBE_FLAG_NEED_LINK_UPDATE flag
to be set incorrectly.  In the worse case this is causing
the netif_carrier_off to be called inappropriately which
results in an interface that can't be brought up.

Although schedule_work() will only schedule the task if
it is not already on the work queue the WORK_STRUCT_PENDING
bits are cleared just before calling the work function.
This allows WORK_STRUCT_PENDING to be cleared, the work
function to start and meanwhile schedule another task.

This patch adds a mutex to the watchdog task. This bug is
actualized by changing DCB settings or doing extended
cable pull or reset tests.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-02-03 19:39:56 -08:00
..
ixgbe_82598.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_82599.c ixgbe: Allow the VF driver to be loaded before the PF driver 2010-01-23 01:13:55 -08:00
ixgbe_common.c net: use helpers to access uc list V2 2010-01-25 13:36:10 -08:00
ixgbe_common.h net: use helpers to access uc list V2 2010-01-25 13:36:10 -08:00
ixgbe_dcb_82598.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_dcb_82598.h ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_dcb_82599.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_dcb_82599.h ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_dcb_nl.c ixgbe: if ixgbe_copy_dcb_cfg is going to fail learn about it early 2010-01-28 05:55:54 -08:00
ixgbe_dcb.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_dcb.h ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_ethtool.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-23 00:31:06 -08:00
ixgbe_fcoe.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_fcoe.h ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_main.c ixgbe: only process one ixgbe_watchdog_task at a time. 2010-02-03 19:39:56 -08:00
ixgbe_mbx.c ixgbe: Mailbox header and code module 2010-01-10 13:34:24 -08:00
ixgbe_mbx.h ixgbe: Mailbox header and code module 2010-01-10 13:34:24 -08:00
ixgbe_phy.c ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_phy.h ixgbe: update copyright dates 2010-01-13 17:12:45 -08:00
ixgbe_sriov.c ixgbe: Improve reset coordination between the PF and the VF 2010-01-23 01:13:55 -08:00
ixgbe_sriov.h ixgbe: Improve reset coordination between the PF and the VF 2010-01-23 01:13:55 -08:00
ixgbe_type.h net: use helpers to access uc list V2 2010-01-25 13:36:10 -08:00
ixgbe.h ixgbe: only process one ixgbe_watchdog_task at a time. 2010-02-03 19:39:56 -08:00
Makefile Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-23 00:31:06 -08:00