Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2928760rwb; Mon, 15 Aug 2022 14:14:24 -0700 (PDT) X-Google-Smtp-Source: AA6agR7Qm6NDlULhUIQcPrccrBbftvTdNB2cCKss2+5VoRUr46ZU3KjZ5GAn2i5afOjbh7HwQ9a8 X-Received: by 2002:a17:90b:3850:b0:1f5:609a:3ac6 with SMTP id nl16-20020a17090b385000b001f5609a3ac6mr29222461pjb.125.1660598064500; Mon, 15 Aug 2022 14:14:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660598064; cv=none; d=google.com; s=arc-20160816; b=kNaAWYwAmRkPiuhhEcBNuXGz6kSewcx1vHTK0MztemMvAy9y6t5XJ30MnjhXNNoWD4 bf8dTbJvlIP55iUGH8VjiJ/ugw8YclpteqQ61V5MkC2o2fC9R2OgdtiK76wTcPCGffsK g+eenhXbOhFnDFQ8OG6klsXZqyUOXJFF2XGQgFJj3UElBAlPO1iw3/Eg8wPADPsaa2I/ k1M2lIz5/taSBQtBiameOZ4+mGianeZVImsjR6oc1/H2kw3GwmgrudWpynZvoTxeUj4i nfSsXUIuswVfHj70pRpiVaPFWF24+P8ZHNq2bhChT24rakaNJAPWoaFcmweZ9ypwBl5F 5D1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Fpqk/4pR5NF+tt7ClYks8ASWQNjqhwoxBoumbAy1g8w=; b=WzQfE2zvCDNBXhu4KkDh42UPO0ZlLQfN9oCQ67vF6qqmdGiAz7GMm8J8jZWkfrmTE7 SF13yqwCuKJdnla/knDJaSQr08biXRL0r5kgrdQwoVfWvxiHIiuYm5bMBpUW77cltcDb oYN7W6Jyo1rnXgb9s9bxEoDjIxxZHRXCv0jWsnqBU1UQ6y6aOuPjexBGSEq+gvbm228y lvWbBO9858MBAlGa09fnW46AnzEYqyU1OfR548zm/VWC3VA2CRpWpQBea3/UjTJ8OH1j 1yTkJOGg3RrWZU9G65i99fwuUiwfXyZXqzXGh4EiK0PbhnZsjsu6gJMELubfkvFMSZ18 aIiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zMYI97pZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t18-20020a63f352000000b00419928621besi12141286pgj.320.2022.08.15.14.14.13; Mon, 15 Aug 2022 14:14:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zMYI97pZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344528AbiHOVDw (ORCPT + 99 others); Mon, 15 Aug 2022 17:03:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347162AbiHOVBg (ORCPT ); Mon, 15 Aug 2022 17:01:36 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE4F8C926D; Mon, 15 Aug 2022 12:13:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id D2222B8110A; Mon, 15 Aug 2022 19:13:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2AE29C433D6; Mon, 15 Aug 2022 19:13:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660590817; bh=KcSc+ZYjKicKcnG6acQfvVnfRgrO3EcgcspnfS6w9AQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zMYI97pZoxpElTRQ/Yg76Pu6AraGvkxCa0sItiGZ1NqlO8ndnRmRh1CY9SKMyxru1 KejXdDFcx+JtrOH8ez5UcGQ62KSyhwyPLcYqgkyT5U84JdwocD7WQDOnMTmm5da8ds 89sbcRq5ecyj5cCTjfxy42AUb/ZaR3MFq05zULzk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ping-Ke Shih , Kalle Valo , Sasha Levin Subject: [PATCH 5.18 0363/1095] wifi: rtw89: 8852a: rfk: fix div 0 exception Date: Mon, 15 Aug 2022 19:56:02 +0200 Message-Id: <20220815180444.738712898@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180429.240518113@linuxfoundation.org> References: <20220815180429.240518113@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ping-Ke Shih [ Upstream commit 683a4647a7a3044868cfdc14c117525091b9fa0c ] The DPK is a kind of RF calibration whose algorithm is to fine tune parameters and calibrate, and check the result. If the result isn't good enough, it could adjust parameters and try again. This issue is to read and show the result, but it could be a negative calibration result that causes divisor 0 and core dump. So, fix it by phy_div() that does division only if divisor isn't zero; otherwise, zero is adopted. divide error: 0000 [#1] PREEMPT SMP NOPTI CPU: 1 PID: 728 Comm: wpa_supplicant Not tainted 5.10.114-16019-g462a1661811a #1 RIP: 0010:rtw8852a_dpk+0x14ae/0x288f [rtw89_core] RSP: 0018:ffffa9bb412a7520 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 00000000000180fc RDI: ffffa141d01023c0 RBP: ffffa9bb412a76a0 R08: 0000000000001319 R09: 00000000ffffff92 R10: ffffffffc0292de3 R11: ffffffffc00d2f51 R12: 0000000000000000 R13: ffffa141d01023c0 R14: ffffffffc0290250 R15: ffffa141d0102638 FS: 00007fa99f5c2740(0000) GS:ffffa142e5e80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000013e8e010 CR3: 0000000110d2c000 CR4: 0000000000750ee0 PKRU: 55555554 Call Trace: rtw89_core_sta_add+0x95/0x9c [rtw89_core ] rtw89_ops_sta_state+0x5d/0x108 [rtw89_core ] drv_sta_state+0x115/0x66f [mac80211 ] sta_info_insert_rcu+0x45c/0x713 [mac80211 ] sta_info_insert+0xf/0x1b [mac80211 ] ieee80211_prep_connection+0x9d6/0xb0c [mac80211 ] ieee80211_mgd_auth+0x2aa/0x352 [mac80211 ] cfg80211_mlme_auth+0x160/0x1f6 [cfg80211 ] nl80211_authenticate+0x2e5/0x306 [cfg80211 ] genl_rcv_msg+0x371/0x3a1 ? nl80211_stop_sched_scan+0xe5/0xe5 [cfg80211 ] ? genl_rcv+0x36/0x36 netlink_rcv_skb+0x8a/0xf9 genl_rcv+0x28/0x36 netlink_unicast+0x27b/0x3a0 netlink_sendmsg+0x2aa/0x469 sock_sendmsg_nosec+0x49/0x4d ____sys_sendmsg+0xe5/0x213 __sys_sendmsg+0xec/0x157 ? syscall_enter_from_user_mode+0xd7/0x116 do_syscall_64+0x43/0x55 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7fa99f6e689b Fixes: e3ec7017f6a2 ("rtw89: add Realtek 802.11ax driver") Signed-off-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20220613065144.15647-1-pkshih@realtek.com Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c index ad272854c442..8e4869eb3a24 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c @@ -2330,8 +2330,8 @@ static u8 _dpk_pas_read(struct rtw89_dev *rtwdev, bool is_check) val2_q = abs(sign_extend32(val2_q, 11)); rtw89_debug(rtwdev, RTW89_DBG_RFK, "[DPK] PAS_delta = 0x%x\n", - (val1_i * val1_i + val1_q * val1_q) / - (val2_i * val2_i + val2_q * val2_q)); + phy_div(val1_i * val1_i + val1_q * val1_q, + val2_i * val2_i + val2_q * val2_q)); } else { for (i = 0; i < 32; i++) { -- 2.35.1