|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen-pciback: provide a "reset" sysfs file to try harder at an SBR
On Wed, Jul 09, 2014 at 05:03:17PM +0100, David Vrabel wrote:
> On 09/07/14 15:56, Konrad Rzeszutek Wilk wrote:
> >
> > I think for your patch to work it has to de-register what the
> > generic PCI code does in pci_create_capabilities_sysfs:
> >
> > 1339 if (!pci_probe_reset_function(dev)) {
> > 1340 retval = device_create_file(&dev->dev, &reset_attr);
> > 1341 if (retval)
> > 1342 goto error;
> > 1343 dev->reset_fn = 1;
> > 1344 }
>
> It just needs to have the inverse test.
>
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -151,14 +151,11 @@ static int pcistub_try_create_reset_file(struct
> pci_dev *pci)
> {
> struct xen_pcibk_dev_data *dev_data = pci_get_drvdata(pci);
> struct device *dev = &pci->dev;
> - struct kernfs_node *reset_dirent;
> int ret;
>
> - reset_dirent = sysfs_get_dirent(dev->kobj.sd, "reset");
> - if (reset_dirent) {
> - sysfs_put(reset_dirent);
> + /* Already have a per-function reset? */
> + if (pci_dev_reset(dev, 1) == 0)
OK, however the'reset' in SysFS does not do bus/slot reset.
It only calls 'pci_reset_function' - which is inadequate
in certain cases (GPUs, device does not really go in D3 when
asked too, etc) and that is where bus/slot reset functionality
is needed.
> return 0;
> - }
>
> ret = device_create_file(dev, &dev_attr_reset);
> if (ret < 0)
>
> David
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |