From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51AF72989F6; Mon, 5 May 2025 22:37:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746484655; cv=none; b=rAE0AlAepgB0dPNQY2fIF/6a1QRfHGhW2ic0lbGe4Bb2ZcCxjPattSmcMFENdrL374vNlmK0CUhvKgUtMPYu0i+K9fVnZlLaEpvDH2sGQtMxS3jPiICQAvh0RqeDDszyNY8bf7PuIkdMl8cmlB8tKD34DAx6BambIYQl/oaq918= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746484655; c=relaxed/simple; bh=R56KiKT+6z9Ua7x8vA+eYoe+SncVp1m7DAurbrtEiqU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SiAm1SGKnt6uxUF0FJv5UOMPH6GyiC99bFlWEpLrVDJWXHAbUwKuzMtO9vLegIRuScJimBWiLQqSfiWMy9lr7gOA+GCPVFNecYdYVo7C3gJY3H0YuCEa5rbHQlQmMs3ik10N/LaM4Dm4u7r8dZtIeFpPGhtSB3jW6e6kkK40FuU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RDEaGhoA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RDEaGhoA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 147C4C4CEED; Mon, 5 May 2025 22:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746484654; bh=R56KiKT+6z9Ua7x8vA+eYoe+SncVp1m7DAurbrtEiqU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RDEaGhoAIkBFuvW9wQfWyvmoP2BU/h1lyFMMZ6m6EGQHyndG3MNfVk5D76YyZCkzo IEmG7Y3L64VjX/9yGj8s0COWhR1SeOeIwOR1vQpWh4ontSwslBPzIHAJZnonrAbNsL 3K5z5avBTqUvXyKm4J6siQ57GjxgcpSXw5yTtJHtnJ0rEyKAeuSZeoUhfTRF3keL0f rIxJf25F10pVJ2L+hlL6m4ch9n07xw+EDHiJbHmP2SPXCL4O/D7hqnbYVGdpU/PJeD bqaK6K86iWhxzr5JebD34GFvKqWYsZBUs1JeN5ID+tfMuFS6S5n52ejSDbtwVlgqAv S4bADh9L6DExw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bitterblue Smith , Ping-Ke Shih , Sasha Levin , linux-wireless@vger.kernel.org Subject: [PATCH AUTOSEL 6.14 587/642] wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate Date: Mon, 5 May 2025 18:13:23 -0400 Message-Id: <20250505221419.2672473-587-sashal@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250505221419.2672473-1-sashal@kernel.org> References: <20250505221419.2672473-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.14.5 Content-Transfer-Encoding: 8bit From: Bitterblue Smith [ Upstream commit 00451eb3bec763f708e7e58326468c1e575e5a66 ] Some users want to plug two identical USB devices at the same time. This static variable could theoretically cause them to use incorrect TX power values. Move the variable to the caller and pass a pointer to it to rtw8822b_set_tx_power_index_by_rate(). Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Ping-Ke Shih Link: https://patch.msgid.link/8a60f581-0ab5-4d98-a97d-dd83b605008f@gmail.com Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtw88/rtw8822b.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c index 7f03903ddf4bb..23a29019752da 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c @@ -935,11 +935,11 @@ static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status, } static void -rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs) +rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, + u8 rs, u32 *phy_pwr_idx) { struct rtw_hal *hal = &rtwdev->hal; static const u32 offset_txagc[2] = {0x1d00, 0x1d80}; - static u32 phy_pwr_idx; u8 rate, rate_idx, pwr_index, shift; int j; @@ -947,12 +947,12 @@ rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs) rate = rtw_rate_section[rs][j]; pwr_index = hal->tx_pwr_tbl[path][rate]; shift = rate & 0x3; - phy_pwr_idx |= ((u32)pwr_index << (shift * 8)); + *phy_pwr_idx |= ((u32)pwr_index << (shift * 8)); if (shift == 0x3) { rate_idx = rate & 0xfc; rtw_write32(rtwdev, offset_txagc[path] + rate_idx, - phy_pwr_idx); - phy_pwr_idx = 0; + *phy_pwr_idx); + *phy_pwr_idx = 0; } } } @@ -960,11 +960,13 @@ rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs) static void rtw8822b_set_tx_power_index(struct rtw_dev *rtwdev) { struct rtw_hal *hal = &rtwdev->hal; + u32 phy_pwr_idx = 0; int rs, path; for (path = 0; path < hal->rf_path_num; path++) { for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) - rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs); + rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs, + &phy_pwr_idx); } } -- 2.39.5