[v1,11/13] bus/pci: process declarative PCI devargs
Checks
Commit Message
Introduce the facility to process future PCI parameters.
Once the matching between PCI devices and devargs has been done, it is
possible to process each devargs. New parameters would have the PCI
device handle to work with when parsing the device (bus specific)
parameters.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
drivers/bus/pci/pci_common.c | 3 +++
drivers/bus/pci/pci_params.c | 10 ++++++++++
drivers/bus/pci/private.h | 13 +++++++++++++
3 files changed, 26 insertions(+)
Comments
On Thu, 30 Aug 2018 15:42:02 +0200
Gaetan Rivet <gaetan.rivet@6wind.com> wrote:
> +int
> +rte_pci_devargs_process(struct rte_pci_device *pdev)
> +{
> + /* For the moment, no PCI param
> + * needs to be processed.
> + */
> + (void) pdev;
> + return 0;
> +}
Use __rte_unused rather than the (void) cast?
On Thu, Aug 30, 2018 at 09:15:18AM -0700, Stephen Hemminger wrote:
> On Thu, 30 Aug 2018 15:42:02 +0200
> Gaetan Rivet <gaetan.rivet@6wind.com> wrote:
>
> > +int
> > +rte_pci_devargs_process(struct rte_pci_device *pdev)
> > +{
> > + /* For the moment, no PCI param
> > + * needs to be processed.
> > + */
> > + (void) pdev;
> > + return 0;
> > +}
>
> Use __rte_unused rather than the (void) cast?
Ok.
I was wondering whether we should keep this patch.
Its only use is to mark the proper place where this function,
once it has become needed, would need to be called.
PCI bus does not have any parameters configuring devices, this function
will only be needed once some have been added.
@@ -247,6 +247,9 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
if (dev->driver != NULL)
return 0;
+ if (rte_pci_devargs_process(dev) < 0)
+ return -1;
+
FOREACH_DRIVER_ON_PCIBUS(dr) {
rc = rte_pci_probe_one_driver(dr, dev);
if (rc < 0)
@@ -127,3 +127,13 @@ rte_pci_devargs_prepare(struct rte_devargs *devargs)
rte_kvargs_free(kvargs);
return ret;
}
+
+int
+rte_pci_devargs_process(struct rte_pci_device *pdev)
+{
+ /* For the moment, no PCI param
+ * needs to be processed.
+ */
+ (void) pdev;
+ return 0;
+}
@@ -207,4 +207,17 @@ rte_pci_dev_iterate(const void *start,
int
rte_pci_devargs_prepare(struct rte_devargs *da);
+/*
+ * Process the device devargs, if any.
+ *
+ * @param pdev
+ * PCI device
+ *
+ * @return
+ * 0 on success.
+ * <0 on error.
+ */
+int
+rte_pci_devargs_process(struct rte_pci_device *pdev);
+
#endif /* _PCI_PRIVATE_H_ */