Hi, On 06/22/2018 12:43 PM, Logan Gunthorpe wrote: > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index 97acba712e4e..cb999b2a9530 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -191,6 +191,92 @@ void __iomem *pci_ioremap_wc_bar(struct pci_dev *pdev, int bar) > EXPORT_SYMBOL_GPL(pci_ioremap_wc_bar); > #endif > > +/** > + * pci_dev_str_match - test if a string matches a device > + * @dev: the PCI device to test > + * @p: string to match the device against > + * @endptr: pointer to the string after the match > + * > + * Test if a string (typically from a kernel parameter) matches a > + * specified. The string may be of one of the following formats: "matches a specified." eh? > + * > + * [<domain>:]<bus>:<slot>.<func> > + * pci:<vendor>:<device>[:<subvendor>:<subdevice>] > + * > + * The first format specifies a PCI bus/slot/function address which > + * may change if new hardware is inserted, if motherboard firmware changes, > + * or due to changes caused in kernel parameters. If the domain is > + * left unspecified, it is taken to be 0. > + * > + * The second format matches devices using IDs in the configuration > + * space which may match multiple devices in the system. A value of 0 > + * for any field will match all devices. (Note: this differs from > + * in-kernel code that uses PCI_ANY_ID which is ~0; this is for > + * legacy reasons and convienence so users don't have to specify convenience > + * FFFFFFFFs on the command line.) > + * > + * Returns 1 if the string matches the device, 0 if it does not and > + * a negative error code if the string cannot be parsed. > + */ > +static int pci_dev_str_match(struct pci_dev *dev, const char *p, > + const char **endptr) > +{ thanks, -- ~Randy