diff options
Diffstat (limited to 'lib/devres.c')
| -rw-r--r-- | lib/devres.c | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/devres.c b/lib/devres.c index 823533138fa..f562bf6ff71 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -81,11 +81,13 @@ EXPORT_SYMBOL(devm_ioremap_nocache);  void devm_iounmap(struct device *dev, void __iomem *addr)  {  	WARN_ON(devres_destroy(dev, devm_ioremap_release, devm_ioremap_match, -			       (void *)addr)); +			       (__force void *)addr));  	iounmap(addr);  }  EXPORT_SYMBOL(devm_iounmap); +#define IOMEM_ERR_PTR(err) (__force void __iomem *)ERR_PTR(err) +  /**   * devm_ioremap_resource() - check, request region, and ioremap resource   * @dev: generic device to handle the resource for @@ -114,7 +116,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)  	if (!res || resource_type(res) != IORESOURCE_MEM) {  		dev_err(dev, "invalid resource\n"); -		return ERR_PTR(-EINVAL); +		return IOMEM_ERR_PTR(-EINVAL);  	}  	size = resource_size(res); @@ -122,7 +124,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)  	if (!devm_request_mem_region(dev, res->start, size, name)) {  		dev_err(dev, "can't request region for resource %pR\n", res); -		return ERR_PTR(-EBUSY); +		return IOMEM_ERR_PTR(-EBUSY);  	}  	if (res->flags & IORESOURCE_CACHEABLE) @@ -133,7 +135,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)  	if (!dest_ptr) {  		dev_err(dev, "ioremap failed for resource %pR\n", res);  		devm_release_mem_region(dev, res->start, size); -		dest_ptr = ERR_PTR(-ENOMEM); +		dest_ptr = IOMEM_ERR_PTR(-ENOMEM);  	}  	return dest_ptr; @@ -155,12 +157,12 @@ EXPORT_SYMBOL(devm_ioremap_resource);   *	if (!base)   *		return -EADDRNOTAVAIL;   */ -void __iomem *devm_request_and_ioremap(struct device *device, +void __iomem *devm_request_and_ioremap(struct device *dev,  				       struct resource *res)  {  	void __iomem *dest_ptr; -	dest_ptr = devm_ioremap_resource(device, res); +	dest_ptr = devm_ioremap_resource(dev, res);  	if (IS_ERR(dest_ptr))  		return NULL; @@ -168,7 +170,7 @@ void __iomem *devm_request_and_ioremap(struct device *device,  }  EXPORT_SYMBOL(devm_request_and_ioremap); -#ifdef CONFIG_HAS_IOPORT +#ifdef CONFIG_HAS_IOPORT_MAP  /*   * Generic iomap devres   */ @@ -192,7 +194,7 @@ static int devm_ioport_map_match(struct device *dev, void *res,   * Managed ioport_map().  Map is automatically unmapped on driver   * detach.   */ -void __iomem * devm_ioport_map(struct device *dev, unsigned long port, +void __iomem *devm_ioport_map(struct device *dev, unsigned long port,  			       unsigned int nr)  {  	void __iomem **ptr, *addr; @@ -224,10 +226,10 @@ void devm_ioport_unmap(struct device *dev, void __iomem *addr)  {  	ioport_unmap(addr);  	WARN_ON(devres_destroy(dev, devm_ioport_map_release, -			       devm_ioport_map_match, (void *)addr)); +			       devm_ioport_map_match, (__force void *)addr));  }  EXPORT_SYMBOL(devm_ioport_unmap); -#endif /* CONFIG_HAS_IOPORT */ +#endif /* CONFIG_HAS_IOPORT_MAP */  #ifdef CONFIG_PCI  /* @@ -263,7 +265,7 @@ static void pcim_iomap_release(struct device *gendev, void *res)   * be safely called without context and guaranteed to succed once   * allocated.   */ -void __iomem * const * pcim_iomap_table(struct pci_dev *pdev) +void __iomem * const *pcim_iomap_table(struct pci_dev *pdev)  {  	struct pcim_iomap_devres *dr, *new_dr; @@ -288,7 +290,7 @@ EXPORT_SYMBOL(pcim_iomap_table);   * Managed pci_iomap().  Map is automatically unmapped on driver   * detach.   */ -void __iomem * pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen) +void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen)  {  	void __iomem **tbl;  | 
