From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752589AbaK3Rrf (ORCPT ); Sun, 30 Nov 2014 12:47:35 -0500 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:43855 "EHLO mail3-relais-sop.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752184AbaK3Rre (ORCPT ); Sun, 30 Nov 2014 12:47:34 -0500 X-IronPort-AV: E=Sophos;i="5.07,488,1413237600"; d="scan'208";a="91117350" Date: Sun, 30 Nov 2014 18:47:29 +0100 (CET) From: Julia Lawall X-X-Sender: jll@hadrien To: Lino Sanfilippo cc: SF Markus Elfring , Olof Johansson , netdev@vger.kernel.org, LKML , kernel-janitors@vger.kernel.org Subject: Re: [PATCH 1/1] net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put" In-Reply-To: <547B579F.10709@gmx.de> Message-ID: References: <5307CAA2.8060406@users.sourceforge.net> <530A086E.8010901@users.sourceforge.net> <530A72AA.3000601@users.sourceforge.net> <530B5FB6.6010207@users.sourceforge.net> <530C5E18.1020800@users.sourceforge.net> <530CD2C4.4050903@users.sourceforge.net> <530CF8FF.8080600@users.sourceforge.net> <530DD06F.4090703@users.sourceforge.net> <5317A59D.4@users.sourceforge.net> <547A09B1.9090102@users.sourceforge.net> <547B579F.10709@gmx.de> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 30 Nov 2014, Lino Sanfilippo wrote: > On 29.11.2014 19:00, SF Markus Elfring wrote: > > > out: > > - if (mac->iob_pdev) > > - pci_dev_put(mac->iob_pdev); > > - if (mac->dma_pdev) > > - pci_dev_put(mac->dma_pdev); > > + pci_dev_put(mac->iob_pdev); > > + pci_dev_put(mac->dma_pdev); > > > > free_netdev(dev); > > out_disable_device: > > > > Hi, > > I know there has been some criticism about those kind of "code > improvements" already but i would like to point out just one more thing: > > Some of those NULL pointer checks on input parameters may have been > added subsequently to functions. So there may be older kernel versions > out there in which those checks dont exists in some cases. If some of > the now "cleaned up" code is backported to such a kernel chances are > good that those missing checks are overseen. And then neither caller nor > callee is doing the NULL pointer check. > > Quite frankly i would vote for the opposite approach: Never rely on the > callee do to checks for NULL and do it always in the caller. An > exception could be for calls on a fast path. But most of those checks > are done on error paths anyway. I have heard of at least one case where the problem you are raising happened in practice... julia