Message ID | 1364375140-6388-1-git-send-email-wangyijing@huawei.com |
---|---|
State | Not Applicable |
Headers | show |
On Wed, 2013-03-27 at 17:05 +0800, Yijing Wang wrote: > Currently, we use pcie_flags_reg to cache PCI-E Capabilities Register, > because PCI-E Capabilities Register bits are almost read-only. This patch > use pcie_flags_reg instead of another access PCI-E Capabilities Register. > > Signed-off-by: Yijing Wang <wangyijing@huawei.com> > --- > drivers/vfio/pci/vfio_pci_config.c | 6 +----- > 1 files changed, 1 insertions(+), 5 deletions(-) > > diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c > index aeb00fc..afc6ca4 100644 > --- a/drivers/vfio/pci/vfio_pci_config.c > +++ b/drivers/vfio/pci/vfio_pci_config.c > @@ -1017,13 +1017,9 @@ static int vfio_cap_len(struct vfio_pci_device *vdev, u8 cap, u8 pos) > return byte; > case PCI_CAP_ID_EXP: > /* length based on version */ > - ret = pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, &word); > - if (ret) > - return pcibios_err_to_errno(ret); > - > vdev->extended_caps = true; > > - if ((word & PCI_EXP_FLAGS_VERS) == 1) > + if ((pdev->pcie_flags_reg & PCI_EXP_FLAGS_VERS) == 1) It looks like we should be using pcie_caps_reg(pdev) here instead of directly accessing pcie_flags_reg. Thanks, Alex > return PCI_CAP_EXP_ENDPOINT_SIZEOF_V1; > else > return PCI_CAP_EXP_ENDPOINT_SIZEOF_V2; -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
>> @@ -1017,13 +1017,9 @@ static int vfio_cap_len(struct vfio_pci_device *vdev, u8 cap, u8 pos) >> return byte; >> case PCI_CAP_ID_EXP: >> /* length based on version */ >> - ret = pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, &word); >> - if (ret) >> - return pcibios_err_to_errno(ret); >> - >> vdev->extended_caps = true; >> >> - if ((word & PCI_EXP_FLAGS_VERS) == 1) >> + if ((pdev->pcie_flags_reg & PCI_EXP_FLAGS_VERS) == 1) > > It looks like we should be using pcie_caps_reg(pdev) here instead of > directly accessing pcie_flags_reg. Thanks, That's right, I forget Myron Stowe introduced the PCIe Cap accessor function pcie_caps_reg(). I will resend the updated patch. Thanks! Yijing > > Alex > >> return PCI_CAP_EXP_ENDPOINT_SIZEOF_V1; >> else >> return PCI_CAP_EXP_ENDPOINT_SIZEOF_V2; > > > > > . >
diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c index aeb00fc..afc6ca4 100644 --- a/drivers/vfio/pci/vfio_pci_config.c +++ b/drivers/vfio/pci/vfio_pci_config.c @@ -1017,13 +1017,9 @@ static int vfio_cap_len(struct vfio_pci_device *vdev, u8 cap, u8 pos) return byte; case PCI_CAP_ID_EXP: /* length based on version */ - ret = pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, &word); - if (ret) - return pcibios_err_to_errno(ret); - vdev->extended_caps = true; - if ((word & PCI_EXP_FLAGS_VERS) == 1) + if ((pdev->pcie_flags_reg & PCI_EXP_FLAGS_VERS) == 1) return PCI_CAP_EXP_ENDPOINT_SIZEOF_V1; else return PCI_CAP_EXP_ENDPOINT_SIZEOF_V2;
Currently, we use pcie_flags_reg to cache PCI-E Capabilities Register, because PCI-E Capabilities Register bits are almost read-only. This patch use pcie_flags_reg instead of another access PCI-E Capabilities Register. Signed-off-by: Yijing Wang <wangyijing@huawei.com> --- drivers/vfio/pci/vfio_pci_config.c | 6 +----- 1 files changed, 1 insertions(+), 5 deletions(-)