Re: [PATCH] devres: implement pcim_iomap_regions_request_all()

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

 



On Tue, 11 Mar 2008 19:51:38 +0900 Tejun Heo <htejun@xxxxxxxxx> wrote:

> Some drivers need to reserve all PCI BARs to prevent other drivers
> misusing unoccupied BARs.  pcim_iomap_regions_request_all() requests
> all BARs and iomap specified BARs.
> 
> Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxx>
> Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
> Cc: Jeff Garzik <jeff@xxxxxxxxxx>
> ---
> After acked, it's probably best to push this through libata-dev as
> that's the only user for now.
> 
> Thanks.
> 
>  lib/devres.c |   25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> Index: work/lib/devres.c
> ===================================================================
> --- work.orig/lib/devres.c
> +++ work/lib/devres.c
> @@ -298,6 +298,31 @@ int pcim_iomap_regions(struct pci_dev *p
>  EXPORT_SYMBOL(pcim_iomap_regions);
>  
>  /**
> + * pcim_iomap_regions_request_all - Request all BARs and iomap specified ones
> + * @pdev: PCI device to map IO resources for
> + * @mask: Mask of BARs to iomap
> + * @name: Name used when requesting regions
> + *
> + * Request all PCI BARs and iomap regions specified by @mask.
> + */
> +int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
> +				   const char *name)
> +{
> +	int request_mask = ((1 << 6) - 1) & ~mask;
> +	int rc;
> +
> +	rc = pci_request_selected_regions(pdev, request_mask, name);
> +	if (rc)
> +		return rc;
> +
> +	rc = pcim_iomap_regions(pdev, mask, name);
> +	if (rc)
> +		pci_release_selected_regions(pdev, request_mask);
> +	return rc;
> +}
> +EXPORT_SYMBOL(pcim_iomap_regions_request_all);
> +
> +/**

err, I think you lost a bit.

drivers/ata/ahci.c: In function 'ahci_init_one':
drivers/ata/ahci.c:2247: error: implicit declaration of function 'pcim_iomap_regions_request_all'

--- a/include/linux/io.h~devres-implement-pcim_iomap_regions_request_all-fix
+++ a/include/linux/io.h
@@ -65,5 +65,7 @@ void __iomem * devm_ioremap_nocache(stru
 void devm_iounmap(struct device *dev, void __iomem *addr);
 int check_signature(const volatile void __iomem *io_addr,
 			const unsigned char *signature, int length);
+int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
+			const char *name)
 
 #endif /* _LINUX_IO_H */
_

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux