Re: [PATCH] PCI: Don't update VF's BAR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 14, 2015 at 05:15:11PM -0500, Bjorn Helgaas wrote:
>On Tue, Jun 30, 2015 at 03:37:14PM +0800, Wei Yang wrote:
>> VF BARs are RO zero, so updating VF BARs will not take any effect.
>> See the SR-IOV spec r1.1, sec 3.4.1.11.
>> 
>> Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
>> ---
>>  drivers/pci/setup-res.c |    7 +++++++
>>  1 file changed, 7 insertions(+)
>> 
>> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
>> index 232f925..334b394 100644
>> --- a/drivers/pci/setup-res.c
>> +++ b/drivers/pci/setup-res.c
>> @@ -37,6 +37,13 @@ void pci_update_resource(struct pci_dev *dev, int resno)
>>  	struct resource *res = dev->resource + resno;
>>  
>>  	/*
>> +	 * Per SRIOV SPEC 3.4.1.11, VF BARs are RO zero.
>> +	 * If this is a VF, just return.
>> +	 */
>> +	if (dev->is_virtfn)
>> +		return;
>
>Does this fix a problem?  Are you seeing the "BAR %d: error updating"
>message?
>

Yes, I see the "error updating" message when doing vfio pass through.

>I wouldn't think we would even call pci_update_resource() for VFs, except
>for pci_restore_bars().  Maybe we should check there?
>

This happens after commit <6eb7018705de> ("vfio-pci: Move idle devices to 
D3hot power state"). When do vfio, it will set the power state, and which in
turn update the BAR.

Hmm... yes, maybe the pci_restore_bars() is a good place to check.

>If the PCI core is assigning space directly to VF BARs and trying to update
>them, I'd like to know about that rather than silently ignoring it.
>

Ok, so I would add a warning at this place.

>> +
>> +	/*
>>  	 * Ignore resources for unimplemented BARs and unused resource slots
>>  	 * for 64 bit BARs.
>>  	 */
>> -- 
>> 1.7.9.5
>> 

-- 
Richard Yang
Help you, Help me

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux