Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4436805pxj; Tue, 8 Jun 2021 14:23:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyV38OCdX3LCwdKCh9dUmHvox2XmTmSTj3UBYIQR6yi0nrhuZmOdVXhim6Ac5h9Nx/rtlZI X-Received: by 2002:a17:906:d92:: with SMTP id m18mr23798976eji.27.1623187438109; Tue, 08 Jun 2021 14:23:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623187438; cv=none; d=google.com; s=arc-20160816; b=F6kScYVlfzuqadPK0VACx+XDVFq2Gw0VlYy90qUZDH6KnA8i9hzcs3ghpzbHsX9v4X e8UTy2LjXnT+bkALYVC1RQi+yS/vvFgq1jDPUYBlQgQDbDJs8xF+P2OU7aEdW2Xrv3I8 PI84ksahWlexxPyYLbQ4DBEG7XGUkK6HNZDZ3pyEpd8EwILCXkDzF0IgNt/5npQuCgpj 8BFhL+YcCUmo0N/DLo89E7ILD0aBBzRQVA/1eAgyRfyhsrX7CLvx1DIT6kvZm0yRmnWs rdDIggr+4JI67ihUFhNT8MtG+ZfOyZvIQDh+wPMnmWn8klFmiXhrivrMTLWX409KEot5 JMVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=lBM9fagQUsqB5rm/xWIhTisDyZOvVhgoTpGJnaeI+fE=; b=T3K+Qb84f8+Bw759gh8VM4P2XbGefnwJJ2qJC4pa7+2onuw3KXdk2mh/HuaKG0r01S nOQy3fCZgFwPGkfSJhalicThpQbajdKubmLqIBjtboifQgjcn5vAqiUnIhpezu9jFwYE rE7UVPOkJaCx2dwkvs5BJVI7/zhIe35EjXuQlnwJ/50Ms0OepSsMaNSkjBpnA8D5zBoE atNOjqtXeyp9n4FIl3mT1bMSay04BWyQsQDmsZJGA+3mZiX4Yix7oyQKGTB+5R/B6fSZ BjEgA/aUjLIE774j3mb+yLe4//B8HnJVHi4LxLahd5FnBUjzZ7v4RMTjiM9Iy01+aEE3 5x1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@wp.pl header.s=1024a header.b=KChRhIdh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=wp.pl Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k6si711788edq.273.2021.06.08.14.23.33; Tue, 08 Jun 2021 14:23:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@wp.pl header.s=1024a header.b=KChRhIdh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=wp.pl Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233318AbhFHVXF (ORCPT + 99 others); Tue, 8 Jun 2021 17:23:05 -0400 Received: from mx3.wp.pl ([212.77.101.9]:60918 "EHLO mx3.wp.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232404AbhFHVXF (ORCPT ); Tue, 8 Jun 2021 17:23:05 -0400 Received: (wp-smtpd smtp.wp.pl 9564 invoked from network); 8 Jun 2021 23:21:09 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wp.pl; s=1024a; t=1623187269; bh=lBM9fagQUsqB5rm/xWIhTisDyZOvVhgoTpGJnaeI+fE=; h=From:To:Cc:Subject; b=KChRhIdhFcNqZ/31gvgN7CfBzAFoVZFyK9yFkJyW/1kq3iNkFD8a4ATlamZxArnyF 9M6h3TFss+ME/x6n3FcYSosD75HHmHoGhmYBSgFDcABV8hT7JfHDw0HSzWheBvo0Yi NSd24gACxoGzNHWSJT7rgwif48nNRMpltXyurlaQ= Received: from riviera.nat.ds.pw.edu.pl (HELO LAPTOP-OLEK.lan) (olek2@wp.pl@[194.29.137.1]) (envelope-sender ) by smtp.wp.pl (WP-SMTPD) with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP for ; 8 Jun 2021 23:21:09 +0200 From: Aleksander Jan Bajkowski To: hauke@hauke-m.de, davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Aleksander Jan Bajkowski Subject: [PATCH net] net: lantiq: disable interrupt before sheduling NAPI Date: Tue, 8 Jun 2021 23:21:07 +0200 Message-Id: <20210608212107.222690-1-olek2@wp.pl> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-WP-DKIM-Status: good (id: wp.pl) X-WP-MailID: 74f9476f921faa77c221978c56049973 X-WP-AV: skaner antywirusowy Poczty Wirtualnej Polski X-WP-SPAM: NO 0000000 [gUPk] Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch fixes TX hangs with threaded NAPI enabled. The scheduled NAPI seems to be executed in parallel with the interrupt on second thread. Sometimes it happens that ltq_dma_disable_irq() is executed after xrx200_tx_housekeeping(). The symptom is that TX interrupts are disabled in the DMA controller. As a result, the TX hangs after a few seconds of the iperf test. Scheduling NAPI after disabling interrupts fixes this issue. Tested on Lantiq xRX200 (BT Home Hub 5A). Fixes: 9423361da523 ("net: lantiq: Disable IRQs only if NAPI gets scheduled ") Signed-off-by: Aleksander Jan Bajkowski --- drivers/net/ethernet/lantiq_xrx200.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/lantiq_xrx200.c b/drivers/net/ethernet/lantiq_xrx200.c index 36dc3e5f6218..0e10d8aeffe1 100644 --- a/drivers/net/ethernet/lantiq_xrx200.c +++ b/drivers/net/ethernet/lantiq_xrx200.c @@ -352,8 +352,8 @@ static irqreturn_t xrx200_dma_irq(int irq, void *ptr) struct xrx200_chan *ch = ptr; if (napi_schedule_prep(&ch->napi)) { - __napi_schedule(&ch->napi); ltq_dma_disable_irq(&ch->dma); + __napi_schedule(&ch->napi); } ltq_dma_ack_irq(&ch->dma); -- 2.30.2