Messages in this thread | | | Date | Thu, 25 Jun 2015 15:34:19 +0100 | From | Ian Abbott <> | Subject | Re: [PATCH 1/1] staging/comedi: remove unnecessary check around pci_dev_put |
| |
On 25/06/15 12:21, Dan Carpenter wrote: > On Thu, Jun 25, 2015 at 04:20:26PM +0530, Maninder Singh wrote: >> pci_dev_put cehcks for NULL pointer itself, >> reported by coccinelle >> > > This patch is correct but the motivation is wrong. > > The check in pci_dev_put() is like a sanity check. There are many > functions which have a sanity check and many which do not, it is > impossible for a human to remember the complete list of each. When we > remove explicit checks for NULL and instead rely on the sanity checks > it sometimes makes the code more subtle and difficult to read. > > In this case, "pcidev" can never be NULL so the check is misleading and > makes the code more complicated. Removing it is a good thing. Also > the attach function does not have a NULL check so when we remove this > check we make the code more consistent.
Actually, it is possible for pcidev to be NULL here (pci9118_detach() in drivers/staging/comedi/drivers/adl_pci9118.c). This driver supports both the auto-attach (via PCI driver probe) and "legacy" attach (via COMEDI_DEVCONFIG ioctl). For the auto-attach case, pcidev will never be NULL. For the "legacy" attach case, pcidev can be NULL if the call to pci9118_find_pci() from pci9118_attach() failed to find a matching PCI device and so returned an error before the call to comedi_set_hw_dev(). The comedi core then calls pci9118_detach() which sets pcidev to the return value from comedi_to_pci_dev() which will be NULL in this case.
> But in other cases, if "pcidev" could be NULL then we should keep the > check so that the code is easier to read.
So we should keep the check in this case too.
-- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=- -=( Web: http://www.mev.co.uk/ )=-
| |