Re: [PATCH 6/8 v4] PCI: support the SR-IOV capability

From: Matthew Wilcox
Date: Tue Oct 14 2008 - 08:30:31 EST


On Tue, Oct 14, 2008 at 06:59:28PM +0800, Yu Zhao wrote:
> +++ b/drivers/pci/pci.h
> @@ -176,4 +176,59 @@ static inline int pci_ari_enabled(struct pci_dev *dev)
> +struct pci_iov {
> + int cap; /* capability position */
> + int align; /* page size used to map memory space */
> + int is_enabled; /* status of SR-IOV */
> + int nentries; /* number of sysfs entries used by PF driver */
> + u16 totalvfs; /* total VFs associated with the PF */
> + u16 initialvfs; /* initial VFs associated with the PF */
> + u16 numvfs; /* number of VFs available */
> + u16 offset; /* first VF Routing ID offset */
> + u16 stride; /* following VF stride */
> + struct mutex mutex; /* lock for SR-IOV */
> + struct kobject kobj; /* koject for IOV */
> + struct pci_dev *dev; /* Physical Function */
> + struct vf_entry *ve; /* Virtual Function related */
> + int (*notify)(struct pci_dev *, u32); /* event callback function */
> +};

> +++ b/include/linux/pci.h
> @@ -87,6 +87,12 @@ enum {
> /* #6: expansion ROM */
> PCI_ROM_RESOURCE,
>
> + /* device specific resources */
> +#ifdef CONFIG_PCI_IOV
> + PCI_IOV_RESOURCES,
> + PCI_IOV_RESOURCES_END = PCI_IOV_RESOURCES + PCI_IOV_NUM_BAR - 1,
> +#endif
> +
> /* address space assigned to buses behind the bridge */
> #ifndef PCI_BRIDGE_RES_NUM
> #define PCI_BRIDGE_RES_NUM 4

Why expand the number of resources in struct pci_dev instead of putting
the new resources in struct pci_iov?

--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/