From: Pavel Machek <pavel@ucw.cz>
To: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Cc: bh74.an@samsung.com, ks.giri@samsung.com,
vipul.pandya@samsung.com, peppe.cavallaro@st.com,
alexandre.torgue@st.com, davem@davemloft.net,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH 2/2] net: ethernet: stmmac: remove private tx queue lock
Date: Wed, 7 Dec 2016 21:59:42 +0100 [thread overview]
Message-ID: <20161207205942.GB2250@amd> (raw)
In-Reply-To: <1481141138-19466-3-git-send-email-LinoSanfilippo@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 1881 bytes --]
Hi!
> The driver uses a private lock for synchronization between the xmit
> function and the xmit completion handler, but since the NETIF_F_LLTX flag
> is not set, the xmit function is also called with the xmit_lock held.
>
> On the other hand the xmit completion handler first takes the private lock
> and (in case that the tx queue has been stopped) the xmit_lock, leading to
> a reverse locking order and the potential danger of a deadlock.
>
> Fix this by removing the private lock completely and synchronizing the xmit
> function and completion handler solely by means of the xmit_lock. By doing
> this remove also the now unnecessary double check for a stopped tx queue.
>
> Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Oops, sorry no, that broke the driver after a while:
(So please ignore my tested-by:)
root@wagabuibui:/data/tmp/udpt# ./udp-test raw 10.0.0.6 1234 1000 100
30
Sending 100 packets (1000b each) at an interval of 30ms, expected data
rate:3333333b/s (3373333b/s incl udp overhead)
[ 30.948626] socfpga-dwmac ff702000.ethernet eth0: Link is Up -
100Mbps/Full - flow control rx/tx
[ 31.076064] Link is Up - 100/Full
[ 32.979526] random: crng init done
[ 262.244030] ------------[ cut here ]------------
[ 262.248669] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:316
dev_watchdog+0x254/0x26c
[ 262.256916] NETDEV WATCHDOG: eth0 (socfpga-dwmac): transmit queue 0
timed out
[ 262.264028] Modules linked in:
[ 262.267102] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.9.0-rc7-118095-g2d70d9b-dirty #339
[ 262.275328] Hardware name: Altera SOCFPGA
[ 262.279352] [<8010f758>] (unwind_backtrace) from [<8010affc>]
(show_stack+0x10/0x14)
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2016-12-07 20:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-07 20:05 Remove private locks to avoid possible deadlock Lino Sanfilippo
2016-12-07 20:05 ` [PATCH 1/2] net: ethernet: sxgbe: remove private tx queue lock Lino Sanfilippo
2016-12-07 23:15 ` Francois Romieu
2016-12-08 20:32 ` Lino Sanfilippo
2016-12-08 21:54 ` Pavel Machek
2016-12-08 22:12 ` Lino Sanfilippo
2016-12-08 22:18 ` Pavel Machek
2016-12-08 22:45 ` Lino Sanfilippo
2016-12-08 23:19 ` Francois Romieu
2016-12-09 11:21 ` Pavel Machek
2016-12-10 2:25 ` Lino Sanfilippo
2016-12-11 20:11 ` Pavel Machek
2016-12-15 19:27 ` Lino Sanfilippo
2016-12-15 21:03 ` Pavel Machek
2016-12-15 21:32 ` Lino Sanfilippo
2016-12-15 22:33 ` Lino Sanfilippo
2016-12-17 17:31 ` Pavel Machek
2016-12-18 0:15 ` Francois Romieu
2016-12-18 16:15 ` Lino Sanfilippo
2016-12-18 17:23 ` Pavel Machek
2016-12-18 18:30 ` Pavel Machek
2016-12-19 22:49 ` Lino Sanfilippo
2016-12-18 20:16 ` Pavel Machek
2016-12-19 10:02 ` Pavel Machek
2016-12-20 0:05 ` Francois Romieu
2016-12-07 20:05 ` [PATCH 2/2] net: ethernet: stmmac: " Lino Sanfilippo
2016-12-07 20:55 ` Pavel Machek
2016-12-07 20:59 ` Pavel Machek [this message]
2016-12-07 21:37 ` Pavel Machek
2016-12-07 21:43 ` Lino Sanfilippo
2016-12-07 22:34 ` Lino Sanfilippo
2016-12-07 23:21 ` Pavel Machek
2016-12-07 23:41 ` David Miller
2016-12-08 14:08 ` Pavel Machek
2016-12-08 15:26 ` David Miller
2016-12-08 15:46 ` Pavel Machek
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=20161207205942.GB2250@amd \
--to=pavel@ucw.cz \
--cc=LinoSanfilippo@gmx.de \
--cc=alexandre.torgue@st.com \
--cc=bh74.an@samsung.com \
--cc=davem@davemloft.net \
--cc=ks.giri@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peppe.cavallaro@st.com \
--cc=vipul.pandya@samsung.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.