On Fri, Jun 26, 2020 at 03:10:32PM +0000, Pawel Laszczak wrote:
> >> +static int cdnsp_pci_probe(struct pci_dev *pdev,
> >> +                     const struct pci_device_id *id)
> >> +{
> >> +  struct platform_device_info plat_info;
> >> +  struct cdnsp_wrap *wrap;
> >> +  struct resource *res;
> >> +  struct pci_dev *func;
> >> +  int err;
> >> +
> >> +  /*
> >> +   * For GADGET/HOST PCI (devfn) function number is 0,
> >> +   * for OTG PCI (devfn) function number is 1.
> >> +   */
> >> +  if (!id || (pdev->devfn != PCI_DEV_FN_HOST_DEVICE &&
> >> +              pdev->devfn != PCI_DEV_FN_OTG))
> >> +          return -EINVAL;
> >> +
> >> +  func = cdnsp_get_second_fun(pdev);
> >> +  if (unlikely(!func))
> >> +          return -EINVAL;
> >> +
> >> +  if (func->class == PCI_CLASS_SERIAL_USB_XHCI ||
> >> +      pdev->class == PCI_CLASS_SERIAL_USB_XHCI)
> >> +          return -EINVAL;
> >
> >
> >Do we need call pci_put_device(func) before returning?
> 
> We don't need.
> Such function doesn't exist.
> 

I meant pci_dev_put().  I'm pretty sure that we do need it to match the
pci_get_device() in cdnsp_get_second_fun().

regards,
dan carpenter

Reply via email to