From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: [PATCH v3 3/4] net: nb8800: Move HW init to ndo_open() Date: Thu, 16 Nov 2017 17:23:49 +0100 Message-ID: <20171116162349.GG7627@lunn.ch> References: <103bc878-9311-a727-1c21-2070e0a480e5@sigmadesigns.com> <4e22ef54-d823-fc29-fedc-d447fa3d9c88@sigmadesigns.com> <30042004-4e13-b7e2-b49d-754db54cc5ce@sigmadesigns.com> <691f71bc-9e1b-5281-1482-fc532151f5ce@sigmadesigns.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev , Florian Fainelli , Mason , Thibaud Cornic , Mans Rullgard , David Miller , Linux ARM To: Marc Gonzalez Return-path: Received: from vps0.lunn.ch ([185.16.172.187]:57470 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935082AbdKPQXy (ORCPT ); Thu, 16 Nov 2017 11:23:54 -0500 Content-Disposition: inline In-Reply-To: <691f71bc-9e1b-5281-1482-fc532151f5ce@sigmadesigns.com> Sender: netdev-owner@vger.kernel.org List-ID: > I'm starting to think there is some kind of race condition between > SW and HW handling of descriptors. This might also explain the > out-of-order warnings. Hi Marc Maybe take a look at your memory barriers. Most accesses using the _relaxed() version, i.e, no barrier. And then there are specific barriers when needed. One could be missing. As a quick test, drop the _relaxed. Force a barrier with each access. If that works, it is a clear indication you have a barrier problem. Andrew