Re: [PATCH 1/1] net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put"

Julia Lawall
2014-11-30T17:47:35Z

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