[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 09/07/14 17:10, Konrad Rzeszutek Wilk wrote:
> 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.

Um. This is probing if a per function reset is available,  if it isn't
it creates the "reset" sysfs file. Which will then try an SBR.

(This snippet is broken though since pci_dev_reset() is not extern, see
latest series for the correct fix.)

David

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.