[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-backports
Subject:    Re: [PATCH RFC v2 02/11] backports: igb fixes for linux-3.9
From:       Stefan Assmann <sassmann () kpanic ! de>
Date:       2013-12-19 8:56:46
Message-ID: 52B2B4CE.1080207 () kpanic ! de
[Download RAW message or body]

On 18.12.2013 21:19, Hauke Mehrtens wrote:
> On 12/18/2013 05:08 PM, Stefan Assmann wrote:
>> - add struct pci_sriov
>> - add pci_vfs_assigned()
>> - add PCI_SRIOV defines
>> - add patches/collateral-evolutions/network/82-ethernet/0001-igb_net_device_ops.patch
>>
>> Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
>> ---
>>  backport/backport-include/linux/pci.h              | 25 ++++++++++
>>  backport/backport-include/linux/pci_regs.h         |  8 ++++
>>  backport/compat/backport-3.10.c                    | 46 ++++++++++++++++++
>>  .../82-ethernet/0001-igb_net_device_ops.patch      | 56 ++++++++++++++++++++++
>>  4 files changed, 135 insertions(+)
>>  create mode 100644 patches/collateral-evolutions/network/82-ethernet/0001-igb_net_device_ops.patch
>>
>> diff --git a/backport/backport-include/linux/pci.h b/backport/backport-include/linux/pci.h
>> index 3a1815a..b56761f 100644
>> --- a/backport/backport-include/linux/pci.h
>> +++ b/backport/backport-include/linux/pci.h
>> @@ -178,4 +178,29 @@ bool pci_pme_capable(struct pci_dev *dev, pci_power_t state);
>>  	.subvendor = (subvend), .subdevice = (subdev)
>>  #endif /* PCI_DEVICE_SUB */
>>  
>> +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
>> +/* Taken from drivers/pci/pci.h */
>> +struct pci_sriov {
>> +	int pos;		/* capability position */
>> +	int nres;		/* number of resources */
>> +	u32 cap;		/* SR-IOV Capabilities */
>> +	u16 ctrl;		/* SR-IOV Control */
>> +	u16 total_VFs;		/* total VFs associated with the PF */
>> +	u16 initial_VFs;	/* initial VFs associated with the PF */
>> +	u16 num_VFs;		/* number of VFs available */
>> +	u16 offset;		/* first VF Routing ID offset */
>> +	u16 stride;		/* following VF stride */
>> +	u32 pgsz;		/* page size for BAR alignment */
>> +	u8 link;		/* Function Dependency Link */
>> +	u16 driver_max_VFs;	/* max num VFs driver supports */
>> +	struct pci_dev *dev;	/* lowest numbered PF */
>> +	struct pci_dev *self;	/* this PF */
>> +	struct mutex lock;	/* lock for VF bus */
>> +	struct work_struct mtask; /* VF Migration task */
>> +	u8 __iomem *mstate;	/* VF Migration State Array */
>> +};
> 
> where is this struct used?

/dev/shm/next/compat/backport-3.10.c: In function  € ˜pci_vfs_assigned:
/dev/shm/next/compat/backport-3.10.c:156: error: dereferencing pointer to incomplete type
pci_read_config_word(dev, dev->sriov->pos + PCI_SRIOV_VF_DID, &dev_id);

> 
>> +extern int pci_vfs_assigned(struct pci_dev *dev);
> The extern is not needed.

Yes, my bad. Going to fix that.

> 
> If CONFIG_PCI_IOV is not set backports will not include the
> implementation of this function, you should add something like this in
> the header:
> 
> #ifdef CONFIG_PCI_IOV
> int pci_vfs_assigned(struct pci_dev *dev);
> #else
> static inline int pci_vfs_assigned(struct pci_dev *dev)
> {
> 	return 0;
> }
> #endif

Agreed.

  Stefan
--
To unsubscribe from this list: send the line "unsubscribe backports" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic