aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2020-03-22 19:03:56 +0100
committerDavid S. Miller <davem@davemloft.net>2020-03-23 21:38:21 -0700
commit6b02e407cbf8d421477ebb7792cd6380affcd313 (patch)
tree408c6e6b93d9b94c66645e674d37d3b099818e43
parentr8169: improve rtl_schedule_task (diff)
downloadwireguard-linux-6b02e407cbf8d421477ebb7792cd6380affcd313.tar.xz
wireguard-linux-6b02e407cbf8d421477ebb7792cd6380affcd313.zip
r8169: improve RTL8168b FIFO overflow workaround
So far only the reset bit it set, but the handler executing the reset is not scheduled. Therefore nothing will happen until some other action schedules the handler. Improve this by ensuring that the handler is scheduled. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/realtek/r8169_main.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index e9ced0360f58..b7dc1c112a94 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4575,8 +4575,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
if (unlikely(status & RxFIFOOver &&
tp->mac_version == RTL_GIGA_MAC_VER_11)) {
netif_stop_queue(tp->dev);
- /* XXX - Hack alert. See rtl_task(). */
- set_bit(RTL_FLAG_TASK_RESET_PENDING, tp->wk.flags);
+ rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
}
rtl_irq_disable(tp);