From: James Sewart <jamessewart@arista.com> To: linux-pci@vger.kernel.org Cc: Logan Gunthorpe <logang@deltatee.com>, Christoph Hellwig <hch@infradead.org>, Dmitry Safonov <0x7f454c46@gmail.com>, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Dmitry Safonov <dima@arista.com>, Alex Williamson <alex.williamson@redhat.com>, Bjorn Helgaas <helgaas@kernel.org> Subject: [PATCH v6 1/3] PCI: Fix off by one in dma_alias_mask allocation size Date: Tue, 3 Dec 2019 15:43:22 +0000 [thread overview] Message-ID: <910070E3-7964-4549-B77F-EC7FC6144503@arista.com> (raw) The number of possible devfns is 256, add def and correct uses. Reviewed-by: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: James Sewart <jamessewart@arista.com> --- drivers/pci/pci.c | 2 +- drivers/pci/search.c | 2 +- include/linux/pci.h | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index a97e2571a527..d3c83248f3ce 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5876,7 +5876,7 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode, void pci_add_dma_alias(struct pci_dev *dev, u8 devfn) { if (!dev->dma_alias_mask) - dev->dma_alias_mask = bitmap_zalloc(U8_MAX, GFP_KERNEL); + dev->dma_alias_mask = bitmap_zalloc(MAX_NR_DEVFNS, GFP_KERNEL); if (!dev->dma_alias_mask) { pci_warn(dev, "Unable to allocate DMA alias mask\n"); return; diff --git a/drivers/pci/search.c b/drivers/pci/search.c index bade14002fd8..9e4dfae47252 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c @@ -43,7 +43,7 @@ int pci_for_each_dma_alias(struct pci_dev *pdev, if (unlikely(pdev->dma_alias_mask)) { u8 devfn; - for_each_set_bit(devfn, pdev->dma_alias_mask, U8_MAX) { + for_each_set_bit(devfn, pdev->dma_alias_mask, MAX_NR_DEVFNS) { ret = fn(pdev, PCI_DEVID(pdev->bus->number, devfn), data); if (ret) diff --git a/include/linux/pci.h b/include/linux/pci.h index 1a6cf19eac2d..6481da29d667 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -57,6 +57,8 @@ #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn)) /* return bus from PCI devid = ((u16)bus_number) << 8) | devfn */ #define PCI_BUS_NUM(x) (((x) >> 8) & 0xff) +/* Number of possible devfns. devfns can be from 0.0 to 1f.7 inclusive */ +#define MAX_NR_DEVFNS 256 /* pci_slot represents a physical slot */ struct pci_slot { -- 2.24.0
WARNING: multiple messages have this Message-ID (diff)
From: James Sewart via iommu <iommu@lists.linux-foundation.org> To: linux-pci@vger.kernel.org Cc: Alex Williamson <alex.williamson@redhat.com>, Dmitry Safonov <dima@arista.com>, Dmitry Safonov <0x7f454c46@gmail.com>, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Bjorn Helgaas <helgaas@kernel.org>, Logan Gunthorpe <logang@deltatee.com> Subject: [PATCH v6 1/3] PCI: Fix off by one in dma_alias_mask allocation size Date: Tue, 3 Dec 2019 15:43:22 +0000 [thread overview] Message-ID: <910070E3-7964-4549-B77F-EC7FC6144503@arista.com> (raw) The number of possible devfns is 256, add def and correct uses. Reviewed-by: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: James Sewart <jamessewart@arista.com> --- drivers/pci/pci.c | 2 +- drivers/pci/search.c | 2 +- include/linux/pci.h | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index a97e2571a527..d3c83248f3ce 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5876,7 +5876,7 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode, void pci_add_dma_alias(struct pci_dev *dev, u8 devfn) { if (!dev->dma_alias_mask) - dev->dma_alias_mask = bitmap_zalloc(U8_MAX, GFP_KERNEL); + dev->dma_alias_mask = bitmap_zalloc(MAX_NR_DEVFNS, GFP_KERNEL); if (!dev->dma_alias_mask) { pci_warn(dev, "Unable to allocate DMA alias mask\n"); return; diff --git a/drivers/pci/search.c b/drivers/pci/search.c index bade14002fd8..9e4dfae47252 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c @@ -43,7 +43,7 @@ int pci_for_each_dma_alias(struct pci_dev *pdev, if (unlikely(pdev->dma_alias_mask)) { u8 devfn; - for_each_set_bit(devfn, pdev->dma_alias_mask, U8_MAX) { + for_each_set_bit(devfn, pdev->dma_alias_mask, MAX_NR_DEVFNS) { ret = fn(pdev, PCI_DEVID(pdev->bus->number, devfn), data); if (ret) diff --git a/include/linux/pci.h b/include/linux/pci.h index 1a6cf19eac2d..6481da29d667 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -57,6 +57,8 @@ #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn)) /* return bus from PCI devid = ((u16)bus_number) << 8) | devfn */ #define PCI_BUS_NUM(x) (((x) >> 8) & 0xff) +/* Number of possible devfns. devfns can be from 0.0 to 1f.7 inclusive */ +#define MAX_NR_DEVFNS 256 /* pci_slot represents a physical slot */ struct pci_slot { -- 2.24.0 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next reply other threads:[~2019-12-03 15:43 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-03 15:43 James Sewart [this message] 2019-12-03 15:43 ` [PATCH v6 1/3] PCI: Fix off by one in dma_alias_mask allocation size James Sewart via iommu 2019-12-03 15:43 ` [PATCH v6 2/3] PCI: Add parameter nr_devfns to pci_add_dma_alias James Sewart 2019-12-03 15:43 ` James Sewart via iommu 2019-12-03 15:44 ` [PATCH v6 3/3] PCI: Add DMA alias quirk for PLX PEX NTB James Sewart 2019-12-03 15:44 ` James Sewart via iommu 2019-12-08 0:48 ` [PATCH v6 2/3] PCI: Add parameter nr_devfns to pci_add_dma_alias kbuild test robot 2019-12-08 0:48 ` kbuild test robot 2019-12-08 0:48 ` kbuild test robot 2019-12-10 22:37 ` Bjorn Helgaas 2019-12-10 22:37 ` Bjorn Helgaas 2019-12-11 15:37 ` James Sewart 2019-12-11 15:37 ` James Sewart via iommu 2019-12-11 20:56 ` Bjorn Helgaas 2019-12-11 20:56 ` Bjorn Helgaas 2019-12-17 10:24 ` Joerg Roedel 2019-12-17 10:24 ` Joerg Roedel 2019-12-10 22:31 ` [PATCH v6 1/3] PCI: Fix off by one in dma_alias_mask allocation size Bjorn Helgaas 2019-12-10 22:31 ` Bjorn Helgaas
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=910070E3-7964-4549-B77F-EC7FC6144503@arista.com \ --to=jamessewart@arista.com \ --cc=0x7f454c46@gmail.com \ --cc=alex.williamson@redhat.com \ --cc=dima@arista.com \ --cc=hch@infradead.org \ --cc=helgaas@kernel.org \ --cc=iommu@lists.linux-foundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=logang@deltatee.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.