From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Wolfgang Grandegger <wg@grandegger.com>,
Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH 4.4 08/27] can: gs_usb: fix busy loop if no more TX context is available
Date: Tue, 24 Oct 2017 14:57:53 +0200 [thread overview]
Message-ID: <20171024125711.408174765@linuxfoundation.org> (raw)
In-Reply-To: <20171024125711.074929246@linuxfoundation.org>
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Wolfgang Grandegger <wg@grandegger.com>
commit 97819f943063b622eca44d3644067c190dc75039 upstream.
If sending messages with no cable connected, it quickly happens that
there is no more TX context available. Then "gs_can_start_xmit()"
returns with "NETDEV_TX_BUSY" and the upper layer does retry
immediately keeping the CPU busy. To fix that issue, I moved
"atomic_dec(&dev->active_tx_urbs)" from "gs_usb_xmit_callback()" to
the TX done handling in "gs_usb_receive_bulk_callback()". Renaming
"active_tx_urbs" to "active_tx_contexts" and moving it into
"gs_[alloc|free]_tx_context()" would also make sense.
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/can/usb/gs_usb.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
--- a/drivers/net/can/usb/gs_usb.c
+++ b/drivers/net/can/usb/gs_usb.c
@@ -356,6 +356,8 @@ static void gs_usb_receive_bulk_callback
gs_free_tx_context(txc);
+ atomic_dec(&dev->active_tx_urbs);
+
netif_wake_queue(netdev);
}
@@ -444,14 +446,6 @@ static void gs_usb_xmit_callback(struct
urb->transfer_buffer_length,
urb->transfer_buffer,
urb->transfer_dma);
-
- atomic_dec(&dev->active_tx_urbs);
-
- if (!netif_device_present(netdev))
- return;
-
- if (netif_queue_stopped(netdev))
- netif_wake_queue(netdev);
}
static netdev_tx_t gs_can_start_xmit(struct sk_buff *skb, struct net_device *netdev)
next prev parent reply other threads:[~2017-10-24 13:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-24 12:57 [PATCH 4.4 00/27] 4.4.95-stable review Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 01/27] USB: devio: Revert "USB: devio: Dont corrupt user memory" Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 02/27] USB: core: fix out-of-bounds access bug in usb_get_bos_descriptor() Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 03/27] USB: serial: metro-usb: add MS7820 device id Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 04/27] usb: cdc_acm: Add quirk for Elatec TWN3 Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 06/27] usb: hub: Allow reset retry for USB2 devices on connect bounce Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 07/27] ALSA: usb-audio: Add native DSD support for Pro-Ject Pre Box S2 Digital Greg Kroah-Hartman
2017-10-24 12:57 ` Greg Kroah-Hartman [this message]
2017-10-24 12:57 ` [PATCH 4.4 09/27] usb: musb: sunxi: Explicitly release USB PHY on exit Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 10/27] usb: musb: Check for host-mode using is_host_active() on reset interrupt Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 12/27] drm/nouveau/bsp/g92: disable by default Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 13/27] drm/nouveau/mmu: flush tlbs before deleting page tables Greg Kroah-Hartman
2017-10-24 12:57 ` [PATCH 4.4 14/27] ALSA: seq: Enable use locking in all configurations Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 15/27] ALSA: hda: Remove superfluous - added by printk conversion Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 16/27] i2c: ismt: Separate I2C block read from SMBus block read Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 17/27] brcmsmac: make some local variables static const to reduce stack size Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 18/27] bus: mbus: fix window size calculation for 4GB windows Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 19/27] clockevents/drivers/cs5535: Improve resilience to spurious interrupts Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 20/27] rtlwifi: rtl8821ae: Fix connection lost problem Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 21/27] KEYS: encrypted: fix dereference of NULL user_key_payload Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 22/27] lib/digsig: " Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 23/27] KEYS: dont let add_key() update an uninstantiated key Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 24/27] pkcs7: Prevent NULL pointer dereference, since sinfo is not always set Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 25/27] parisc: Avoid trashing sr2 and sr3 in LWS code Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 26/27] parisc: Fix double-word compare and exchange in LWS code on 32-bit kernels Greg Kroah-Hartman
2017-10-24 12:58 ` [PATCH 4.4 27/27] sched/autogroup: Fix autogroup_move_group() to never skip sched_move_task() Greg Kroah-Hartman
2017-10-24 21:28 ` [PATCH 4.4 00/27] 4.4.95-stable review Guenter Roeck
2017-10-24 22:30 ` Tom Gall
[not found] ` <59ef8e09.43aadf0a.289f1.707d@mx.google.com>
2017-10-25 6:50 ` Greg Kroah-Hartman
2017-10-30 10:59 ` Kevin Hilman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171024125711.408174765@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkl@pengutronix.de \
--cc=stable@vger.kernel.org \
--cc=wg@grandegger.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).