Patch "r8152: avoid start_xmit to schedule napi when napi is disabled" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
r8152: avoid start_xmit to schedule napi when napi is disabled
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
r8152-avoid-start_xmit-to-schedule-napi-when-napi-is-disabled.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Jun 15 16:23:30 CEST 2017
From: hayeswang <[email protected]>
Date: Thu, 26 Jan 2017 09:38:32 +0800
Subject: r8152: avoid start_xmit to schedule napi when napi is disabled
From: hayeswang <[email protected]>
[ Upstream commit de9bf29dd6e4a8a874cb92f8901aed50a9d0b1d3 ]
Stop the tx when the napi is disabled to prevent napi_schedule() is called.
--- drivers/net/usb/r8152.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
drivers/net/usb/r8152.c +6 -2
@@ -3158,10 +3158,13 @@ static void set_carrier(struct r8152 *tpif (!netif_carrier_ok (netdev)) { tp->rtl_ops.enable (tp);set_bit (RTL8152_SET_RX_MODE , &tp->flags); +netif_stop_queue (netdev);napi_disable (&tp->napi);netif_carrier_on (netdev);rtl_start_rx (tp);napi_enable (&tp->napi); +netif_wake_queue (netdev); +netif_info (tp, link, netdev,"carrier on\n" ); } }else {if (netif_carrier_ok (netdev)) {
@@ -3169,6 +3172,7 @@ static void set_carrier(struct r8152 *tpnapi_disable (&tp->napi); tp->rtl_ops.disable (tp);napi_enable (&tp->napi); +netif_info (tp, link, netdev,"carrier off\n" ); } } }
@@ -3518,12 +3522,12 @@ static int rtl8152_pre_reset(struct usb_if (!netif_running (netdev))return 0 ; +netif_stop_queue (netdev);napi_disable (&tp->napi);clear_bit (WORK_ENABLE , &tp->flags);usb_kill_urb (tp->intr_urb);cancel_delayed_work_sync (&tp->schedule);if (netif_carrier_ok (netdev)) { -netif_stop_queue (netdev);mutex_lock (&tp->control); tp->rtl_ops.disable (tp);mutex_unlock (&tp->control);
@@ -3551,10 +3555,10 @@ static int rtl8152_post_reset(struct usbrtl_start_rx (tp);rtl8152_set_rx_mode (netdev);mutex_unlock (&tp->control); -netif_wake_queue (netdev); }napi_enable (&tp->napi); +netif_wake_queue (netdev);usb_submit_urb (tp->intr_urb,GFP_KERNEL );if (!list_empty (&tp->rx_done))
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/r8152-fix-rtl8152_post_reset-function.patch queue-4.9/r8152-re-schedule-napi-for-tx.patch queue-4.9/r8152-avoid-start_xmit-to-call-napi_schedule-during-autosuspend.patch queue-4.9/r8152-avoid-start_xmit-to-schedule-napi-when-napi-is-disabled.patch queue-4.9/r8152-check-rx-after-napi-is-enabled.patch