lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1378222940.7360.34.camel@edumazet-glaptop>
Date:	Tue, 03 Sep 2013 08:42:20 -0700
From:	Eric Dumazet <eric.dumazet@...il.com>
To:	Per Dalén <per.dalen@...eartv.com>
Cc:	Claudiu Manoil <claudiu.manoil@...escale.com>,
	netdev@...r.kernel.org
Subject: Re: BQL support in gianfar causes network hiccup

On Tue, 2013-09-03 at 09:55 +0200, Per Dalén wrote:

> Yes, it's weird. The only reason I removed the BQL commit 
> (d8a0f1b0af67679bba886784de10d8c21acc4e0e) was because the error Tino 
> Keitel had was the similar as mine.


I suspect a genuine race in this driver. BQL only makes this race happen
more often.

gfar_poll_sq() has the following :

/* run Tx cleanup to completion */
if (tx_queue->tx_skbuff[tx_queue->skb_dirtytx])
        gfar_clean_tx_ring(tx_queue);

While gfar_poll() has a different method :

if (tx_queue->tx_skbuff[tx_queue->skb_dirtytx]) { 
    gfar_clean_tx_ring(tx_queue);
    has_tx_work = 1;
}

Note the has_tx_work use in gfar_poll() only.

Note that memory barriers seems to be missing.

1) In your cases, is it gfar_poll_sq() or gfar_poll() that is used ?

2) Is the bug happening if only one CPU is used ?



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ