Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp851799ybt; Fri, 19 Jun 2020 15:49:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxG9GbqYgN8xCRQtVMtvCza05of8DkTwEy3mUCVA49jOyQahqnD5qLTlVLZ2+cDJyw/9ngw X-Received: by 2002:a50:9b13:: with SMTP id o19mr5505703edi.143.1592606958389; Fri, 19 Jun 2020 15:49:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592606958; cv=none; d=google.com; s=arc-20160816; b=A5WShE0fyQ1xpHwk9SIhBZnl2ZOkMednPjG3Px/2scyA/Xrb541X4/Hy3RIBAdyW8P SzVpvtYE99xyj9gwMC994rm+mjZxIatko/ROF0k3Buk0/j8AlYvgaPlRx7nStAIq3rrf iKIs36XaNEqnjPNpER0iZ4ryvNZhlVFHHMkTuhtnClATUMGPqWwUgyPzg+KpTRy2G8RA /D8BrHvLfC6ht5hBHQXZwHmVoVvHp6u16a+APv/OrZi+LybgP29/aYc9TXpu4gCDoVWm Hk65I8wljcfp6+9ztCiIRmyjkXi4f+vnKfjjTiFW61d9unQawF3DaSXbEk4gJzLVBH0Y Gnhw== 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=jCz1vQPbvnxL187cKsLgN1+7JV5V8c+fh+Vq9sOspOs=; b=aRlW5Nnl2aEVjGL5Qe7/1iDWVgjIPGlfaaN6SROzxtMp+1qvPQ9+MP5BuoAvRyCd4w IrU06zv1atOnpmJupOIiTZWfdCbmRyb192NjIXuKvF1vM+lbZ33g4+nTBzAPwRU82oxh wM/NBn6VuXkbs3glMYW7GBGuMXGgysiVPF0EM2vPFEL+BIcPeOvchUlbQwloCtnxdpaE PkTVJIH3FREdFKvij9t5NdA6e6tkpUQDlZchmQEAoc+cTHL8xJS9ZwJWGnVd/d5oK9+b tndjMopsMGPaaH9wKZUrRIdPbGv/Wtu6VWjMg3Bgx+WzQjzSqAip5WHkPDiiQt/YwN/4 sT2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ECnz0emp; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n19si4754854edr.152.2020.06.19.15.48.56; Fri, 19 Jun 2020 15:49:18 -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 header.i=@kernel.org header.s=default header.b=ECnz0emp; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393287AbgFSPYd (ORCPT + 99 others); Fri, 19 Jun 2020 11:24:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:52682 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392844AbgFSPVX (ORCPT ); Fri, 19 Jun 2020 11:21:23 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 DD55521548; Fri, 19 Jun 2020 15:21:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592580082; bh=oka/rNmtiRJwDwVogsEa+EcBiai5h5lBqQBMHdewr8A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ECnz0empwOUoVz2Jvc/jRoz3S2tC/JzTuhWOIrPwkcOWRo3v4QcRTCIcV9oWdhQK8 WkKrL3JA5re3FmSuwXXdn3vbrYJwmNJ07c68SE1pB8APhy0rtf9Dsd2UUa29mtUGMi LrYL+rDYngOODoQ6WxMwHLpg7bwYzDBd3pIN8nUY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sriram R , Kalle Valo , Sasha Levin Subject: [PATCH 5.7 085/376] ath11k: Avoid mgmt tx count underflow Date: Fri, 19 Jun 2020 16:30:03 +0200 Message-Id: <20200619141714.368063613@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141710.350494719@linuxfoundation.org> References: <20200619141710.350494719@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Sriram R [ Upstream commit 800113ff4b1d277c2b66ffc04d4d38f202a0d187 ] The mgmt tx count reference is incremented/decremented on every mgmt tx and on tx completion event from firmware. In case of an unexpected mgmt tx completion event from firmware, the counter would underflow. Avoid this by decrementing only when the tx count is greater than 0. Signed-off-by: Sriram R Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/1585567028-9242-1-git-send-email-srirrama@codeaurora.org Signed-off-by: Sasha Levin --- drivers/net/wireless/ath/ath11k/wmi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c index 6fec62846279..73beca6d6b5f 100644 --- a/drivers/net/wireless/ath/ath11k/wmi.c +++ b/drivers/net/wireless/ath/ath11k/wmi.c @@ -3740,8 +3740,9 @@ static int wmi_process_mgmt_tx_comp(struct ath11k *ar, u32 desc_id, ieee80211_tx_status_irqsafe(ar->hw, msdu); - WARN_ON_ONCE(atomic_read(&ar->num_pending_mgmt_tx) == 0); - atomic_dec(&ar->num_pending_mgmt_tx); + /* WARN when we received this event without doing any mgmt tx */ + if (atomic_dec_if_positive(&ar->num_pending_mgmt_tx) < 0) + WARN_ON_ONCE(1); return 0; } -- 2.25.1