Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3116315imu; Mon, 19 Nov 2018 10:52:06 -0800 (PST) X-Google-Smtp-Source: AJdET5fe43sBHHnA2JPGFVSybOzuFpP+ZQiFJKPhPw/xi5RA0vgQt0JrD8FPyrjrgOHjq+DH7Aft X-Received: by 2002:a63:990a:: with SMTP id d10mr21235618pge.279.1542653526859; Mon, 19 Nov 2018 10:52:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542653526; cv=none; d=google.com; s=arc-20160816; b=fjHuObXOQs89V9Wm1dN5xI7rIvzHw9nlpKmRz2IE6m5sx7wvCWA2ASwugdAodAHuqW xi/RHVuqV4BCxQdxhSANwYiT50pPLlku5rjH4qp6S3kfCaxpfUqOMEyznIA0FTuOhAkZ CY7FRlUgRb4ieTUUUDY12h1xg9F8ae7jrF4NenVv0mZx+0iFC0bPiAfLzmv3guv4ZZlC WYl8n034e8YXZ+J8O8n/CBQJY+aGXQZlfNA71bnNR4/6YMMc/Qi7DUyRE+2x4RXMfJhe hngRW1NZDYl+y4ve+LyffYzp02dS0qrveGH+fiA+AVng0ec69CRwOS6NB+5vfSMC+Ml1 4S2A== 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=mnOYjFybmWhUusl++gpiKIO8x17qdf5td3OH43wAs7c=; b=iJnKjm0Qu48vwNMlbpeTrUESTO/3zk4HP69LMb+vbEamwR/W3JPivotpMiZfCFpHnO HYh55xr6tlb+LNavoPZLdeWt75ANZFMjpjFriQgs28kx90j2DmyVzdbuFaXKWN68/lxl Df+1n1Fk3gv5dMGqx/33c5edNmdb7yzAqnT0JEl5CpyOwu2Hr1nFQ42qXrvnSdT7rd0A j5XQh7EeV1l2fkr0qh8vdGAI2DuWxjeQ4xFZGxTVm8S4Fl/DAlcSEtr3vBPtT5C+uDrF dhZb5HLiN0GCxGXNN85qmciHIv7X1SbR+PzD1+4ErQjkUOyyV7OY5lOQji8dBqy0OlSR EKCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VTMZra0C; 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 j195si1497485pfd.165.2018.11.19.10.51.51; Mon, 19 Nov 2018 10:52:06 -0800 (PST) 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=VTMZra0C; 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 S2406357AbeKTD2E (ORCPT + 99 others); Mon, 19 Nov 2018 22:28:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:42256 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405677AbeKTD2B (ORCPT ); Mon, 19 Nov 2018 22:28:01 -0500 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 1D7BA2146D; Mon, 19 Nov 2018 17:03:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542647024; bh=3wjus9BBZ0eG/fL+nDKtBSs7hlXfomtX00TUysEeH3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VTMZra0Cx7cT8gsQd+1F2al9XIAKrER2GPXFIpBIT6EiHtq5BHxcVCc9zRBeybS5P 7RQYxwp5UUfjVAofwkO5zFTN3ZcQcHYkOZxsU+TsXxYmeu1xKewcyH32E5MnsPzKDZ MIHtLTQahEhCThis5+AFS9GK54Vr5iP1aRirzIDo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Martin Willi , Kalle Valo , Sasha Levin Subject: [PATCH 3.18 21/90] ath10k: schedule hardware restart if WMI command times out Date: Mon, 19 Nov 2018 17:29:03 +0100 Message-Id: <20181119162624.402134251@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181119162620.585061184@linuxfoundation.org> References: <20181119162620.585061184@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Martin Willi [ Upstream commit a9911937e7d332761e8c4fcbc7ba0426bdc3956f ] When running in AP mode, ath10k sometimes suffers from TX credit starvation. The issue is hard to reproduce and shows up once in a few days, but has been repeatedly seen with QCA9882 and a large range of firmwares, including 10.2.4.70.67. Once the module is in this state, TX credits are never replenished, which results in "SWBA overrun" errors, as no beacons can be sent. Even worse, WMI commands run in a timeout while holding the conf mutex for three seconds each, making any further operations slow and the whole system unresponsive. The firmware/driver never recovers from that state automatically, and triggering TX flush or warm restarts won't work over WMI. So issue a hardware restart if a WMI command times out due to missing TX credits. This implies a connectivity outage of about 1.4s in AP mode, but brings back the interface and the whole system to a usable state. WMI command timeouts have not been seen in absent of this specific issue, so taking such drastic actions seems legitimate. Signed-off-by: Martin Willi Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/ath/ath10k/wmi.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c @@ -751,6 +751,12 @@ int ath10k_wmi_cmd_send(struct ath10k *a if (ret) dev_kfree_skb_any(skb); + if (ret == -EAGAIN) { + ath10k_warn(ar, "wmi command %d timeout, restarting hardware\n", + cmd_id); + queue_work(ar->workqueue, &ar->restart_work); + } + return ret; }