Re: [PATCH v2 05/12] PCI: Remove unused exclusive region support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 10, 2014 at 6:27 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:
> From: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
>
> My philosophy is unused code is dead code.  And dead code is subject to bit
> rot and is a likely source of bugs.  Use it or lose it.
>
> This reverts part of e8de1481fd71 ("resource: allow MMIO exclusivity for
> device drivers"), removing these interfaces:
>
>     pci_request_region_exclusive()
>     pci_request_regions_exclusive()
>
> [bhelgaas: split to separate patch, also remove prototypes from pci.h]
> Signed-off-by: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> CC: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>

I think I'm going to drop this patch for now and propose that we
instead revert e8de1481fd71 completely.  As far as I can tell, e1000e
is the only driver that  uses any of this, and that's only because of
the bug hunt, not because e1000e is special in any way.

Bjorn

> ---
>  drivers/pci/pci.c   |   46 ----------------------------------------------
>  include/linux/pci.h |    2 --
>  2 files changed, 48 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 6db2f1a441e9..730471a74fba 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -2443,28 +2443,6 @@ int pci_request_region(struct pci_dev *pdev, int bar, const char *res_name)
>  }
>
>  /**
> - *     pci_request_region_exclusive - Reserved PCI I/O and memory resource
> - *     @pdev: PCI device whose resources are to be reserved
> - *     @bar: BAR to be reserved
> - *     @res_name: Name to be associated with resource.
> - *
> - *     Mark the PCI region associated with PCI device @pdev BR @bar as
> - *     being reserved by owner @res_name.  Do not access any
> - *     address inside the PCI regions unless this call returns
> - *     successfully.
> - *
> - *     Returns 0 on success, or %EBUSY on error.  A warning
> - *     message is also printed on failure.
> - *
> - *     The key difference that _exclusive makes it that userspace is
> - *     explicitly not allowed to map the resource via /dev/mem or
> - *     sysfs.
> - */
> -int pci_request_region_exclusive(struct pci_dev *pdev, int bar, const char *res_name)
> -{
> -       return __pci_request_region(pdev, bar, res_name, IORESOURCE_EXCLUSIVE);
> -}
> -/**
>   * pci_release_selected_regions - Release selected PCI I/O and memory resources
>   * @pdev: PCI device whose resources were previously reserved
>   * @bars: Bitmask of BARs to be released
> @@ -2552,28 +2530,6 @@ int pci_request_regions(struct pci_dev *pdev, const char *res_name)
>         return pci_request_selected_regions(pdev, ((1 << 6) - 1), res_name);
>  }
>
> -/**
> - *     pci_request_regions_exclusive - Reserved PCI I/O and memory resources
> - *     @pdev: PCI device whose resources are to be reserved
> - *     @res_name: Name to be associated with resource.
> - *
> - *     Mark all PCI regions associated with PCI device @pdev as
> - *     being reserved by owner @res_name.  Do not access any
> - *     address inside the PCI regions unless this call returns
> - *     successfully.
> - *
> - *     pci_request_regions_exclusive() will mark the region so that
> - *     /dev/mem and the sysfs MMIO access will not be allowed.
> - *
> - *     Returns 0 on success, or %EBUSY on error.  A warning
> - *     message is also printed on failure.
> - */
> -int pci_request_regions_exclusive(struct pci_dev *pdev, const char *res_name)
> -{
> -       return pci_request_selected_regions_exclusive(pdev,
> -                                       ((1 << 6) - 1), res_name);
> -}
> -
>  static void __pci_set_master(struct pci_dev *dev, bool enable)
>  {
>         u16 old_cmd, cmd;
> @@ -4183,10 +4139,8 @@ EXPORT_SYMBOL(pci_find_capability);
>  EXPORT_SYMBOL(pci_bus_find_capability);
>  EXPORT_SYMBOL(pci_release_regions);
>  EXPORT_SYMBOL(pci_request_regions);
> -EXPORT_SYMBOL(pci_request_regions_exclusive);
>  EXPORT_SYMBOL(pci_release_region);
>  EXPORT_SYMBOL(pci_request_region);
> -EXPORT_SYMBOL(pci_request_region_exclusive);
>  EXPORT_SYMBOL(pci_release_selected_regions);
>  EXPORT_SYMBOL(pci_request_selected_regions);
>  EXPORT_SYMBOL(pci_request_selected_regions_exclusive);
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index f2284f1332db..efd0b8b67705 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1026,10 +1026,8 @@ void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
>                     int (*)(const struct pci_dev *, u8, u8));
>  #define HAVE_PCI_REQ_REGIONS   2
>  int __must_check pci_request_regions(struct pci_dev *, const char *);
> -int __must_check pci_request_regions_exclusive(struct pci_dev *, const char *);
>  void pci_release_regions(struct pci_dev *);
>  int __must_check pci_request_region(struct pci_dev *, int, const char *);
> -int __must_check pci_request_region_exclusive(struct pci_dev *, int, const char *);
>  void pci_release_region(struct pci_dev *, int);
>  int pci_request_selected_regions(struct pci_dev *, int, const char *);
>  int pci_request_selected_regions_exclusive(struct pci_dev *, int, const char *);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux