Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp819973imm; Fri, 5 Oct 2018 12:20:10 -0700 (PDT) X-Google-Smtp-Source: ACcGV60LDsI/AcF0+L2gZDJmHK+kM7mDj5sj7sLO5+OakOqDGrm8GduYO3MFtYozk+6aVzQEH2vn X-Received: by 2002:a63:141:: with SMTP id 62-v6mr10899084pgb.406.1538767210907; Fri, 05 Oct 2018 12:20:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538767210; cv=none; d=google.com; s=arc-20160816; b=tuvZBpK4OSb0xg7tk8WOu/qU8pWsg5AZqcxQRs650zS0SXGaAem5dsh/9I/bc7GHEr YDuJD8dkB3wmP7oiLs8TSuwkS4ne7B8IpB5a4L3wbnTONAKgMwUcDeKW5Kp/kW9HonBC KetxTBH2kS4DBkU+HiAGYG+32bEX5BzW0fh/fSpDwABTbqlMSo4xnd/ek0ZZyjLrQ9Xg yhf+Cd+DXxkoLldMD5/TLVKD0xTMSGbLggkba8uD9plS76wVSCqqBfAzIuUwnhBEUV98 /pTKvd/J2eNF8iuURVnPyX2p9EndFQy8Fmqsjd9XQJvKTnR6SCs9nRIWWQ5mK9pP4ybM zUWA== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:references:cc:to:from:subject; bh=FWKpQfvol9lOV7093SfTlQfOhQ/YBUxC0fRpOBywCl0=; b=tiLfrYwPAzN/fViBRCg47yR/TPLScCt0eAlfY5J3yTzxvIEtV7/8fqWwYE6pbKKrxn CnF2QyRa19/BR6V6D+mhoBBEHTHNY8xt1RlhJbddEydVdtpjD5ABcrR3KBsz0QbVIrbz +A3byjgMmXhc5WLBeIeog0WqjR3+lzDecP2+PV9jlaUTuwdDiW5O/pzyPiuuHhxEJWDK 9+p4JR8IoDt8sK4J80pgw5V+pJn545/9OIbwQfmmcmSeiBzV3hp/z3Dl0qbKtl5fVQlw 5ZdCa+cJyp6j9SD/HzgTAUTPejCmcC/e7ZC5Co5A/FnzzwoFs2n8nD50Xs7BUaZ6T1+e BLsA== ARC-Authentication-Results: i=1; mx.google.com; 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 z12-v6si4589467pgo.75.2018.10.05.12.19.54; Fri, 05 Oct 2018 12:20:10 -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; 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 S1728572AbeJFCTz (ORCPT + 99 others); Fri, 5 Oct 2018 22:19:55 -0400 Received: from gateway23.websitewelcome.com ([192.185.50.185]:36827 "EHLO gateway23.websitewelcome.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728042AbeJFCTy (ORCPT ); Fri, 5 Oct 2018 22:19:54 -0400 Received: from cm15.websitewelcome.com (cm15.websitewelcome.com [100.42.49.9]) by gateway23.websitewelcome.com (Postfix) with ESMTP id 6F2FD16B79 for ; Fri, 5 Oct 2018 14:16:54 -0500 (CDT) Received: from gator4166.hostgator.com ([108.167.133.22]) by cmsmtp with SMTP id 8VZzgNTDG8YaU8VaUgpxHs; Fri, 05 Oct 2018 14:16:54 -0500 X-Authority-Reason: nr=8 Received: from 174.206.93.92.rev.sfr.net ([92.93.206.174]:53750 helo=[192.168.43.69]) by gator4166.hostgator.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1g8VZx-000I9Z-Gr; Fri, 05 Oct 2018 14:16:02 -0500 Subject: Re: [PATCH] ath10k: htt_rx: Fix signedness bug in ath10k_update_per_peer_tx_stats From: "Gustavo A. R. Silva" To: Ben Greear , Kalle Valo , "David S. Miller" Cc: ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20181005184245.GA11700@embeddedor.com> <3a55bec6-d20d-f500-e741-b228a86b7117@candelatech.com> Openpgp: preference=signencrypt Autocrypt: addr=gustavo@embeddedor.com; keydata= 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 VtSixD1uOgytAP7RWS474w== Message-ID: Date: Fri, 5 Oct 2018 21:15:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4166.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - embeddedor.com X-BWhitelist: no X-Source-IP: 92.93.206.174 X-Source-L: No X-Exim-ID: 1g8VZx-000I9Z-Gr X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174.206.93.92.rev.sfr.net ([192.168.43.69]) [92.93.206.174]:53750 X-Source-Auth: gustavo@embeddedor.com X-Email-Count: 14 X-Source-Cap: Z3V6aWRpbmU7Z3V6aWRpbmU7Z2F0b3I0MTY2Lmhvc3RnYXRvci5jb20= X-Local-Domain: yes Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/5/18 9:14 PM, Gustavo A. R. Silva wrote: > > > On 10/5/18 9:09 PM, Ben Greear wrote: >> On 10/05/2018 11:42 AM, Gustavo A. R. Silva wrote: >>> Currently, the error handling for the call to function >>> ath10k_get_legacy_rate_idx() doesn't work because >>> *rate_idx* is of type u8 (8 bits, unsigned), which >>> makes it impossible for it to hold a value less >>> than 0. >>> >>> Fix this by changing the type of variable *rate_idx* >>> to s8 (8 bits, signed). >> >> There are more than 127 rates, are you sure this is doing >> what you want? >> > > Based on the following function, rate_idx can only hold values from 0 to 11 > ... and of course -EINVAL too > static inline int ath10k_get_legacy_rate_idx(struct ath10k *ar, u8 rate) > { > static const u8 legacy_rates[] = {1, 2, 5, 11, 6, 9, 12, > 18, 24, 36, 48, 54}; > int i; > > for (i = 0; i < ARRAY_SIZE(legacy_rates); i++) { > if (rate == legacy_rates[i]) > return i; > } > > ath10k_warn(ar, "Invalid legacy rate %hhd peer stats", rate); > return -EINVAL; > } > > Thanks > -- > Gustavo > >> Thanks, >> Ben >> >>> >>> Addresses-Coverity-ID: 1473914 ("Unsigned compared against 0") >>> Fixes: 0189dbd71cbd ("ath10k: get the legacy rate index to update the txrate table") >>> Signed-off-by: Gustavo A. R. Silva >>> --- >>> ?drivers/net/wireless/ath/ath10k/htt_rx.c | 3 ++- >>> ?1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c >>> index f240525..edd0e74 100644 >>> --- a/drivers/net/wireless/ath/ath10k/htt_rx.c >>> +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c >>> @@ -2753,7 +2753,8 @@ ath10k_update_per_peer_tx_stats(struct ath10k *ar, >>> ???????????????? struct ath10k_per_peer_tx_stats *peer_stats) >>> ?{ >>> ???? struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv; >>> -??? u8 rate = 0, rate_idx = 0, sgi; >>> +??? u8 rate = 0, sgi; >>> +??? s8 rate_idx = 0; >>> ???? struct rate_info txrate; >>> >>> ???? lockdep_assert_held(&ar->data_lock); >>> >> >>