Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1740580imm; Sat, 4 Aug 2018 09:43:33 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeN4VjlT26V1GAU2igc6AaHVOBO7BwGb/egGoyyhnNGE1EFz0p5k389fbfP1nZIYfQjDfcg X-Received: by 2002:a62:9c17:: with SMTP id f23-v6mr9761443pfe.209.1533401013425; Sat, 04 Aug 2018 09:43:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533401013; cv=none; d=google.com; s=arc-20160816; b=Pv+dh/KvX7RUKPTqENGs0Rhv/3LhqbDTQ6yo1I5gwfD7D0wDqhfFvewYxS6GCZpgIs 9/n6gKYUyNCXTe9/UM3urFm6nPpJel43Rqfrq5/X3/FcBRO6LtKi1sPS0z74BqK3l0Oe JFp4z+d3rk8B2Wro689x3tX1tE2M15gHiuxJaGCMqpWFEZTLKpsuOu4ew+mSi10/qybd 7jOLLdUMOpWVxELj1ybxYGONLw7nTJ+7SMC6vniu7s2VFZCGIIF/2Li9uMXrzY1dBEIj onyz7w+hUEYO2Ky8XD8EbuktZU4g4XKuBgQfWK4VLsrRlK2qoeKOFx8pKIFQAlv4w3Yv Y+sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=BCInAmNgqDWY0Il/fI8RhB2iEMW4efNJgSGvONSbT54=; b=gavKnFYtMY200hNP+i2RgnCc7N3lwPNnenLIB/SaIj6OGJbSzGXdagb7MD0+t2WHvy W5mlr+w5lI+5mmJT6+QGhll7zQ+GrnQTo/Bp3IpDjapx3qG5vmCqYjQZmGYA3VQ/2fzY dlD6xjSlyqKDkyxM407hG+JMgdzWgPmV+MXkmWoI6WJkMfPncvjVgkZVcVYqNAFO6VD6 9SoCLeQIlTZenCGmCaI+tVBCrVftQgEVUCTY2iupAlrZeUp+xqpDh2wdIjW//T12JxvA oVz0jTvud0z0nhdRKCqAjxuiF7/EHC9EbvnV/VgHN58/PprbtkfCBElY6b2clHpMJ/U3 8+Cg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g67-v6si6025577plb.73.2018.08.04.09.43.18; Sat, 04 Aug 2018 09:43:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729478AbeHDSnp (ORCPT + 99 others); Sat, 4 Aug 2018 14:43:45 -0400 Received: from ivanoab5.miniserver.com ([78.31.111.25]:55888 "EHLO www.kot-begemot.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728054AbeHDSno (ORCPT ); Sat, 4 Aug 2018 14:43:44 -0400 X-Greylist: delayed 2194 seconds by postgrey-1.27 at vger.kernel.org; Sat, 04 Aug 2018 14:43:44 EDT Received: from tun5.smaug.kot-begemot.co.uk ([192.168.18.6] helo=smaug.kot-begemot.co.uk) by www.kot-begemot.co.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1flz42-0007ju-L9; Sat, 04 Aug 2018 16:05:58 +0000 Received: from ppp-94-68-121-61.home.otenet.gr ([94.68.121.61] helo=[192.168.1.158]) by smaug.kot-begemot.co.uk with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1flz42-0003Jl-4R; Sat, 04 Aug 2018 17:05:58 +0100 Subject: Re: [PATCH] um: NULL check before kfree is not needed To: YueHaibing , jdike@addtoit.com, richard@nod.at, christophe.jaillet@wanadoo.fr, keescook@chromium.org Cc: linux-um@lists.infradead.org, linux-kernel@vger.kernel.org References: <20180803063911.23384-1-yuehaibing@huawei.com> From: Anton Ivanov Message-ID: <3b72e9da-c4ac-cee0-1833-7c2b346fcc28@cambridgegreys.com> Date: Sat, 4 Aug 2018 17:05:28 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180803063911.23384-1-yuehaibing@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Clacks-Overhead: GNU Terry Pratchett Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/08/18 07:39, YueHaibing wrote: > kfree(NULL) is safe,so this removes NULL check before freeing the mem > > Signed-off-by: YueHaibing > --- > arch/um/drivers/vector_kern.c | 15 +++++---------- > arch/um/drivers/vector_user.c | 6 ++---- > arch/um/kernel/irq.c | 3 +-- > 3 files changed, 8 insertions(+), 16 deletions(-) > > diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c > index 50ee3bb..c84133c 100644 > --- a/arch/um/drivers/vector_kern.c > +++ b/arch/um/drivers/vector_kern.c > @@ -1118,16 +1118,11 @@ static int vector_net_close(struct net_device *dev) > os_close_file(vp->fds->tx_fd); > vp->fds->tx_fd = -1; > } > - if (vp->bpf != NULL) > - kfree(vp->bpf); > - if (vp->fds->remote_addr != NULL) > - kfree(vp->fds->remote_addr); > - if (vp->transport_data != NULL) > - kfree(vp->transport_data); > - if (vp->header_rxbuffer != NULL) > - kfree(vp->header_rxbuffer); > - if (vp->header_txbuffer != NULL) > - kfree(vp->header_txbuffer); > + kfree(vp->bpf); > + kfree(vp->fds->remote_addr); > + kfree(vp->transport_data); > + kfree(vp->header_rxbuffer); > + kfree(vp->header_txbuffer); > if (vp->rx_queue != NULL) > destroy_queue(vp->rx_queue); > if (vp->tx_queue != NULL) > diff --git a/arch/um/drivers/vector_user.c b/arch/um/drivers/vector_user.c > index 4d6a78e..3d8cdbd 100644 > --- a/arch/um/drivers/vector_user.c > +++ b/arch/um/drivers/vector_user.c > @@ -267,8 +267,7 @@ static struct vector_fds *user_init_raw_fds(struct arglist *ifspec) > os_close_file(rxfd); > if (txfd >= 0) > os_close_file(txfd); > - if (result != NULL) > - kfree(result); > + kfree(result); > return NULL; > } > > @@ -434,8 +433,7 @@ static struct vector_fds *user_init_socket_fds(struct arglist *ifspec, int id) > if (fd >= 0) > os_close_file(fd); > if (result != NULL) { > - if (result->remote_addr != NULL) > - kfree(result->remote_addr); > + kfree(result->remote_addr); > kfree(result); > } > return NULL; > diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c > index 6b7f382..8360fa3 100644 > --- a/arch/um/kernel/irq.c > +++ b/arch/um/kernel/irq.c > @@ -244,8 +244,7 @@ static void garbage_collect_irq_entries(void) > to_free = NULL; > } > walk = walk->next; > - if (to_free != NULL) > - kfree(to_free); > + kfree(to_free); > } > } > kfree in both slab and slob check for NULLs before freeing so this is correct. Thanks for noticing. Richard, please apply, A.