2015-04-09 15:51:46

by Alex Williamson

[permalink] [raw]
Subject: [PATCH] PCI: Export pci_probe_reset_function()

The equivalent bus and slot versions of this are already exported and
vfio-pci would like a function-probe available so we can expose
function-level reset capabilities to the user without necessarily
using it to perform a reset before enabling the device for the user.

Signed-off-by: Alex Williamson <[email protected]>
---
drivers/pci/pci.c | 1 +
include/linux/pci.h | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 81f06e8..9f3e691 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3524,6 +3524,7 @@ int pci_probe_reset_function(struct pci_dev *dev)
{
return pci_dev_reset(dev, 1);
}
+EXPORT_SYMBOL_GPL(pci_probe_reset_function);

/**
* pci_reset_function - quiesce and reset a PCI device function
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 211e9da..233d1ae 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -986,6 +986,7 @@ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
enum pcie_link_width *width);
int __pci_reset_function(struct pci_dev *dev);
int __pci_reset_function_locked(struct pci_dev *dev);
+int pci_probe_reset_function(struct pci_dev *dev);
int pci_reset_function(struct pci_dev *dev);
int pci_try_reset_function(struct pci_dev *dev);
int pci_probe_reset_slot(struct pci_slot *slot);


2015-04-09 19:58:53

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: Export pci_probe_reset_function()

On Thu, Apr 09, 2015 at 09:51:43AM -0600, Alex Williamson wrote:
> The equivalent bus and slot versions of this are already exported and
> vfio-pci would like a function-probe available so we can expose
> function-level reset capabilities to the user without necessarily
> using it to perform a reset before enabling the device for the user.
>
> Signed-off-by: Alex Williamson <[email protected]>

Applied to pci/virtualization for v4.1, thanks!

> ---
> drivers/pci/pci.c | 1 +
> include/linux/pci.h | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 81f06e8..9f3e691 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -3524,6 +3524,7 @@ int pci_probe_reset_function(struct pci_dev *dev)
> {
> return pci_dev_reset(dev, 1);
> }
> +EXPORT_SYMBOL_GPL(pci_probe_reset_function);
>
> /**
> * pci_reset_function - quiesce and reset a PCI device function
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 211e9da..233d1ae 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -986,6 +986,7 @@ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
> enum pcie_link_width *width);
> int __pci_reset_function(struct pci_dev *dev);
> int __pci_reset_function_locked(struct pci_dev *dev);
> +int pci_probe_reset_function(struct pci_dev *dev);
> int pci_reset_function(struct pci_dev *dev);
> int pci_try_reset_function(struct pci_dev *dev);
> int pci_probe_reset_slot(struct pci_slot *slot);
>

2015-04-09 20:00:55

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: Export pci_probe_reset_function()

On Thu, Apr 09, 2015 at 02:58:46PM -0500, Bjorn Helgaas wrote:
> On Thu, Apr 09, 2015 at 09:51:43AM -0600, Alex Williamson wrote:
> > The equivalent bus and slot versions of this are already exported and
> > vfio-pci would like a function-probe available so we can expose
> > function-level reset capabilities to the user without necessarily
> > using it to perform a reset before enabling the device for the user.
> >
> > Signed-off-by: Alex Williamson <[email protected]>
>
> Applied to pci/virtualization for v4.1, thanks!

Actually, maybe it makes more sense for you to apply this along with the
vfio patch that uses it? So if you want:

Acked-by: Bjorn Helgaas <[email protected]>

> > ---
> > drivers/pci/pci.c | 1 +
> > include/linux/pci.h | 1 +
> > 2 files changed, 2 insertions(+)
> >
> > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> > index 81f06e8..9f3e691 100644
> > --- a/drivers/pci/pci.c
> > +++ b/drivers/pci/pci.c
> > @@ -3524,6 +3524,7 @@ int pci_probe_reset_function(struct pci_dev *dev)
> > {
> > return pci_dev_reset(dev, 1);
> > }
> > +EXPORT_SYMBOL_GPL(pci_probe_reset_function);
> >
> > /**
> > * pci_reset_function - quiesce and reset a PCI device function
> > diff --git a/include/linux/pci.h b/include/linux/pci.h
> > index 211e9da..233d1ae 100644
> > --- a/include/linux/pci.h
> > +++ b/include/linux/pci.h
> > @@ -986,6 +986,7 @@ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
> > enum pcie_link_width *width);
> > int __pci_reset_function(struct pci_dev *dev);
> > int __pci_reset_function_locked(struct pci_dev *dev);
> > +int pci_probe_reset_function(struct pci_dev *dev);
> > int pci_reset_function(struct pci_dev *dev);
> > int pci_try_reset_function(struct pci_dev *dev);
> > int pci_probe_reset_slot(struct pci_slot *slot);
> >

2015-04-09 20:11:30

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] PCI: Export pci_probe_reset_function()

On Thu, 2015-04-09 at 15:00 -0500, Bjorn Helgaas wrote:
> On Thu, Apr 09, 2015 at 02:58:46PM -0500, Bjorn Helgaas wrote:
> > On Thu, Apr 09, 2015 at 09:51:43AM -0600, Alex Williamson wrote:
> > > The equivalent bus and slot versions of this are already exported and
> > > vfio-pci would like a function-probe available so we can expose
> > > function-level reset capabilities to the user without necessarily
> > > using it to perform a reset before enabling the device for the user.
> > >
> > > Signed-off-by: Alex Williamson <[email protected]>
> >
> > Applied to pci/virtualization for v4.1, thanks!
>
> Actually, maybe it makes more sense for you to apply this along with the
> vfio patch that uses it? So if you want:
>
> Acked-by: Bjorn Helgaas <[email protected]>

That would be more convenient, I'll take it. Thanks!

Alex

> > > ---
> > > drivers/pci/pci.c | 1 +
> > > include/linux/pci.h | 1 +
> > > 2 files changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> > > index 81f06e8..9f3e691 100644
> > > --- a/drivers/pci/pci.c
> > > +++ b/drivers/pci/pci.c
> > > @@ -3524,6 +3524,7 @@ int pci_probe_reset_function(struct pci_dev *dev)
> > > {
> > > return pci_dev_reset(dev, 1);
> > > }
> > > +EXPORT_SYMBOL_GPL(pci_probe_reset_function);
> > >
> > > /**
> > > * pci_reset_function - quiesce and reset a PCI device function
> > > diff --git a/include/linux/pci.h b/include/linux/pci.h
> > > index 211e9da..233d1ae 100644
> > > --- a/include/linux/pci.h
> > > +++ b/include/linux/pci.h
> > > @@ -986,6 +986,7 @@ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
> > > enum pcie_link_width *width);
> > > int __pci_reset_function(struct pci_dev *dev);
> > > int __pci_reset_function_locked(struct pci_dev *dev);
> > > +int pci_probe_reset_function(struct pci_dev *dev);
> > > int pci_reset_function(struct pci_dev *dev);
> > > int pci_try_reset_function(struct pci_dev *dev);
> > > int pci_probe_reset_slot(struct pci_slot *slot);
> > >