Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp1255037iog; Tue, 14 Jun 2022 02:24:50 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u5C6oGxVtsZcfud1wUN8hxlQhlZ3Wc2/dlHkHMwGfVCV2PqmskrjVseA96cvggTJ3fkdN2 X-Received: by 2002:a17:90a:7606:b0:1e8:9e2a:d87c with SMTP id s6-20020a17090a760600b001e89e2ad87cmr3557415pjk.226.1655198689728; Tue, 14 Jun 2022 02:24:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655198689; cv=none; d=google.com; s=arc-20160816; b=Qyei+bGG9iXR/Zv1fy2wNU546PzvOfD/BvwO4We66xRZyGf+epufcxqP2nBfyae7lb y3/9+xnDCSqTUeo/UE/CVrxmvrIHu6p8bcC4nCzDLexmRl2r44hPQetdew6jYPwVUXf+ OZMyE7cugCEix17UNThK28xPBcNy3SooZ7Et/Rp2rXbO8U5lFJcS2dTDhlD+TZigjllk bzVTLHZDyOhVmLfpXixT+3964GVVCx0zAFcsvs7u9U/0DReYIzCRrmkVTUgcT0uUssv2 n7N/ImsyUeuPp0fPC5NvWETItXPn3X3yrDtKE3bcGUPdSqYP9qgM8AaB6u3m+511TfCe 8yWg== 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 :message-id:date:subject:cc:to:from; bh=uEjLk+EaSKeps166XYbh7eqsdj4Oab4Vr6OrXzPuyEk=; b=LrSWIXVHv5IPRmMus+4bDlrg2uF1XilJkw1ItO+hO/epctgaO0KFBpY7eFq8dGWywg ed6HJ6QsiXQPFR4iOThJsM17LLBeLWlKuyo/501OszQAzLxw348SbwFDCJAkTbuD9QcC Y8O3Tq8UV/Es6tOuJNMHj4nQh4o7V2pc6xR33ErsIqiQ8r9O52mNhqL6Fl8j5ns0FcEu LaQPs7Dt9fmMhjLqaMx9bvY1C7gi5k/GOGbnrSOBJBa4eV8wJwt/qYGfRI6SGy6hR4lj uuH9EZJbGh0i6jnpOgO7JQj9kEuYYLOCmAaeh5FUzyYRAgmDQa8YKTjlELHLzZr7I/Ey ojqA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oo15-20020a17090b1c8f00b001df891c9ab8si19273357pjb.47.2022.06.14.02.24.35; Tue, 14 Jun 2022 02:24:49 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233811AbiFNJO1 (ORCPT + 99 others); Tue, 14 Jun 2022 05:14:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239170AbiFNJOU (ORCPT ); Tue, 14 Jun 2022 05:14:20 -0400 Received: from hust.edu.cn (unknown [202.114.0.240]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15723419BC; Tue, 14 Jun 2022 02:14:18 -0700 (PDT) Received: from localhost.localdomain ([172.16.0.254]) (user=dzm91@hust.edu.cn mech=LOGIN bits=0) by mx1.hust.edu.cn with ESMTP id 25E9E98v028497-25E9E990028497 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 14 Jun 2022 17:14:13 +0800 From: Dongliang Mu To: Jens Axboe , Pavel Begunkov Cc: mudongliang , io-uring@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] fs: io_uring: remove NULL check before kfree Date: Tue, 14 Jun 2022 17:13:58 +0800 Message-Id: <20220614091359.124571-1-dzm91@hust.edu.cn> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-FEAS-AUTH-USER: dzm91@hust.edu.cn X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, 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: mudongliang kfree can handle NULL pointer as its argument. According to coccinelle isnullfree check, remove NULL check before kfree operation. Signed-off-by: mudongliang --- fs/io_uring.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index 3aab4182fd89..bec47eae2a9b 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -3159,8 +3159,7 @@ static void io_free_batch_list(struct io_ring_ctx *ctx, if ((req->flags & REQ_F_POLLED) && req->apoll) { struct async_poll *apoll = req->apoll; - if (apoll->double_poll) - kfree(apoll->double_poll); + kfree(apoll->double_poll); list_add(&apoll->poll.wait.entry, &ctx->apoll_cache); req->flags &= ~REQ_F_POLLED; @@ -4499,8 +4498,7 @@ static int io_read(struct io_kiocb *req, unsigned int issue_flags) kiocb_done(req, ret, issue_flags); out_free: /* it's faster to check here then delegate to kfree */ - if (iovec) - kfree(iovec); + kfree(iovec); return 0; } @@ -4602,8 +4600,7 @@ static int io_write(struct io_kiocb *req, unsigned int issue_flags) } out_free: /* it's reportedly faster than delegating the null check to kfree() */ - if (iovec) - kfree(iovec); + kfree(iovec); return ret; } @@ -6227,8 +6224,7 @@ static int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags) req_set_fail(req); } /* fast path, check for non-NULL to avoid function call */ - if (kmsg->free_iov) - kfree(kmsg->free_iov); + kfree(kmsg->free_iov); req->flags &= ~REQ_F_NEED_CLEANUP; if (ret >= 0) ret += sr->done_io; @@ -6481,8 +6477,7 @@ static int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags) } /* fast path, check for non-NULL to avoid function call */ - if (kmsg->free_iov) - kfree(kmsg->free_iov); + kfree(kmsg->free_iov); req->flags &= ~REQ_F_NEED_CLEANUP; if (ret >= 0) ret += sr->done_io; -- 2.35.1