From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 52F7E2DC798 for ; Mon, 13 Jul 2026 03:33:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783913599; cv=none; b=KHIb6axq8BUnVCysw1LwZLXyHd7dk1KsWP/zMDwKpeLfy+kK+tbZx67NZgvZIjG6Tob5a2CBVltFv7NlhuACAFYVQKhYlLM1nWwo0RStgMk5fvLNHSvvODcOJZU1RhkAnV4vMnwfDA1P3z4wmn5EkC16vQzlBg/FqHLRewmzDBk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783913599; c=relaxed/simple; bh=h6oOscAAguANCZDJxkWy8rFtuqFfu2tJ5MYQwBgxIJQ=; h=Message-ID:Date:MIME-Version:Subject:To:References:From: In-Reply-To:Content-Type; b=ZCPpFLzirCitB2nn/k678ceda2MbVENo1wNEHYjjLIAAm2nchHQ03AWw5JMVVpEPzqJQYO+6gonU4X1coAd+DIHW5lw2icxXlJigTAF6Oc56gK2sL1tyTMxZPsO3n94Wr8qrSwAyBK+LsT+KGdM8WP2Z8ubLP4n27nZM0rReOJY= 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=W7kzXzAX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=di+jOHqF; arc=none smtp.client-ip=205.220.180.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="W7kzXzAX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="di+jOHqF" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D3A6CH257751 for ; Mon, 13 Jul 2026 03:33:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= F8rJJgcg5hWvGHnmMlB/vJr/mhGZXs+mdRV5ZzRHmeU=; b=W7kzXzAXZluWWEvH JTbb6yvH1bVwlZFG+jGdqx7rRU0w9KsdWKvmG+eOClmVhveyEOEaT0svjCAR17MH R1EH8oqQNywTq3yyh31eHVSMoaK6oU3E6ABrSlfsSA75B3hMh0lQv66wC5Al43UK RXz2fUqPcv28zQCaPdljADNl7o9iBf/mEDjAQWU+kYOUulFX1nwuyVeZEGUBNzuO JKH/4fi5WIsIYO5AYxrY7GoSOIAhiGuT7FTKzhENzlc4l5jfRTZJSa8ckf+E4Qyh bP1YW7dHNWpuni+nYlmeWWtdZ28F+ZqF9puk/c0flttusWM51N65yoU0feAmkRg/ AgKE/Q== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbe9hm7dk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 03:33:16 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cc86a9ef97so58565215ad.3 for ; Sun, 12 Jul 2026 20:33:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783913596; x=1784518396; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to:content-type; bh=F8rJJgcg5hWvGHnmMlB/vJr/mhGZXs+mdRV5ZzRHmeU=; b=di+jOHqFVSWR8tqTDp6h+KDdfV47TwX/l/kqFhF0bTWsGXEkxMOjmqkdbw3w603H3J lFFxyFuc4s6qf1ZgzFDj6QkE35aHH4r/GkcQoyKv8j/CI/q829fOsfnUx1ev06eZ0txu hdhXcQogZMvCUMBiNRXrn1hpdJeRZcno96QV+0Wnf8gsMcaedXW1iBHnNA6MXp9s4rv9 N4wkY88TDpS0VnfP8LPtwbMjZdkkBbhuCnHp74JbGqjRt3A5yi6zUpR7MrUuY5p/IqK8 wiZ7sufAC4MKrpAf+AsDOnzoQoGkCxytXUpkTeuAyGm+sHj6DiB4CvZ55mzjR0AYWQeI saZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783913596; x=1784518396; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=F8rJJgcg5hWvGHnmMlB/vJr/mhGZXs+mdRV5ZzRHmeU=; b=U8IbAY8w1tmF5VuvWQMRVJhQ4qNMCLKg3CsC3TL/vbGy1Ql8REmBv/I56vZRxxK8dS PltlaEMFMTW6ZR349QEg0Ke/LFEdQz4XRQGOPn30kyIchDBMXNIPK0V47BGOMAq1nN9R dOE8Rndg4SgLVpiTNOog2dHXwUR3g4UAkRj8K1Q/kp1MPadeMlDluUvw1chuTCvxShhB Tn+y7ydPyv0dF8fwwDoiL3hvY/QcvbrqC9WfysHOPqujZ03SyCyr/MEXbmG+zQIq4Ptj akq2Zg9ZF1hkit9e62Ml4lTw3W2eL3DsyK3RDaMlLHIquXe7GDDM/PgyrpO9uRHlN9fK 0PBA== X-Forwarded-Encrypted: i=1; AHgh+Rpz7LViQ97eFQbl+6Qu29KTrCFWbAWPU9DsRAMVD3KLnXu9HqSPIluMEmBhXkpMkA44XKh18i5xg9vVBGI=@vger.kernel.org X-Gm-Message-State: AOJu0YxY1MEV4Y/N5e8mG+8d19TxoTCFFfA1OomvQxuEAgPpFe1t8sus AdEYaykZVZxOPAvZTPgndWj74TMTqy4vnxI1HWR7unFO9pcFdT6JQclDrcsDELAciSJY8iEKSrf L47Qp9To4C5+sTxxcGpHXeDX1Fjkku3epP/F+u7GxaOFZ6ISRj0zetbmnAoUzbfwEmFM= X-Gm-Gg: AfdE7cm/Qm++I2r2EPRxrZJOKyxkUNfLZ/XYw7Qm45vPM1RHQyAIYGO79xMfyf/TCaK rJbPNFr16LyhHPwBBqvCO4V0cC60xey7bcCo4Aj7B1Ueh3rctUKVleCLRtZhakZ0oRqJHaYXVCi QlxrIWYBFgPx+bbrBqM57t4BFgLJkzgoENkze9pW39kJdHSz02fJZdeK5ODs39rw5VLgTLMbArU 7BvBIsLe+23hX727Qo+kukcGJOPJwnZdPDYuS1DrQ07PNPCJwIrJjOVL4CBObsCl5uwyc95CJFk osn4jLhY0AGVrHHt0Xla41z94hrr8vS1oUGAVdPhEztU/KkKh1h/D/GhasLZg8pCPGMcpStVTXb ZHCXbnhDBiWwaCjmD73wBeBqL0Ci08dUAt8spyks5nGrEaUMWyduNoApBPlZ0aHr0lZ97JJ6s6s ZqLCEQWEs= X-Received: by 2002:a17:902:d2c8:b0:2ca:ecfa:1308 with SMTP id d9443c01a7336-2ce9ead153emr73387185ad.20.1783913595835; Sun, 12 Jul 2026 20:33:15 -0700 (PDT) X-Received: by 2002:a17:902:d2c8:b0:2ca:ecfa:1308 with SMTP id d9443c01a7336-2ce9ead153emr73386885ad.20.1783913595299; Sun, 12 Jul 2026 20:33:15 -0700 (PDT) Received: from [10.133.33.33] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ce7b3755a3sm49385165ad.80.2026.07.12.20.33.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Jul 2026 20:33:15 -0700 (PDT) Message-ID: Date: Mon, 13 Jul 2026 11:33:11 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] wifi: ath12k: release QMI handle on late init failures To: Guangshuo Li , Jeff Johnson , Vasanthakumar Thiagarajan , linux-wireless@vger.kernel.org, ath12k@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260708100924.744386-1-lgs201920130244@gmail.com> From: Baochen Qiang Content-Language: en-US In-Reply-To: <20260708100924.744386-1-lgs201920130244@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: ZWRcTB57XPi9u9Yuq2ZSt1nIuuNdkI8M X-Authority-Analysis: v=2.4 cv=SajHsPRu c=1 sm=1 tr=0 ts=6a545c7c cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=BBdAH38HxtlORMPQ_CcA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: ZWRcTB57XPi9u9Yuq2ZSt1nIuuNdkI8M X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDAzMSBTYWx0ZWRfX3Yy196WzIYfx iS4QfH8AImbJH/91cz5220uyi3OSj85niILN5LnLBPtXaxKY+HtWo9rFEbLKq04k0b5caUa0LjE K7rdNY+EKlV6QTn8YTHvRcZfrEv1Xl8CiS8VzkNFYRJK1THPAVU361whEXSGlmM4tXKJyKLHnjC RZIWBc096yJr6tUGD/oGvmdXqWNeqsVNPCMg4U/iOF1PMXkBkvwS6BseWvwNxIQV6rx40PeQVnn WLd5n2+5ogFhWF66ZK8hPT9aVpVkkvpGWY+BtF5XSgIcMzCsqt+Wl7/8dyjIuxx7P+vMFipeMvl SRkOcc8T38JcNLpV9PvhEZ10jenuL1Z6ecTcoS6msLN3bzMzuPGuKdVcM3XciFtrgMJ7b5nKZUB 4SkG8xCbEjBH/7TshN6taMIVcvLlMJ+VfTmV4qLuLK5SF25PqiPSuQtpQWuLQv6zpUQtZ11IQRK X/d8OwQDLNA3fDImUAA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDAzMSBTYWx0ZWRfX2I3o8rTttokj AQrW7W+MAUAW9cEw2jlC72/xcqr/HcGwDSCBxwF0mWEGHc8FwyPTSEWD29+UkzTHojEddzKKRJj 6MbK/FoI6G6xxAJXUrXBED572fyXwog= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_01,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 suspectscore=0 malwarescore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130031 On 7/8/2026 6:09 PM, Guangshuo Li wrote: > The change referenced by the Fixes tag makes hardware group creation > skip the device whose ath12k_core_soc_create() failed, and only destroys > devices that were created successfully before it. > > That avoids releasing an uninitialized QMI handle when qmi_handle_init() > fails, but it also means that ath12k_qmi_init_service() must clean up any > resources it has already acquired before returning an error. > > qmi_handle_init() can succeed before later initialization steps fail. If > the QMI event workqueue allocation fails, or qmi_add_lookup() fails, the > function returns an error without releasing the already initialized QMI > handle. Since the failed device is now skipped by the hardware group > rollback path, that handle is leaked. > > Release the QMI handle on those late failure paths and clear ab->qmi.ab > so the failed device is left in the same state as the qmi_handle_init() > failure path. > > Fixes: 088a099690e4 ("wifi: ath12k: fix error handling in creating hardware group") > Signed-off-by: Guangshuo Li > --- > drivers/net/wireless/ath/ath12k/qmi.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c > index fd762b5d7bb5..31e9fa9a62be 100644 > --- a/drivers/net/wireless/ath/ath12k/qmi.c > +++ b/drivers/net/wireless/ath/ath12k/qmi.c > @@ -4054,7 +4054,8 @@ int ath12k_qmi_init_service(struct ath12k_base *ab) > ab->qmi.event_wq = alloc_ordered_workqueue("ath12k_qmi_driver_event", 0); > if (!ab->qmi.event_wq) { > ath12k_err(ab, "failed to allocate workqueue\n"); > - return -EFAULT; > + ret = -EFAULT; > + goto err_release_qmi_handle; > } > > INIT_LIST_HEAD(&ab->qmi.event_list); > @@ -4067,9 +4068,15 @@ int ath12k_qmi_init_service(struct ath12k_base *ab) > if (ret < 0) { > ath12k_warn(ab, "failed to add qmi lookup\n"); > destroy_workqueue(ab->qmi.event_wq); > - return ret; > + goto err_release_qmi_handle; > } > > + return ret; > + > +err_release_qmi_handle: > + qmi_handle_release(&ab->qmi.handle); > + ab->qmi.ab = NULL; since ath12k_qmi_deinit_service() NULL-checks ab->qmi.ab to determine whether qmi service init succeeds, does it make more sense to move ab->qmi.ab initialization in ath12k_qmi_init_service() to the last step? This achieves symmetry and also avoids reset in the failure path. > + > return ret; > } >