From patchwork Tue Oct 25 09:12:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nam Cao X-Patchwork-Id: 10642 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp898778wru; Tue, 25 Oct 2022 02:26:05 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6BoPWsLxEzAGmzIdps/KoXs5EapxAxECbF5nZYBZfeHxTBMXqAl7KevlOD+PLHA83ZaAXs X-Received: by 2002:a05:6402:847:b0:453:943b:bf4 with SMTP id b7-20020a056402084700b00453943b0bf4mr33933848edz.301.1666689964947; Tue, 25 Oct 2022 02:26:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666689964; cv=none; d=google.com; s=arc-20160816; b=Pf6Br3M0AptjOVMpPzoRgSdRfRoQz0DbLPuW2Ut69se2RADDh56NX+ZhQVYnnhO7Ug jmzfDVgKyvYMDd6rtEppFF5M4NJJ0W7xtgNaJJSXnNTPriRhteY7378lDMpRy13nfqSb EwmuCt9JCxoYWyuX4lVP0WsfiTfYr7QhRAlSCkqKso38WrvrP4ccv78ySiHMObtM8szn 1xTNSgik60IMXDxJf8Lp6JgUWo7w+DZKKiGLdnC8wgVPvcgVltoTT9pPzc0zyX+AyZtW 9ZeztxOBN0vwagi2i64saRRBgEoHI1K54JBLPQz8pEtHv/oF2qBwkwRGHGWWkNBhVVPh mvMQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MZsnAEsVBgH1SY91CR++8td8qF2as+jKuxUWas/0RKs=; b=UqZi82ha0Ajgi34kPZvef21/fLnHUqUjcyceqIID2L1ZJyWBlZjC3gn9SNV/WwESj2 /yxB4x9gbVcF+t7m4cOeRTb5tFgHdyV7V8/ByIE53RtQ+aHJwOb4iZDW/j/RuOZm/TVO 2K5Orb7qP609Gpfm7Imkf3vJEhMq3buFSA+UP6RSdPE3D/FrjRpqwOhgZGvjPfp/12Nd CM5A7EqJxdleUrIVUdo7WuYQRjTkfd7bx/EQpIGsg95FDYcrpuM8I3j2SMzS81pWO1Ce JBog6c0d9TBJTg3jVMEX6u3VKyNeok39obYK+iFkh5DSfgV/iiA1VStbJgweLQI0wlgq DdEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Cl79DjzT; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nd11-20020a170907628b00b007a11c253eaasi580761ejc.809.2022.10.25.02.25.40; Tue, 25 Oct 2022 02:26:04 -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=@gmail.com header.s=20210112 header.b=Cl79DjzT; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232036AbiJYJTU (ORCPT + 99 others); Tue, 25 Oct 2022 05:19:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232403AbiJYJS7 (ORCPT ); Tue, 25 Oct 2022 05:18:59 -0400 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97B4B16C21F for ; Tue, 25 Oct 2022 02:12:44 -0700 (PDT) Received: by mail-ej1-x636.google.com with SMTP id n12so5484633eja.11 for ; Tue, 25 Oct 2022 02:12:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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; bh=MZsnAEsVBgH1SY91CR++8td8qF2as+jKuxUWas/0RKs=; b=Cl79DjzTRn03eNRK8pRGb+1+9qKEHx7kjVeCsRj6yDY9YL7wYpqdl8tf2x0/D2AHOe I8oqybJP0UMBnm4fr59i7sQWPu7Sl5IrZ5T8NGNhOWOtVuthXbl8dtBF/GgjGEDz6mu+ 1YaT0i36R7P1uF8QIwOUJ9xqfzdEKsIOzFXyTBM8QKYrpNJdJEfCPHgAnZMmrXz61uD8 mwU3MqcTGBk/dkXb7QVV1T3ZauAt3YABcVh5BO/k/ygdiudD0zgZj/nNP9N5Qkzwb8rC aRp4K23LHOUMnqqXTqj/mtpoHIRqyX961R184lb4TnXIHohD/qDGcFqboazfGfSMU2V0 5oaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MZsnAEsVBgH1SY91CR++8td8qF2as+jKuxUWas/0RKs=; b=WJ/Pl3iTfVZ4wXtYcT1M7FMDG0Cn65NzXgAQSMpk/bkTIUO3brKx9GSN6zNMVRiG6O LWrP9yyIu44BJ9YeXtoHJsuqavubWQYUi3IU6mcoMNvgFiX+vicECcDajPJA6Q46wNMF F52n3oNLoiPkSFob72TIO53ZLGoYsN1f4sWgyvbj7keyrBwSYmjlJsuNIw45054GTibI g58s2A94jq2OkGlYCW4ndK1pb1HLSf2jQLzO+iLMnuXr6y3mdKSAi6K3/+VziQAePJb1 bWSr6Q6QgEoEDiAvmuTcXkyy5rrlwpPoyHKOCRMBLKbeQhKSXtzNSW1IVw/s0clX1IyU 6Blg== X-Gm-Message-State: ACrzQf1tTf7ANYjsPpGLHLQXYZjb6xVobkqu+Mg+PWEP3U+ljH/Nt4DT 7cCvhKWy71ySHuu2h0o8SC8= X-Received: by 2002:a17:907:1c98:b0:78d:3b08:33ef with SMTP id nb24-20020a1709071c9800b0078d3b0833efmr32455822ejc.175.1666689163187; Tue, 25 Oct 2022 02:12:43 -0700 (PDT) Received: from localhost.localdomain (ip-217-105-46-178.ip.prioritytelecom.net. [217.105.46.178]) by smtp.gmail.com with ESMTPSA id bo12-20020a170906d04c00b00780f24b797dsm1061953ejb.108.2022.10.25.02.12.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 02:12:42 -0700 (PDT) From: Nam Cao To: Larry Finger , Florian Schilhabel , Greg Kroah-Hartman Cc: namcaov@gmail.com, Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/4] Revert "staging: r8712u: Tracking kmemleak false positives." Date: Tue, 25 Oct 2022 11:12:23 +0200 Message-Id: <26ce206b2c40c7db48c146aa6105789db9dfcc1a.1666688642.git.namcaov@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747651096759176226?= X-GMAIL-MSGID: =?utf-8?q?1747651096759176226?= This reverts commit 5d3da4a20a271e3cf5496a50cbb8118aa019374f. This commit annotated false positive for kmemleak. The reasoning is that the buffers are freed when the driver is unloaded. However, there is actually potential memory leak when probe fails. Signed-off-by: Nam Cao --- drivers/staging/rtl8712/rtl871x_recv.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index de9a568eaffa..4db7eed64a03 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -17,9 +17,7 @@ #define _RTL871X_RECV_C_ #include -#include #include -#include #include #include #include @@ -61,7 +59,6 @@ void _r8712_init_recv_priv(struct recv_priv *precvpriv, GFP_ATOMIC); if (!precvpriv->pallocated_frame_buf) return; - kmemleak_not_leak(precvpriv->pallocated_frame_buf); precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ - ((addr_t)(precvpriv->pallocated_frame_buf) & From patchwork Tue Oct 25 09:12:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nam Cao X-Patchwork-Id: 10644 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp899528wru; Tue, 25 Oct 2022 02:28:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5iWfUdMF1KRqIB01NXQCqufVvd/5Z9NTqeKKI4yd3YTiD7+2XMAZptC5SDEEX2vvFqKOVv X-Received: by 2002:a17:907:782:b0:740:7120:c6e7 with SMTP id xd2-20020a170907078200b007407120c6e7mr31328731ejb.313.1666690094061; Tue, 25 Oct 2022 02:28:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666690094; cv=none; d=google.com; s=arc-20160816; b=kigKHQ1sFQ7Mz34LEdhnsKKFGG+3MfJ41zPJlUU4L/QVFB9xmGHdLJSCiNtHhTEcAD 5huJFA2fWiZaoRIcLTQsNjguA6rACHAQVMGXfY5eSTdQOP7uL60Ru+zSGNx8I1fSPR/j +nf3VyAIBzLW8S3HyUHh1b2mWnLaJnRI3tmCFpDmYSSbDWMynt5copeImFjtm3FH+fvv xLOikh7mWQC3JiVFCD9BebeTZugUquPFbREYDD4jKXSSStTLzDQ3EBRMbUZ6iK7CUMdZ 58+PQUm1Pht5X3n9GEvE9U+GESW7gksDjoCYzPKgJfA46qvuJodJgeMOhaoTGjmvv+Up Zxiw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1nnL9Vx35UQpnPWPx9ucZ8Qb9hN/sl4ozm2xfwelthM=; b=EbBGU/C4QkOxla5GeihDGVbqQizZ4uis1ZmRPjabbo6Plnr4Cre/PnoHPmaqZ7U7p2 8LA5uyjU3aqwg2hTHf1ljsCIRToFk2OHWGM0xYmwIbdnPQ5O02O1dBEmI30KCamq/Ld3 ANEOeZ992FOtvznEgLoqVasZG9KET+aJZrBH3/CM0wTTH9aU4faRRwne0b3WBkC2ETws LUxR8c2tDeNi+QqxKTyl2lWGq1MdI44ek+DnwL/f/sIFrATykjZ/+xCpDx2aDJfZxS+9 r45vl6Oq87Sgy479Gt3WBymylbMDqS6NN12WGgvuvKA/AewfoCha4XDnagWjaSry1eAz Jclg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kx5QZu0q; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m22-20020a056402051600b004599fc7f310si2087393edv.140.2022.10.25.02.27.49; Tue, 25 Oct 2022 02:28:14 -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=@gmail.com header.s=20210112 header.b=kx5QZu0q; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232190AbiJYJTa (ORCPT + 99 others); Tue, 25 Oct 2022 05:19:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232411AbiJYJS7 (ORCPT ); Tue, 25 Oct 2022 05:18:59 -0400 Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5405C16C222 for ; Tue, 25 Oct 2022 02:12:45 -0700 (PDT) Received: by mail-ej1-x633.google.com with SMTP id y14so10821220ejd.9 for ; Tue, 25 Oct 2022 02:12:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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; bh=1nnL9Vx35UQpnPWPx9ucZ8Qb9hN/sl4ozm2xfwelthM=; b=kx5QZu0qHt8rymUNVxiYWrTO2HQpqajmO5wdHAtw9jtTCP+MNWtxFzsJPomSCyLajs OSjT1WpjxUsEi71bg1q6Q+WA9IilwxVz8Ej7LY3cENBoKRJ78Vp1rMgcr/vTGok7LZsN hO1XXOvELxKQbA8hCFzJfZO6mm6YPS7FI23vRmySfYx0mRn+loTEWOUrOYQ04Ul8Xe2P 3ihwcV7+EPmWvs8xG98LahytznKScHIObpmWyc152gQvwX6aAKi4lkVGgM1hAWtmMkH4 lgmnfVQp9Q/hga43o3bs4DyLyTISq8b839SaiYWAbMU3Iq4KjzH4+06/mdZRVEEuxrLI NTLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1nnL9Vx35UQpnPWPx9ucZ8Qb9hN/sl4ozm2xfwelthM=; b=1H9AjFPmSoIBslyGMBsZOMCOd9SBo0NKStZwNleMtRiHThDJmkuJi1K8UsPcTyMZIT 80vF5TJ5e7+FpqLiF3SaOVhDUwPfvqA8J/DU2umTZoe8BM6oeG/yvaWnLFnmdME/1Lts nXj2ohVDwYg7kbk4PbnaVJaptznu4qiLMXMmHAfZlbMe8Bua9vK8TLTB6jHghHdDxFsV SBSjr0cmC0CQSbIWHFCT0fxqtYSM9NBFhI8I2k8LJs8YEDmK8YWhdd6q/Ln9f4WIG4vY A7QkXYjDJKYvpScq2k1GCIwcg2WJ3TvX/WyDMI00b4Kfx6mwc5y+EDolSwKBw0W6hcJ9 6MwA== X-Gm-Message-State: ACrzQf1jxKsJDsZbNA5rNSnIRcGVF0A2JyEitAI3ccf30ot4Upt0Mko4 umMXxoMJ72466NRmX/rO04w= X-Received: by 2002:a17:906:99c2:b0:7a8:c167:1d93 with SMTP id s2-20020a17090699c200b007a8c1671d93mr7351570ejn.490.1666689163736; Tue, 25 Oct 2022 02:12:43 -0700 (PDT) Received: from localhost.localdomain (ip-217-105-46-178.ip.prioritytelecom.net. [217.105.46.178]) by smtp.gmail.com with ESMTPSA id bo12-20020a170906d04c00b00780f24b797dsm1061953ejb.108.2022.10.25.02.12.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 02:12:43 -0700 (PDT) From: Nam Cao To: Larry Finger , Florian Schilhabel , Greg Kroah-Hartman Cc: namcaov@gmail.com, Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/4] staging: rtl8712: check for alloc fail in _r8712_init_recv_priv() Date: Tue, 25 Oct 2022 11:12:24 +0200 Message-Id: <506ac35a667e511db568b06b86834fd0ceeba453.1666688642.git.namcaov@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747651232052293259?= X-GMAIL-MSGID: =?utf-8?q?1747651232052293259?= The function _r8712_init_recv_priv() and also r8712_init_recv_priv() just returns silently if they fail to allocate memory. Change their return type to int and add necessary checks and handling if they return -ENOMEM Signed-off-by: Nam Cao --- drivers/staging/rtl8712/os_intfs.c | 4 +++- drivers/staging/rtl8712/recv_osdep.h | 8 ++++---- drivers/staging/rtl8712/rtl8712_recv.c | 7 ++++--- drivers/staging/rtl8712/rtl871x_recv.c | 13 +++++++++---- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 003e97205124..12adb470d216 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -309,7 +309,9 @@ int r8712_init_drv_sw(struct _adapter *padapter) if (ret) return ret; _r8712_init_xmit_priv(&padapter->xmitpriv, padapter); - _r8712_init_recv_priv(&padapter->recvpriv, padapter); + ret = _r8712_init_recv_priv(&padapter->recvpriv, padapter); + if (ret) + return ret; memset((unsigned char *)&padapter->securitypriv, 0, sizeof(struct security_priv)); timer_setup(&padapter->securitypriv.tkip_timer, diff --git a/drivers/staging/rtl8712/recv_osdep.h b/drivers/staging/rtl8712/recv_osdep.h index d8c1fa74f544..fbe3f2868506 100644 --- a/drivers/staging/rtl8712/recv_osdep.h +++ b/drivers/staging/rtl8712/recv_osdep.h @@ -18,15 +18,15 @@ #include "drv_types.h" #include -void _r8712_init_recv_priv(struct recv_priv *precvpriv, - struct _adapter *padapter); +int _r8712_init_recv_priv(struct recv_priv *precvpriv, + struct _adapter *padapter); void _r8712_free_recv_priv(struct recv_priv *precvpriv); void r8712_recv_entry(union recv_frame *precv_frame); void r8712_recv_indicatepkt(struct _adapter *adapter, union recv_frame *precv_frame); void r8712_handle_tkip_mic_err(struct _adapter *padapter, u8 bgroup); -void r8712_init_recv_priv(struct recv_priv *precvpriv, - struct _adapter *padapter); +int r8712_init_recv_priv(struct recv_priv *precvpriv, + struct _adapter *padapter); void r8712_free_recv_priv(struct recv_priv *precvpriv); void r8712_os_recv_resource_alloc(struct _adapter *padapter, union recv_frame *precvframe); diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 7f1fdd058551..7da014ab0723 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -30,8 +30,8 @@ static void recv_tasklet(struct tasklet_struct *t); -void r8712_init_recv_priv(struct recv_priv *precvpriv, - struct _adapter *padapter) +int r8712_init_recv_priv(struct recv_priv *precvpriv, + struct _adapter *padapter) { int i; struct recv_buf *precvbuf; @@ -44,7 +44,7 @@ void r8712_init_recv_priv(struct recv_priv *precvpriv, precvpriv->pallocated_recv_buf = kzalloc(NR_RECVBUFF * sizeof(struct recv_buf) + 4, GFP_ATOMIC); if (!precvpriv->pallocated_recv_buf) - return; + return -ENOMEM; precvpriv->precv_buf = precvpriv->pallocated_recv_buf + 4 - ((addr_t)(precvpriv->pallocated_recv_buf) & 3); precvbuf = (struct recv_buf *)precvpriv->precv_buf; @@ -75,6 +75,7 @@ void r8712_init_recv_priv(struct recv_priv *precvpriv, } pskb = NULL; } + return 0; } void r8712_free_recv_priv(struct recv_priv *precvpriv) diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index 4db7eed64a03..8a3566214af7 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -42,9 +42,10 @@ void _r8712_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv) _init_queue(&psta_recvpriv->defrag_q); } -void _r8712_init_recv_priv(struct recv_priv *precvpriv, - struct _adapter *padapter) +int _r8712_init_recv_priv(struct recv_priv *precvpriv, + struct _adapter *padapter) { + int ret; sint i; union recv_frame *precvframe; @@ -58,7 +59,7 @@ void _r8712_init_recv_priv(struct recv_priv *precvpriv, sizeof(union recv_frame) + RXFRAME_ALIGN_SZ, GFP_ATOMIC); if (!precvpriv->pallocated_frame_buf) - return; + return -ENOMEM; precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ - ((addr_t)(precvpriv->pallocated_frame_buf) & @@ -73,7 +74,11 @@ void _r8712_init_recv_priv(struct recv_priv *precvpriv, precvframe++; } precvpriv->rx_pending_cnt = 1; - r8712_init_recv_priv(precvpriv, padapter); + ret = r8712_init_recv_priv(precvpriv, padapter); + if (ret) + kfree(precvpriv->pallocated_frame_buf); + + return ret; } void _r8712_free_recv_priv(struct recv_priv *precvpriv) From patchwork Tue Oct 25 09:12:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nam Cao X-Patchwork-Id: 10645 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp899579wru; Tue, 25 Oct 2022 02:28:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7NpEWFTPtnEsT0KHQBwxnvjecMH9qBUOqSFBI2g42CYzwT9K4OB8l2PpILLyg9ewhe+ZVN X-Received: by 2002:a17:907:6d8c:b0:78d:b65a:ab12 with SMTP id sb12-20020a1709076d8c00b0078db65aab12mr29815689ejc.573.1666690103512; Tue, 25 Oct 2022 02:28:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666690103; cv=none; d=google.com; s=arc-20160816; b=Yo50O92Sr7NcwoWTftNewV+U6PM6IrngH+PXRBuxxvpYzaWEs1nBN8Mk0ENVWkJPnA qDYjB6RSYcf1AVJ40YdoJFV8uTFNU6Y09qKhP/oz0rtYDinJ11zQOsj+lOmtU9E/78qQ Asy6YMqxoc5iR5Gim9Ji/to1+2KCdEgDIZ1cj8Bj1KiHtkE6u16g6LkBs3si1LiBmPFc T3fhQ4gvV4o63F+MI3GvEA7jKzEzhGIzKtUuaQJq5sJO5FRgAzDcntLFVe9KEEjPJqNx aD/YFOKPvZamTrkLNoSqm9zau/AI18KQdD63lc229BaAfdDUaqvmfSgtsFf9tGmyU/w0 ooJw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=eiyKXU5FxcBo4aQqXip+DivTGxVo/DuU5b7lG8hm9nY=; b=ANurst+Wus97blj6ZSqZBOwPWAAvrryqy1iNnEaUI2oDzJ+VXJ2ROAoPH6xgVCdgh8 +Z9VzgMRJT3wydoYEqYUXN4t2iSLiQrzM4tEjlU+ZtJVyjaWX2ltiHRORpSrsoy3Q/ld khNvRvbDiyfKDZ1D9z/7wM0R7CzIgiDjFe9IEOCUbPn81kdIlPfUr3Q1ZyRx41bQ0My+ Q3T+umIMk66uwbq1uiPBsgLJ6NDzZRX/uCsMD3GEJr2ZVq8s/HvXjmFrd9rlpyf5mO4Y V7CFCg5amVgbYf5MbRkCo19SKLqJxzQHD55NrnjoXj0P9YeOttmVHzFqrHecJmWB7US8 SB6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=N+hlx+k2; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ay7-20020a056402202700b004534c6c4bd7si1974022edb.433.2022.10.25.02.27.59; Tue, 25 Oct 2022 02:28:23 -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=@gmail.com header.s=20210112 header.b=N+hlx+k2; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232356AbiJYJTe (ORCPT + 99 others); Tue, 25 Oct 2022 05:19:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232413AbiJYJS7 (ORCPT ); Tue, 25 Oct 2022 05:18:59 -0400 Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C681216C223 for ; Tue, 25 Oct 2022 02:12:45 -0700 (PDT) Received: by mail-ej1-x62e.google.com with SMTP id ud5so7305204ejc.4 for ; Tue, 25 Oct 2022 02:12:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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; bh=eiyKXU5FxcBo4aQqXip+DivTGxVo/DuU5b7lG8hm9nY=; b=N+hlx+k2SXKWFiaDXDxEXL3461ZtjohMXc0sKc9tjykAPxjCG6LqEohmxBA1TsSLM6 upsrJeB37h9M+z3m80c1fQ/x6+x1ZnOpq9/RZCvb6iU8FAvytsqVm3sz7QKpibjnv5/B MG0ViYyYuQO2Leb6BKBFnq4V6SNT3dlVpdd6pLPwg/FLQ/8eppJkxIU7QxO4dK7d5dF4 pKaemWVBLB5hYMym1kB/U7VQhi7CekPVu77u9QwXUSWixAxDQtHPf6o0H9BPiuw2FfRD hkQIX8mU5EcJUh4Yjl+F8VnDtb5Mrj+SJcg0lTPqrVv416yhS1jh2ptDKfp1Q3Uw2V7d 449A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eiyKXU5FxcBo4aQqXip+DivTGxVo/DuU5b7lG8hm9nY=; b=McfHmKoXburTMroNQVQ2FS+NoREyk8QOh33/olv51ODRuLajQTVwe5810WERv15pVN N19a9Y4RMd6zrSXW4bIchdO7ZPeqFnS4Y9PgBmrjLLvgpnFy3oNw4lr91prDzK0cgnOn PFXYSJtLVgUMYNnoRmUV3l5xe1dvggyYHNvjx+ABJFGxqrZOj7FEVx8hL7r479vrIGma ZwpfhuCLlO9BjS/Hl/FiEkps/bI6JINTY2qrPjMCZ+2+VFwp41aq6i7Htaxr11ydDcmV gN/w6hSDxmSxE6c8xjA5mNHgvsOgrddVK8xVKW7Ydp29LbpQu7yQfsbvE6JawTDAvwhN n6Bw== X-Gm-Message-State: ACrzQf1vfiEEuWuCBHats3bpqRJUvDNrupgyKqX484TfyOYbtl54GCEG d+hGPs9tMaRK5R4O1a8csMg= X-Received: by 2002:a17:907:6eac:b0:78d:ce9c:3761 with SMTP id sh44-20020a1709076eac00b0078dce9c3761mr31116005ejc.738.1666689164330; Tue, 25 Oct 2022 02:12:44 -0700 (PDT) Received: from localhost.localdomain (ip-217-105-46-178.ip.prioritytelecom.net. [217.105.46.178]) by smtp.gmail.com with ESMTPSA id bo12-20020a170906d04c00b00780f24b797dsm1061953ejb.108.2022.10.25.02.12.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 02:12:44 -0700 (PDT) From: Nam Cao To: Larry Finger , Florian Schilhabel , Greg Kroah-Hartman Cc: namcaov@gmail.com, Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/4] staging: rtl8712: check for return value of _r8712_init_xmit_priv() Date: Tue, 25 Oct 2022 11:12:25 +0200 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747651242264439281?= X-GMAIL-MSGID: =?utf-8?q?1747651242264439281?= The return value of _r8712_init_xmit_priv() is never checked and the driver always continue execution as if all is well. This will cause problems if, for example, buffers cannot be allocated and the driver continue and use those buffers. Check for return value of _r8712_init_xmit_priv() and return error (if any) during probing. Signed-off-by: Nam Cao --- drivers/staging/rtl8712/os_intfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 12adb470d216..205b7d66a40a 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -308,7 +308,9 @@ int r8712_init_drv_sw(struct _adapter *padapter) ret = r8712_init_mlme_priv(padapter); if (ret) return ret; - _r8712_init_xmit_priv(&padapter->xmitpriv, padapter); + ret = _r8712_init_xmit_priv(&padapter->xmitpriv, padapter); + if (ret) + return ret; ret = _r8712_init_recv_priv(&padapter->recvpriv, padapter); if (ret) return ret; From patchwork Tue Oct 25 09:12:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nam Cao X-Patchwork-Id: 10646 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp899704wru; Tue, 25 Oct 2022 02:28:45 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6vg7vsYVT8D1iTAJ5zJHzplA+c97rcDJy2qH9AZe2Wpc5jgDE0qwQNuEtHOiwQzvnMgRWE X-Received: by 2002:a17:906:ee8e:b0:730:4a24:f311 with SMTP id wt14-20020a170906ee8e00b007304a24f311mr32317219ejb.420.1666690114933; Tue, 25 Oct 2022 02:28:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666690114; cv=none; d=google.com; s=arc-20160816; b=egTinvQbEnWir8CC7RmRNURjrmXr8mIq0FUR9/YWN1dC3adP8GyyqLWdpJPr/0CXkL YPEDpeksWS6yt5WOGdILZP6U2gvq1K+ORIh9z8d5a70LXC2Z4WIENBLrJNrDGQ+/G+GS 9q4rSyZDScmeUAkCVeh6kRI659qCvTOP6rF7Iev8Yvf0UNinTTaWArXIouQ70DZjEROu CQ/Ry0UNLSarHwBKcQIz2BOp8sU2tnF7jbCJKYRHk59h0P2TKruDxHpmo23sOHfgcc6r nlf/y3q9ZVQiXmIKWeChIYOX0KFKaXz1s8W2FtdUxQQWpswBgbDAnC4Wfj03m+4AHZRX JrWQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6Z+J20nkyvf9zvzoex976NXQ4RyfsmUwd3Fi5lYS2+g=; b=QG9nSjnOhzOALbEZIzVh+0Y1Ts3RBrdZ4WslvLRFt4r+8U+oCwayua9D/hqRlX+99G AQ8ekypAaSk9jvAv4RaaeWG/yE0bWUwjqwsd5wZoIGEdXd7ZxXNgURNzAdBPdgO6am/e x1Axqzc3WOygsogXe73mGjCp8UrXr3hz9tHNiHzgDLGQCRJ0Kyco3y/uQdWcfNbrmdf6 7MwTQAO7TX1IaSW0HarGue4Py/G4jFQG8PHmLLsn9MfVN0I6x4ejwdXCl8MXaogXHLYo tNeBdkq19h3RslDwhKD9n+2+5HKPUtPedLwbymAekiGzKoJNtLxytOjYPQNuqdT9agRP zLjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=JuwhEj+F; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id eb6-20020a0564020d0600b0045db2dcff0esi2914850edb.594.2022.10.25.02.28.10; Tue, 25 Oct 2022 02:28:34 -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=@gmail.com header.s=20210112 header.b=JuwhEj+F; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232370AbiJYJTj (ORCPT + 99 others); Tue, 25 Oct 2022 05:19:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232418AbiJYJS7 (ORCPT ); Tue, 25 Oct 2022 05:18:59 -0400 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 529B316C22C for ; Tue, 25 Oct 2022 02:12:46 -0700 (PDT) Received: by mail-ej1-x62d.google.com with SMTP id b2so10860283eja.6 for ; Tue, 25 Oct 2022 02:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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; bh=6Z+J20nkyvf9zvzoex976NXQ4RyfsmUwd3Fi5lYS2+g=; b=JuwhEj+FIeI8r7Auq46FaNuvbKKNxmoG+Oo8YSiLsSh52Rqb0ken7YJuyO39BMy3gc HVioh9tgBUfywHgGRiaa8tu3pDanG+Y8UIDw1CQCE1BItWiSG3rLShOBZAZU+QICses7 VlEQYvHYwuc9/s4ROpNuPTqPKYTTYm4dmb0wPfBajqeLwkvssLZwkLC4nqGVazVDHdlp lP1D4Wzmzeo3izM57PBYYmbI6R2dMdnrDlECR630TcuvjqSK6vA5NugwUi8gRLHY/YvN EXOOdNYmfM60qSiAzsmNJGA8eWlKCFjgI4cbyaO427EkK9NKud7d6fuvW9GoL+1HxC/j TCDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6Z+J20nkyvf9zvzoex976NXQ4RyfsmUwd3Fi5lYS2+g=; b=xHyFHX+BIheruIv1A45/Miru0QCsj2mklOyqSHe11Z6L7RXdQaKSnx+0c6NtWb0RAr VyUSY/GfO43r5ShK62qripz4GepVrHzMs3nY7S6yCCLlwAI1NrAVKRcUmDo67ije5cEH SQS7/pL+SflEbzPJtfdDSzZs1hBdVGa8deEnWxn8xazU822YTWm5eRQYsJbJVgzddYRM xzLJLC1VXGcAkANfHQMFhYky6GZBIUmad836jPcRSvjV/RDDN4I8JGyjSnCdvRfsyrzh EUqnwE7mqtghs5B+ArNRKBlsM1vk90Vj8kYUcjp4DhyNXcDTPnykKrV72dJS4gNI8yWm 5hpw== X-Gm-Message-State: ACrzQf1VqDkpj6cWQ9HIiCWAwvkvvYPSiLgUsSsyQaI7auwYuyRHwtd5 MB4bMbZ4yCgbualQiQ83Lps= X-Received: by 2002:a17:907:2c4a:b0:78d:ee99:a06b with SMTP id hf10-20020a1709072c4a00b0078dee99a06bmr30382254ejc.578.1666689164975; Tue, 25 Oct 2022 02:12:44 -0700 (PDT) Received: from localhost.localdomain (ip-217-105-46-178.ip.prioritytelecom.net. [217.105.46.178]) by smtp.gmail.com with ESMTPSA id bo12-20020a170906d04c00b00780f24b797dsm1061953ejb.108.2022.10.25.02.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 02:12:44 -0700 (PDT) From: Nam Cao To: Larry Finger , Florian Schilhabel , Greg Kroah-Hartman Cc: namcaov@gmail.com, Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/4] staging: rtl8712: fix potential memory leak Date: Tue, 25 Oct 2022 11:12:26 +0200 Message-Id: <0a3414b12031f6cdcba81a8725e91eb9567ff34f.1666688642.git.namcaov@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747651254045483900?= X-GMAIL-MSGID: =?utf-8?q?1747651254045483900?= In r8712_init_drv_sw(), whenever any function call returns error, it is returned immediately without properly cleaning up the other successfully executed functions. This can cause memory leak. Instead of return immediately, free all the allocated buffers first. Signed-off-by: Nam Cao --- drivers/staging/rtl8712/os_intfs.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 205b7d66a40a..a2f3645be0cc 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -304,29 +304,42 @@ int r8712_init_drv_sw(struct _adapter *padapter) padapter->cmdpriv.padapter = padapter; ret = r8712_init_evt_priv(&padapter->evtpriv); if (ret) - return ret; + goto free_cmd; ret = r8712_init_mlme_priv(padapter); if (ret) - return ret; + goto free_evt; ret = _r8712_init_xmit_priv(&padapter->xmitpriv, padapter); if (ret) - return ret; + goto free_mlme; ret = _r8712_init_recv_priv(&padapter->recvpriv, padapter); if (ret) - return ret; + goto free_xmit; memset((unsigned char *)&padapter->securitypriv, 0, sizeof(struct security_priv)); timer_setup(&padapter->securitypriv.tkip_timer, r8712_use_tkipkey_handler, 0); ret = _r8712_init_sta_priv(&padapter->stapriv); if (ret) - return ret; + goto free_recv; padapter->stapriv.padapter = padapter; r8712_init_bcmc_stainfo(padapter); r8712_init_pwrctrl_priv(padapter); mp871xinit(padapter); init_default_value(padapter); r8712_InitSwLeds(padapter); + + return 0; + +free_recv: + _r8712_free_recv_priv(&padapter->recvpriv); +free_xmit: + _free_xmit_priv(&padapter->xmitpriv); +free_mlme: + r8712_free_mlme_priv(&padapter->mlmepriv); +free_evt: + r8712_free_evt_priv(&padapter->evtpriv); +free_cmd: + r8712_free_cmd_priv(&padapter->cmdpriv); return ret; }