diff --git a/devices/r8169/r8169_main-6.12-ethercat.c b/devices/r8169/r8169_main-6.12-ethercat.c index 6f261650..9f81baf5 100644 --- a/devices/r8169/r8169_main-6.12-ethercat.c +++ b/devices/r8169/r8169_main-6.12-ethercat.c @@ -4816,7 +4816,8 @@ static void rtl_task(struct work_struct *work) if (test_and_clear_bit(RTL_FLAG_TASK_RESET_PENDING, tp->wk.flags)) { reset: rtl_reset_work(tp); - netif_wake_queue(tp->dev); + if (!get_ecdev(tp)) + netif_wake_queue(tp->dev); } else if (test_and_clear_bit(RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE, tp->wk.flags)) { rtl_reset_work(tp); } @@ -4848,7 +4849,8 @@ static void r8169_phylink_handler(struct net_device *ndev) if (netif_carrier_ok(ndev)) { rtl_link_chg_patch(tp); pm_request_resume(d); - netif_wake_queue(tp->dev); + if (!get_ecdev(tp)) + netif_wake_queue(tp->dev); } else { /* In few cases rx is broken after link-down otherwise */ if (rtl_is_8125(tp)) diff --git a/devices/r8169/r8169_main-6.4-ethercat.c b/devices/r8169/r8169_main-6.4-ethercat.c index 58939981..80d2f274 100644 --- a/devices/r8169/r8169_main-6.4-ethercat.c +++ b/devices/r8169/r8169_main-6.4-ethercat.c @@ -4610,7 +4610,8 @@ static void rtl_task(struct work_struct *work) if (test_and_clear_bit(RTL_FLAG_TASK_RESET_PENDING, tp->wk.flags)) { reset: rtl_reset_work(tp); - netif_wake_queue(tp->dev); + if (!get_ecdev(tp)) + netif_wake_queue(tp->dev); } out_unlock: rtnl_unlock();