Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932238AbcCXOyK (ORCPT ); Thu, 24 Mar 2016 10:54:10 -0400 Received: from mail-wm0-f46.google.com ([74.125.82.46]:37193 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757729AbcCXOxY (ORCPT ); Thu, 24 Mar 2016 10:53:24 -0400 Subject: Re: [PATCH 1/1] net: macb: remove BUG_ON() and reset the queue to handle RX errors To: Cyrille Pitchen , nicolas.ferre@atmel.com, davem@davemloft.net, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, soren.brinkmann@xilinx.com References: <1458830232-6159-1-git-send-email-cyrille.pitchen@atmel.com> Cc: linux-kernel@vger.kernel.org From: Neil Armstrong Organization: Baylibre Message-ID: <56F3FF5C.6030000@baylibre.com> Date: Thu, 24 Mar 2016 15:53:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <1458830232-6159-1-git-send-email-cyrille.pitchen@atmel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1041 Lines: 27 On 03/24/2016 03:37 PM, Cyrille Pitchen wrote: > This patch removes two BUG_ON() used to notify about RX queue corruptions > on macb (not gem) hardware without actually handling the error. > > The new code skips corrupted frames but still processes faultless frames. > Then it resets the RX queue before restarting the reception from a clean > state. > > This patch is a rework of an older patch proposed by Neil Armstrong: > http://patchwork.ozlabs.org/patch/371525/ > > Signed-off-by: Cyrille Pitchen > --- > drivers/net/ethernet/cadence/macb.c | 59 ++++++++++++++++++++++++++++++------- > 1 file changed, 49 insertions(+), 10 deletions(-) Hi Cyrille, Thanks for the rework, we solved this situation by moving the descriptors to an internal RAM with lower latencies, we suspected our AHB-AXI bridge + DDR Controller to delay the descriptor writes while the interrupt was handled in the meantime. But the error case was still not handled. Acked-by: Neil Armstrong Thanks, Neil