lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 4 Aug 2021 18:29:37 -0500 From: Bjorn Helgaas <helgaas@...nel.org> To: Dongdong Liu <liudongdong3@...wei.com> Cc: hch@...radead.org, kw@...ux.com, logang@...tatee.com, leon@...nel.org, linux-pci@...r.kernel.org, rajur@...lsio.com, hverkuil-cisco@...all.nl, linux-media@...r.kernel.org, netdev@...r.kernel.org Subject: Re: [PATCH V7 5/9] PCI/IOV: Enable 10-Bit tag support for PCIe VF devices On Wed, Aug 04, 2021 at 09:47:04PM +0800, Dongdong Liu wrote: > Enable VF 10-Bit Tag Requester when it's upstream component support > 10-bit Tag Completer. s/it's/its/ s/support/supports/ I think "upstream component" here means the PF, doesn't it? I don't think the PF is really an *upstream* component; there's no routing like with a switch. > Signed-off-by: Dongdong Liu <liudongdong3@...wei.com> > Reviewed-by: Christoph Hellwig <hch@....de> > --- > drivers/pci/iov.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c > index dafdc65..0d0bed1 100644 > --- a/drivers/pci/iov.c > +++ b/drivers/pci/iov.c > @@ -634,6 +634,10 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn) > > pci_iov_set_numvfs(dev, nr_virtfn); > iov->ctrl |= PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE; > + if ((iov->cap & PCI_SRIOV_CAP_VF_10BIT_TAG_REQ) && > + dev->ext_10bit_tag) > + iov->ctrl |= PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN; > + > pci_cfg_access_lock(dev); > pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); > msleep(100); > @@ -650,6 +654,8 @@ static int sriov_enable(struct pci_dev *dev, int nr_virtfn) > > err_pcibios: > iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); > + if (iov->ctrl & PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN) > + iov->ctrl &= ~PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN; > pci_cfg_access_lock(dev); > pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); > ssleep(1); > @@ -682,6 +688,8 @@ static void sriov_disable(struct pci_dev *dev) > > sriov_del_vfs(dev); > iov->ctrl &= ~(PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE); > + if (iov->ctrl & PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN) > + iov->ctrl &= ~PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN; You can just clear PCI_SRIOV_CTRL_VF_10BIT_TAG_REQ_EN unconditionally, can't you? I know it wouldn't change anything, but removing the "if" makes the code prettier. You could just add it in the existing PCI_SRIOV_CTRL_VFE | PCI_SRIOV_CTRL_MSE mask. > pci_cfg_access_lock(dev); > pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, iov->ctrl); > ssleep(1); > -- > 2.7.4 >
Powered by blists - more mailing lists