tg3: Clear RECOVERY_PENDING with reset_task_cancel
authorMatt Carlson <mcarlson@broadcom.com>
Wed, 22 Feb 2012 12:35:20 +0000 (12:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Feb 2012 06:57:17 +0000 (01:57 -0500)
commitc71013597d49c7ca8bb5049f0c7873df2643fad5
tree8dba220928e7b0cc4b917f608f87814ed0bacc88
parentd13ba512cbba7de5d55d7a3b2aae7d83c8921457
tg3: Clear RECOVERY_PENDING with reset_task_cancel

If an error happens in the tx completion thread, tg3_reset_task will be
scheduled and TX_RECOVERY_PENDING will be set.  The TX_RECOVERY_PENDING
flag causes tg3_poll[_msix] to return early before doing much of its
work.  Tg3_reset_task() gets canceled when the configuration of the
device is changing, which always results in a chip reset.  When this
happens, the TX_RECOVERY_PENDING flag may be left set, which would
unnecessarily hinder tg3_poll from doing work.  This patch fixes the
problem.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/tg3.c