Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp261197img; Mon, 18 Mar 2019 02:30:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqxqdrdq8Qb7gErztBiglZ21uJn/SItIATLqf2xCZy0/bkIAgFcZel2cezSIHlAbAZDgDTm0 X-Received: by 2002:a17:902:8693:: with SMTP id g19mr18897230plo.157.1552901453773; Mon, 18 Mar 2019 02:30:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552901453; cv=none; d=google.com; s=arc-20160816; b=DTv7h9+8UBpIPJFLUVsHgww4BuIkzA300KfLgStak0RDGf10Q4Hd4etvSqgRPMt0Zg rHHwnHofGgJXlKEMYkHL9eXm2GH5Z074o0+Qim2O+1DpA5bcLkndbcDkn4aSAsEPmDpH wFKiDbDpl0J+sk/M3KT35QRdRfuuql2YbUcTlK9fg80lLJBvjCH0XsPe0RlBP2qoqDCx 8AR+dma+OEaTaJFQA0iLYdTBL9oueFT8PYWVQPuq3CCU05TXNSWZZJtckhersp+0RLQ6 sOKKfQFIjfMjWX+5W88ur6a+ka4wOUwlge+q0DLxqQ6X5dPhVsbMXgCbDJt1sEhufADb yZJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=PRugVkEPra/n/OZdgdCsALPdftg5wKU7lp3C0aHNEsQ=; b=hkM4n6s6NqEjw0AjwMk3yLaloX4gyr/PGrmOckX7m6BmhSRzBPa3JHg5/4r2Jj/OfS aO7zvDtU2qpvT5zuuCcUY28nckNjDJNwcSmy8G72gp0QganTqLpk0gURI4NUEbA3myti qe67wfrvt6vrFm/Nn3gQpN/a+ydnJj6dwwsWsC0zeoZ5IrrJjbQLS5ble3ZnZc6bTz4R E7LWbZbLXlxcdyg2gDeVOO8z8jVSOb7w3OH32J+ide8xMFqNl/cWYJyoCw6mhyGZcsaQ Fu0Yx+S58ZbkP7Yjl85e/G1ckSH3KuReQ2XCaTYm8EUtg8bSXHfdfrAmLQrloSMMBIHI aW3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aglTV0Uo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k124si7471661pgc.184.2019.03.18.02.30.39; Mon, 18 Mar 2019 02:30:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aglTV0Uo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728168AbfCRJ3B (ORCPT + 99 others); Mon, 18 Mar 2019 05:29:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:35030 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727632AbfCRJ24 (ORCPT ); Mon, 18 Mar 2019 05:28:56 -0400 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 17CEF2075C; Mon, 18 Mar 2019 09:28:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552901335; bh=sszEFTP1oQwKVWisPxgocJBAjbYZDjfSbmUy0iJ3ILc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aglTV0UoNadiBpoj0g4ZBY8FJvtpD5tf94rGR2U8zafqapVlZ+J9FgKD67QHqfWRI uYfAG6Ww0tj+IxfY8pgogmUd0CE56Aav/BQnl9EqvLRnB3TbOeut6JRTKZND3YG4N1 XL8hvhNdqRnPxYF2eQs2vf1MRgSnWXWLK8xrY/oo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bryan Whitehead , "David S. Miller" Subject: [PATCH 4.20 06/52] lan743x: Fix TX Stall Issue Date: Mon, 18 Mar 2019 10:24:53 +0100 Message-Id: <20190318083844.162308248@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190318083843.398913295@linuxfoundation.org> References: <20190318083843.398913295@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Bryan Whitehead [ Upstream commit deb6bfabdbb634e91f36a4e9cb00a7137d72d886 ] It has been observed that tx queue may stall while downloading from certain web sites (example www.speedtest.net) The cause has been tracked down to a corner case where the tx interrupt vector was disabled automatically, but was not re enabled later. The lan743x has two mechanisms to enable/disable individual interrupts. Interrupts can be enabled/disabled by individual source, and they can also be enabled/disabled by individual vector which has been mapped to the source. Both must be enabled for interrupts to work properly. The TX code path, primarily uses the interrupt enable/disable of the TX source bit, while leaving the vector enabled all the time. However, while investigating this issue it was noticed that the driver requested the use of the vector auto clear feature. The test above revealed a case where the vector enable was cleared unintentionally. This patch fixes the issue by deleting the lines that request the vector auto clear feature to be used. Fixes: 23f0703c125b ("lan743x: Add main source files for new lan743x driver") Signed-off-by: Bryan Whitehead Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/microchip/lan743x_main.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c @@ -585,8 +585,7 @@ static int lan743x_intr_open(struct lan7 if (adapter->csr.flags & LAN743X_CSR_FLAG_SUPPORTS_INTR_AUTO_SET_CLR) { - flags = LAN743X_VECTOR_FLAG_VECTOR_ENABLE_AUTO_CLEAR | - LAN743X_VECTOR_FLAG_VECTOR_ENABLE_AUTO_SET | + flags = LAN743X_VECTOR_FLAG_VECTOR_ENABLE_AUTO_SET | LAN743X_VECTOR_FLAG_SOURCE_ENABLE_AUTO_SET | LAN743X_VECTOR_FLAG_SOURCE_ENABLE_AUTO_CLEAR | LAN743X_VECTOR_FLAG_SOURCE_STATUS_AUTO_CLEAR; @@ -599,12 +598,6 @@ static int lan743x_intr_open(struct lan7 /* map TX interrupt to vector */ int_vec_map1 |= INT_VEC_MAP1_TX_VEC_(index, vector); lan743x_csr_write(adapter, INT_VEC_MAP1, int_vec_map1); - if (flags & - LAN743X_VECTOR_FLAG_VECTOR_ENABLE_AUTO_CLEAR) { - int_vec_en_auto_clr |= INT_VEC_EN_(vector); - lan743x_csr_write(adapter, INT_VEC_EN_AUTO_CLR, - int_vec_en_auto_clr); - } /* Remove TX interrupt from shared mask */ intr->vector_list[0].int_mask &= ~int_bit;