Re: [PATCH v5 2/3] PCI: Add parameter nr_devfns to pci_add_dma_alias

From: Christoph Hellwig
Date: Mon Dec 02 2019 - 12:04:01 EST


On Fri, Nov 29, 2019 at 05:56:55PM +0000, James Sewart wrote:
> pci_add_dma_alias can now be used to create a dma alias for a range of
> devfns.
>
> Signed-off-by: James Sewart <jamessewart@xxxxxxxxxx>
> ---
> drivers/pci/pci.c | 23 ++++++++++++++++++-----
> drivers/pci/quirks.c | 14 +++++++-------
> include/linux/pci.h | 2 +-
> 3 files changed, 26 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 0a4449a30ace..f9800a610ca1 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -5857,7 +5857,8 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode,
> /**
> * pci_add_dma_alias - Add a DMA devfn alias for a device
> * @dev: the PCI device for which alias is added
> - * @devfn: alias slot and function
> + * @devfn_from: alias slot and function
> + * @nr_devfns: Number of subsequent devfns to alias
> *
> * This helper encodes an 8-bit devfn as a bit number in dma_alias_mask
> * which is used to program permissible bus-devfn source addresses for DMA
> @@ -5873,8 +5874,14 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode,
> * cannot be left as a userspace activity). DMA aliases should therefore
> * be configured via quirks, such as the PCI fixup header quirk.
> */
> -void pci_add_dma_alias(struct pci_dev *dev, u8 devfn)
> +void pci_add_dma_alias(struct pci_dev *dev, u8 devfn_from, unsigned nr_devfns)
> {
> + int devfn_to;
> +
> + if (nr_devfns > U8_MAX+1)
> + nr_devfns = U8_MAX+1;

Missing whitespaces here as well. Also this could use max() and I
think you want a documented constants for MAX_NR_DEVFNS that documents
this "not off by one".