Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758012AbcDHHws (ORCPT ); Fri, 8 Apr 2016 03:52:48 -0400 Received: from caladan.dune.hu ([78.24.191.180]:36246 "EHLO arrakis.dune.hu" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757846AbcDHHuu (ORCPT ); Fri, 8 Apr 2016 03:50:50 -0400 From: John Crispin To: "David S. Miller" Cc: Felix Fietkau , Matthias Brugger , =?UTF-8?q?Sean=20Wang=20=28=E7=8E=8B=E5=BF=97=E4=BA=98=29?= , netdev@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, John Crispin Subject: [PATCH V3 0/8] net: mediatek: make the driver pass stress tests Date: Fri, 8 Apr 2016 00:54:03 +0200 Message-Id: <1460069651-1234-1-git-send-email-blogic@openwrt.org> X-Mailer: git-send-email 1.7.10.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1353 Lines: 30 While testing the driver we managed to get the TX path to stall and fail to recover. When dual MAC support was added to the driver, the whole queue stop/wake code was not properly adapted. There was also a regression in the locking of the xmit function. The fact that watchdog_timeo was not set and that the tx_timeout code failed to properly reset the dma, irq and queue just made the mess complete. This series make the driver pass stress testing. With this series applied the testbed has been running for several days and still has not locked up. We have a second setup that has a small hack patch applied to randomly stop irqs and/or one of the queues and successfully manages to recover from these simulated tx stalls. John Crispin (8): net: mediatek: watchdog_timeo was not set net: mediatek: mtk_cal_txd_req() returns bad value net: mediatek: remove superfluous reset call net: mediatek: fix stop and wakeup of queue net: mediatek: fix TX locking net: mediatek: fix mtk_pending_work net: mediatek: move the pending_work struct to the device generic struct net: mediatek: do not set the QID field in the TX DMA descriptors drivers/net/ethernet/mediatek/mtk_eth_soc.c | 106 ++++++++++++++++----------- drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 +- 2 files changed, 66 insertions(+), 44 deletions(-) -- 1.7.10.4