From nobody Sun Jun 28 00:12:18 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CE4FC433F5 for ; Thu, 17 Feb 2022 15:31:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242532AbiBQPb4 (ORCPT ); Thu, 17 Feb 2022 10:31:56 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:40700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242528AbiBQPby (ORCPT ); Thu, 17 Feb 2022 10:31:54 -0500 Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0E83DEF7 for ; Thu, 17 Feb 2022 07:31:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1645111891; bh=FihfJldaJ6r2xVuFS8/jwCVqViJT/Juw+yF0fIUwbtQ=; h=From:To:Cc:Subject:Date; b=EEMDUMO6rPmbsPDc77JEeADLmFBW80Cke9UFh0rjyBm+jucSVBvpOSoD3lSsCbvk9 OyOgXfqHy5jDiXfnd2e12B+mp9IOcxxb5YcLlc+O31wafa4UCdhmRXoaMIpzRzXgzj M2z5QPTYtNX91rEk9NiG+xVM5XpjBgxrrGP1D4gk= Received: from localhost.localdomain ([218.197.153.188]) by newxmesmtplogicsvrszc10.qq.com (NewEsmtp) with SMTP id 78DB94C8; Thu, 17 Feb 2022 23:30:13 +0800 X-QQ-mid: xmsmtpt1645111813t42y1perq Message-ID: X-QQ-XMAILINFO: NOIkHYnr7VzdBovMCoZOh3CgEwz50dkDvRc6BZyxzTCU3rAJPriHHKsqJamEwf VdPGYFBsRcZoPeYLk8uLvbaJZ0wFt5irk6lV4nYWFpFSbHk9wK8V6LkC5Ml65QlyybE6k8KEwBXD XJBsdH/FZglrztGCURRy6n8/R+JiaI0SpO2SZPLkyrB+AnwMfAcA1F7avwZnbosFvCgv6b7jMFN/ nLyQW600y5Aukd1l1k9+c4NGfCIJGIj9/tM/Ytt7z0YFl8QEVzXs5gj/TI7uF3s211UQfKtAUVPu 0cxVc4D9L8gUKC7Fnvcg7L0JUyDiPpRWb2Hzq2NHB3Yn8t2GKGx+/qLSzmNKtPqES4FJoto9RtPu SRsCJ+JVczQ/b3dXnGyGPNPXCrCsn42KmdpnB8A3cHQVE+in/vTePGMtK3LDTXJmfkkk4/vGdSQD jcOrmhI6vB8w8peswhimI4T2lhmthG6NbgtT0pxoS6uVSyCRjMSaG6+eyIS75lBn/ogdEAAYn7g+ Fe3AgeKI6RJ8SHlbcVaVDPng2/Z5UH6MlRbPyhMprsWA3CxqNbDNY8AxlxxrRaWfciwIB0PBlsnW rqFP4mJ9/0oWy3NWYJupuLRy9GaUTT3lnmQ2pBobQmJDBW0zA2ttD3Vs56KCLfjEBa5ZgiafoJz/ sp9XjjgmPXmMHAYEyigWV/aEn2Rpn+gdINQgQ4klxaInAqMAdU5fhcr7cAKaIS704DNhlNR3Zlmu WSdEAjnuDt2XPtN6qs4vO+ruimDrYga49LD9oldbxJqML0IF0QbMr+GvJJLfoY/lujK/wmZMLebz 0yT0XxAbJ0Bqgi5R6RdD21BjDBMLCMZRTzmiUg3YdmM8Gy3dxHgLkbRu1pcrJR+O3w3EK0EIOPjh T4hMlluvs13xUgt6UJczUpukrEUJnogqGmIAbd478pzui1o7Xg+sEiFTPcRJM0cz75Ev2sFj6W From: xkernel.wang@foxmail.com To: jerome.pouiller@silabs.com, gregkh@linuxfoundation.org Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Xiaoke Wang Subject: [PATCH] staging: wfx: fix the error handling in wfx_init_common() Date: Thu, 17 Feb 2022 23:29:06 +0800 X-OQ-MSGID: <20220217152906.1029-1-xkernel.wang@foxmail.com> X-Mailer: git-send-email 2.33.0.windows.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Xiaoke Wang All the error handlers of wfx_init_common() return without calling ieee80211_free_hw(hw), which may result in memory leak. So I add one err label to unify the error handlers. Suggested-by: J=C3=A9r=C3=B4me Pouiller Signed-off-by: Xiaoke Wang --- drivers/staging/wfx/main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index 4b9fdf9..f83df9f 100644 --- a/drivers/staging/wfx/main.c +++ b/drivers/staging/wfx/main.c @@ -309,7 +309,8 @@ struct wfx_dev *wfx_init_common(struct device *dev, wdev->pdata.gpio_wakeup =3D devm_gpiod_get_optional(dev, "wakeup", GPIOD_OUT_LOW); if (IS_ERR(wdev->pdata.gpio_wakeup)) - return NULL; + goto err; + if (wdev->pdata.gpio_wakeup) gpiod_set_consumer_name(wdev->pdata.gpio_wakeup, "wfx wakeup"); =20 @@ -325,9 +326,13 @@ struct wfx_dev *wfx_init_common(struct device *dev, wdev->force_ps_timeout =3D -1; =20 if (devm_add_action_or_reset(dev, wfx_free_common, wdev)) - return NULL; + goto err; =20 return wdev; + +err: + ieee80211_free_hw(hw); + return NULL; } =20 int wfx_probe(struct wfx_dev *wdev) --=20