From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 E546937FF41 for ; Wed, 19 Aug 2026 11:02:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787137350; cv=none; b=pjCcWeTn9Qf21hYKUCY7BhLDQD5UnoGhZd2biwZOIsCLxWlu7z/2Wq8dlgPbBEpcLzi/Mb9qNnbt4VsQLSDjjOKtUhxBqTaxlrzJuGXia5DzS27QopNX23Wz53RCCgbRVMHXWwbmUTru5I4VBL+m3vuGcBe2CMB5xox2XPT2s2w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787137350; c=relaxed/simple; bh=skXFEv82mDaxa10FJGTeM2I1ipd/VUu1wqa7sRg+SOw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NK3OQc4rVi9vZGp5jpynN6CvWAFl1Gn78M+aKpTd6Z8JQeTR6nL7SUtvVju+EvmCl/r38Lnouo11fDQI9X4W0zHKHlKHcWWdmrYQCCVEbgfGTlutmTN770UMG+FKv6g3RkL0pVw5oOOCwFQixtf+tlNrNFVBLOZgQ/yJIpu6rVU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=lidIYC0B; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Zud+qEyF; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lidIYC0B"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Zud+qEyF" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67JA86qb3216313 for ; Wed, 19 Aug 2026 11:02:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=vyKJFYkmHLm xJynjjYLpBWykIurLQKwlcGxv2Quzm+w=; b=lidIYC0BxmoX6Y863sxMn31n83E 00j3ycH0zFDq8NhUp5AHAaI2sM6b3G3C5scGLIwsDPxpdHJaH9HqOwuJuJUnwSbt NAKPdnw6uozEYiAXkTTPiz+9ZlLLbbRYl1xxWYQrf19VmUgIVyVx27gr0m2fMHtj P4AS2uqsI296PUObZ/QoQTTDZJRDr2l4cifmwx+OmZ96IWOVg+YRPBkCXVUz9Mgn OmBm4DRdpZaRvThtnjHX+0eyy2JkwGEXgqPcbeqo12Jaf2Qi6abN8CmuuXWE7N27 OIGDtSccG5z/fwstelpqhLrxHaxjvYbgviBMpsJ7VZzMd5AvK6rTRXS6N6Q== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g4yfm2ub0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 19 Aug 2026 11:02:27 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38e4758ab46so1573245a91.0 for ; Wed, 19 Aug 2026 04:02:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787137347; x=1787742147; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=vyKJFYkmHLmxJynjjYLpBWykIurLQKwlcGxv2Quzm+w=; b=Zud+qEyFhOHlzUQLFOfXH3dUBYuySgyixf6izJ5FKWQow19A8k+OZ/JLBCs7mXTXpo 1bee8SPLwBfwQ7WwTEzCciIyK3V1rKakbd29Hw3Qwg9x1DhjAMLQ+r5XarMZNbOZFt3x j+gx28108QsF18GBUAa6nz8AAcdvQJTtrK1FB/k6BumI6OyI371Mjaj7A5iOD6vmRUNY WzvEpZdOAxgJi8jvxgj4lfc7xGzhShgE5jT0OVa/cAZdjRAqk2dkVOK/C7YmOvpLWvAK onKbQ1YzSxL35Mw6J39EfNKNuIFXbMcBASicuXdhNj24d8mOOmrZ2SC7xV1IEHjL12Rr wyOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787137347; x=1787742147; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=vyKJFYkmHLmxJynjjYLpBWykIurLQKwlcGxv2Quzm+w=; b=nEDOV5z9pDXQVcng48nVfo0OLkPzr0jnnc2yvKCyl5a8HX2dA8D7YsqqAtlwLs/aZt pxeCRoKmt7oqXKQXzIF6fTDvD8znpYnyNgw9/JS/gqMJeg3BP+OSnwaoWl3/QA3Ym703 nBUToFEo/JCpBOGKfebWt5O6NzmL34iQ1cwhHSgBhPycSv2hAbxegywP/7B6EGm84gCP rjyLefjjIoB25OdIPe70YXJwKtvQ5QWUEnvJveJWvKzJO1kHST15NRaerO7PhbJcYkPD t6eGncsf8xl/lSkRmC7h0FKBLi+Yf6CFCNhH4JfXSnS8aupn1wVtu/HyqAXiShhYR6qi Mjsg== X-Gm-Message-State: AFuF++mjya0ArqoIZtZffL4v3S0nA2CJwi5yUU5Vhgrv1SOjQPvMUUgm AvO0eiavmIJF0eQZWLAKAXUPycBZh1FhpcqW7R6qOA/JaxD9C04USa0QiiVYtGvd5h0dSJrc+2X Z0nwjF20nQx2Fn2k83ySSFvnLiSBFp+Q1hou7Mmt1oBLbcnnaUUkOgw2+4KHCDdaL6p4Xmg== X-Gm-Gg: AR+sD130XpuDTCqVsG9/ooWGwyMVs07fDZtPdHZNJ43/IaIVIppa4RTLMtv0YmpF22G Nce5fAA/rHgYwF5PuEKlZh/mUrUCHnxlb8fcf7cfLn6RfqGZpgMjJNn1VhT9MWsG7GYajb+gPW7 RerC8wbwXs/sGPWD4Gz+YDFCp4VqfOS+AQ0qSwIAUvK6c7CVB+CU72s6DAGZWPiFkkJmiRWPpEd 9mk/eUUHucm99ba3m4WTN0GJ4qknkT3TF+DB4Gn09t4G58wcP1tVnxvjGw4Sh2F7N6hWBR38xPX IGNWo5IIeP3vW5WC+sKdvpwrv0jQB3vCU3cLXTDnVpA8xXaftNyVBUi7vpeg15QAGHYHDhvNPmA uos8KevDX6P4CutPPTZrco6PmFAetPMEJsySKsdlNT1It0OO7ve6ZNfcKQGh8gajtR3UbqGigXd ps0VL5yJtQNFIw3UKnGD24Vko= X-Received: by 2002:a17:90b:4e8f:b0:383:f52b:d616 with SMTP id 98e67ed59e1d1-395810844a8mr6468170a91.10.1787137346981; Wed, 19 Aug 2026 04:02:26 -0700 (PDT) X-Received: by 2002:a17:90b:4e8f:b0:383:f52b:d616 with SMTP id 98e67ed59e1d1-395810844a8mr6468024a91.10.1787137346411; Wed, 19 Aug 2026 04:02:26 -0700 (PDT) Received: from hu-aarasahu-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3957fb30541sm2223640a91.13.2026.08.19.04.02.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Aug 2026 04:02:25 -0700 (PDT) From: Aaradhana Sahu To: ath12k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, jjohnson@kernel.org, quic_kiranv@quicinc.com, baochen.qiang@oss.qualcomm.com, vasanthakumar.thiagarajan@oss.qualcomm.com, Aaradhana Sahu Subject: [PATCH ath-next v2 1/2] wifi: ath12k: Free allocated CE IRQs on request_irq() failure Date: Wed, 19 Aug 2026 16:32:14 +0530 Message-Id: <20260819110215.2485514-2-aaradhana.sahu@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819110215.2485514-1-aaradhana.sahu@oss.qualcomm.com> References: <20260819110215.2485514-1-aaradhana.sahu@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-GUID: _lHJ6qdRtQQMNXN-s7oClOwyQk-2exFC X-Authority-Analysis: v=2.4 cv=bth8wkai c=1 sm=1 tr=0 ts=6a858d43 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=1B4byUU5Bt7BwlcAXWAA:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: _lHJ6qdRtQQMNXN-s7oClOwyQk-2exFC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE5MDA4NSBTYWx0ZWRfXzQxQX28PV3e9 D/v4ve8egR4mwkuGbfbRk1p46ESMGbbyDtuYsLOokelfSL9r3syrD7zhmP4lxxwTtZG/4zDn+6K d9vqMhlOPCt0BrbGJe+XCfjOYcuCHcElJMyJxPixK7qNx0Vlcs1wZfyZeDT1Bt/ep9yX0m7o1tw ZPYSIesaiaXgr4Y6xFqqYNONhKod/N+VO7WVrzjXTj297M2+UzqZ+/YipZCW46u9Wy9k6DXGExs 3hon/q0rfVAhC5B4o4Bvj2SMGGo0u61T4LkMJQWT364xYE/ZNsha9lGQH/l94B6v51l35oWO4qs ORV7HOPv06QeUwEy0B3SCYES0oCPY2BFqhZiPkWyjVepfFw3iKJrxIjPXB1OMrYVTHYUQ2wOj/7 /iT4xerFH6HWFHJ0wAdVXXFb5sep1w3Qg36mN6N0BO/PyvqQu2vknhtHRw06XiJPmBHQEOcd4kf dwFqGnwugUgdlqtgnTA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE5MDA4NSBTYWx0ZWRfX42JKhtr1LVi/ gD+mmFlU3gbBC2OGrBKvnDjYOLXYHdLNz/kYMNQsmrUrpEf/xP6YaUtNfRcFJ1G3F7Kt/hyrlgN 0Z1uQEzE6/GOaK2bRVNdSwu+tH6ui5I= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-19_03,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 suspectscore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608190085 When CE IRQ configuration fails, the driver does not release all IRQs that were successfully requested before the failure. This can leak IRQ resources during probe failure. Free the previously requested CE IRQs before returning from the error path to ensure that partially initialized IRQ resources are properly cleaned up during probe failure. Factor out the CE IRQ cleanup into a helper to reuse the cleanup logic during both error handling and driver teardown. Also free CE IRQs when external IRQ configuration fails, before returning from the error path. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Aaradhana Sahu --- drivers/net/wireless/ath/ath12k/pci.c | 29 ++++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/pci.c b/drivers/net/wireless/ath/ath12k/pci.c index 6441927b5382..1525e6866cf4 100644 --- a/drivers/net/wireless/ath/ath12k/pci.c +++ b/drivers/net/wireless/ath/ath12k/pci.c @@ -313,6 +313,19 @@ static void ath12k_pci_sw_reset(struct ath12k_base *ab, bool power_on) ath12k_mhi_set_mhictrl_reset(ab); } +static void ath12k_pci_free_ce_irq(struct ath12k_base *ab, int num_ce) +{ + int i, irq_idx; + + for (i = 0; i < num_ce; i++) { + if (ath12k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + + irq_idx = ATH12K_PCI_IRQ_CE0_OFFSET + i; + free_irq(ab->irq_num[irq_idx], &ab->ce.ce_pipe[i]); + } +} + static void ath12k_pci_free_ext_irq(struct ath12k_base *ab) { int i, j; @@ -330,15 +343,7 @@ static void ath12k_pci_free_ext_irq(struct ath12k_base *ab) static void ath12k_pci_free_irq(struct ath12k_base *ab) { - int i, irq_idx; - - for (i = 0; i < ab->hw_params->ce_count; i++) { - if (ath12k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) - continue; - irq_idx = ATH12K_PCI_IRQ_CE0_OFFSET + i; - free_irq(ab->irq_num[irq_idx], &ab->ce.ce_pipe[i]); - } - + ath12k_pci_free_ce_irq(ab, ab->hw_params->ce_count); ath12k_pci_free_ext_irq(ab); } @@ -671,6 +676,8 @@ static int ath12k_pci_config_irq(struct ath12k_base *ab) if (ret) { ath12k_err(ab, "failed to request irq %d: %d\n", irq_idx, ret); + + ath12k_pci_free_ce_irq(ab, i); return ret; } @@ -681,8 +688,10 @@ static int ath12k_pci_config_irq(struct ath12k_base *ab) } ret = ath12k_pci_ext_irq_config(ab); - if (ret) + if (ret) { + ath12k_pci_free_ce_irq(ab, ab->hw_params->ce_count); return ret; + } return 0; } -- 2.34.1