Re: [PATCH V3 2/9] powerpc/pci_dn: cache vf_index in pci_dn
On Mon, May 11, 2015 at 01:54:12PM +0800, Wei Yang wrote: On Mon, May 11, 2015 at 12:21:04PM +1000, Gavin Shan wrote: On Mon, May 04, 2015 at 03:07:31PM +0800, Wei Yang wrote: This patch caches the index of a VF in its PF in pci_dn. At least you can mention the purpose of vf_index to make the commit log complete. The following message looks better? The patch caches the VF index in pci_dn, which can be used to calculate VF's bus, device and function number. Those information helps to locate the VF's PCI device instance when doing hotplug during EEH recovery if necessary. Thanks, looks better. I added it in the log. Signed-off-by: Wei Yang weiy...@linux.vnet.ibm.com --- arch/powerpc/include/asm/pci-bridge.h |1 + arch/powerpc/kernel/pci_dn.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 1811c44..9582aa2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -199,6 +199,7 @@ struct pci_dn { #ifdef CONFIG_PCI_IOV u16 vfs_expanded; /* number of VFs IOV BAR expanded */ u16 num_vfs;/* number of VFs enabled*/ +int vf_index; /* Index to PF for VF dev */ ^^^ /* VF index in the PF */ Ok, changed in the code. And I believe it can be unsigned int, or u16. We should have non-negative vf_index, no? Take a look in the virtfn_add(), the index in drivers/pci/iov.c is int. So I copy that. int offset; /* PE# for the first VF PE */ #define M64_PER_IOV 4 int m64_per_iov; diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index b3b4df9..bf0fb873 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -138,7 +138,7 @@ struct pci_dn *pci_get_pdn(struct pci_dev *pdev) #ifdef CONFIG_PCI_IOV static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, - struct pci_dev *pdev, + struct pci_dev *pdev, int vf_index, struct pci_dev *pdev, int vf_index; Some reason for this comment? That does not exceed 80 characters. No, it doesn't exceed 80 characters as you said. You take one of the following formats, not the one you're using: add_one_dev_pci_data(foo1, foo2, add_one_dev_pci_data(foo1, foo3, foo4, foo2, foo5, foo6);: foo6); int busno, int devfn) { struct pci_dn *pdn; @@ -157,6 +157,7 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, pdn-parent = parent; pdn-busno = busno; pdn-devfn = devfn; +pdn-vf_index = vf_index; #ifdef CONFIG_PPC_POWERNV pdn-pe_number = IODA_INVALID_PE; #endif @@ -196,7 +197,7 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev) return NULL; for (i = 0; i pci_sriov_get_totalvfs(pdev); i++) { -pdn = add_one_dev_pci_data(parent, NULL, +pdn = add_one_dev_pci_data(parent, NULL, i, pci_iov_virtfn_bus(pdev, i), pci_iov_virtfn_devfn(pdev, i)); if (!pdn) { Thanks, Gavin ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH V3 2/9] powerpc/pci_dn: cache vf_index in pci_dn
On Tue, May 12, 2015 at 04:15:58PM +1000, Gavin Shan wrote: On Mon, May 11, 2015 at 01:54:12PM +0800, Wei Yang wrote: On Mon, May 11, 2015 at 12:21:04PM +1000, Gavin Shan wrote: On Mon, May 04, 2015 at 03:07:31PM +0800, Wei Yang wrote: This patch caches the index of a VF in its PF in pci_dn. At least you can mention the purpose of vf_index to make the commit log complete. The following message looks better? The patch caches the VF index in pci_dn, which can be used to calculate VF's bus, device and function number. Those information helps to locate the VF's PCI device instance when doing hotplug during EEH recovery if necessary. Thanks, looks better. I added it in the log. Signed-off-by: Wei Yang weiy...@linux.vnet.ibm.com --- arch/powerpc/include/asm/pci-bridge.h |1 + arch/powerpc/kernel/pci_dn.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 1811c44..9582aa2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -199,6 +199,7 @@ struct pci_dn { #ifdef CONFIG_PCI_IOV u16 vfs_expanded; /* number of VFs IOV BAR expanded */ u16 num_vfs;/* number of VFs enabled*/ + int vf_index; /* Index to PF for VF dev */ ^^^ /* VF index in the PF */ Ok, changed in the code. And I believe it can be unsigned int, or u16. We should have non-negative vf_index, no? Take a look in the virtfn_add(), the index in drivers/pci/iov.c is int. So I copy that. int offset; /* PE# for the first VF PE */ #define M64_PER_IOV 4 int m64_per_iov; diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index b3b4df9..bf0fb873 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -138,7 +138,7 @@ struct pci_dn *pci_get_pdn(struct pci_dev *pdev) #ifdef CONFIG_PCI_IOV static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, - struct pci_dev *pdev, + struct pci_dev *pdev, int vf_index, struct pci_dev *pdev, int vf_index; Some reason for this comment? That does not exceed 80 characters. No, it doesn't exceed 80 characters as you said. You take one of the following formats, not the one you're using: add_one_dev_pci_data(foo1, foo2, add_one_dev_pci_data(foo1, foo3, foo4, foo2, foo5, foo6);: foo6); Thanks int busno, int devfn) { struct pci_dn *pdn; @@ -157,6 +157,7 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, pdn-parent = parent; pdn-busno = busno; pdn-devfn = devfn; + pdn-vf_index = vf_index; #ifdef CONFIG_PPC_POWERNV pdn-pe_number = IODA_INVALID_PE; #endif @@ -196,7 +197,7 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev) return NULL; for (i = 0; i pci_sriov_get_totalvfs(pdev); i++) { - pdn = add_one_dev_pci_data(parent, NULL, + pdn = add_one_dev_pci_data(parent, NULL, i, pci_iov_virtfn_bus(pdev, i), pci_iov_virtfn_devfn(pdev, i)); if (!pdn) { Thanks, Gavin -- Richard Yang Help you, Help me ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH V3 2/9] powerpc/pci_dn: cache vf_index in pci_dn
On Mon, May 11, 2015 at 12:21:04PM +1000, Gavin Shan wrote: On Mon, May 04, 2015 at 03:07:31PM +0800, Wei Yang wrote: This patch caches the index of a VF in its PF in pci_dn. At least you can mention the purpose of vf_index to make the commit log complete. The following message looks better? The patch caches the VF index in pci_dn, which can be used to calculate VF's bus, device and function number. Those information helps to locate the VF's PCI device instance when doing hotplug during EEH recovery if necessary. Thanks, looks better. I added it in the log. Signed-off-by: Wei Yang weiy...@linux.vnet.ibm.com --- arch/powerpc/include/asm/pci-bridge.h |1 + arch/powerpc/kernel/pci_dn.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 1811c44..9582aa2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -199,6 +199,7 @@ struct pci_dn { #ifdef CONFIG_PCI_IOV u16 vfs_expanded; /* number of VFs IOV BAR expanded */ u16 num_vfs;/* number of VFs enabled*/ + int vf_index; /* Index to PF for VF dev */ ^^^ /* VF index in the PF */ Ok, changed in the code. And I believe it can be unsigned int, or u16. We should have non-negative vf_index, no? Take a look in the virtfn_add(), the index in drivers/pci/iov.c is int. So I copy that. int offset; /* PE# for the first VF PE */ #define M64_PER_IOV 4 int m64_per_iov; diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index b3b4df9..bf0fb873 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -138,7 +138,7 @@ struct pci_dn *pci_get_pdn(struct pci_dev *pdev) #ifdef CONFIG_PCI_IOV static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, -struct pci_dev *pdev, +struct pci_dev *pdev, int vf_index, struct pci_dev *pdev, int vf_index; Some reason for this comment? That does not exceed 80 characters. int busno, int devfn) { struct pci_dn *pdn; @@ -157,6 +157,7 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, pdn-parent = parent; pdn-busno = busno; pdn-devfn = devfn; + pdn-vf_index = vf_index; #ifdef CONFIG_PPC_POWERNV pdn-pe_number = IODA_INVALID_PE; #endif @@ -196,7 +197,7 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev) return NULL; for (i = 0; i pci_sriov_get_totalvfs(pdev); i++) { - pdn = add_one_dev_pci_data(parent, NULL, + pdn = add_one_dev_pci_data(parent, NULL, i, pci_iov_virtfn_bus(pdev, i), pci_iov_virtfn_devfn(pdev, i)); if (!pdn) { Thanks, Gavin -- Richard Yang Help you, Help me ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH V3 2/9] powerpc/pci_dn: cache vf_index in pci_dn
On Mon, May 04, 2015 at 03:07:31PM +0800, Wei Yang wrote: This patch caches the index of a VF in its PF in pci_dn. At least you can mention the purpose of vf_index to make the commit log complete. The following message looks better? The patch caches the VF index in pci_dn, which can be used to calculate VF's bus, device and function number. Those information helps to locate the VF's PCI device instance when doing hotplug during EEH recovery if necessary. Signed-off-by: Wei Yang weiy...@linux.vnet.ibm.com --- arch/powerpc/include/asm/pci-bridge.h |1 + arch/powerpc/kernel/pci_dn.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 1811c44..9582aa2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -199,6 +199,7 @@ struct pci_dn { #ifdef CONFIG_PCI_IOV u16 vfs_expanded; /* number of VFs IOV BAR expanded */ u16 num_vfs;/* number of VFs enabled*/ + int vf_index; /* Index to PF for VF dev */ ^^^ /* VF index in the PF */ And I believe it can be unsigned int, or u16. We should have non-negative vf_index, no? int offset; /* PE# for the first VF PE */ #define M64_PER_IOV 4 int m64_per_iov; diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index b3b4df9..bf0fb873 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -138,7 +138,7 @@ struct pci_dn *pci_get_pdn(struct pci_dev *pdev) #ifdef CONFIG_PCI_IOV static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, - struct pci_dev *pdev, + struct pci_dev *pdev, int vf_index, struct pci_dev *pdev, int vf_index; int busno, int devfn) { struct pci_dn *pdn; @@ -157,6 +157,7 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, pdn-parent = parent; pdn-busno = busno; pdn-devfn = devfn; + pdn-vf_index = vf_index; #ifdef CONFIG_PPC_POWERNV pdn-pe_number = IODA_INVALID_PE; #endif @@ -196,7 +197,7 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev) return NULL; for (i = 0; i pci_sriov_get_totalvfs(pdev); i++) { - pdn = add_one_dev_pci_data(parent, NULL, + pdn = add_one_dev_pci_data(parent, NULL, i, pci_iov_virtfn_bus(pdev, i), pci_iov_virtfn_devfn(pdev, i)); if (!pdn) { Thanks, Gavin ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH V3 2/9] powerpc/pci_dn: cache vf_index in pci_dn
This patch caches the index of a VF in its PF in pci_dn. Signed-off-by: Wei Yang weiy...@linux.vnet.ibm.com --- arch/powerpc/include/asm/pci-bridge.h |1 + arch/powerpc/kernel/pci_dn.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 1811c44..9582aa2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -199,6 +199,7 @@ struct pci_dn { #ifdef CONFIG_PCI_IOV u16 vfs_expanded; /* number of VFs IOV BAR expanded */ u16 num_vfs;/* number of VFs enabled*/ + int vf_index; /* Index to PF for VF dev */ int offset; /* PE# for the first VF PE */ #define M64_PER_IOV 4 int m64_per_iov; diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index b3b4df9..bf0fb873 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -138,7 +138,7 @@ struct pci_dn *pci_get_pdn(struct pci_dev *pdev) #ifdef CONFIG_PCI_IOV static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, - struct pci_dev *pdev, + struct pci_dev *pdev, int vf_index, int busno, int devfn) { struct pci_dn *pdn; @@ -157,6 +157,7 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent, pdn-parent = parent; pdn-busno = busno; pdn-devfn = devfn; + pdn-vf_index = vf_index; #ifdef CONFIG_PPC_POWERNV pdn-pe_number = IODA_INVALID_PE; #endif @@ -196,7 +197,7 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev) return NULL; for (i = 0; i pci_sriov_get_totalvfs(pdev); i++) { - pdn = add_one_dev_pci_data(parent, NULL, + pdn = add_one_dev_pci_data(parent, NULL, i, pci_iov_virtfn_bus(pdev, i), pci_iov_virtfn_devfn(pdev, i)); if (!pdn) { -- 1.7.9.5 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev