On Sat, Dec 23, 2017 at 07:02:59PM +0800, Yisheng Xie wrote: > --- a/lib/devres.c > +++ b/lib/devres.c > @@ -44,35 +44,6 @@ void __iomem *devm_ioremap(struct device *dev, resource_size_t offset, > EXPORT_SYMBOL(devm_ioremap); > > /** > - * devm_ioremap_nocache - Managed ioremap_nocache() > - * @dev: Generic device to remap IO address for > - * @offset: Resource address to map > - * @size: Size of map > - * > - * Managed ioremap_nocache(). Map is automatically unmapped on driver > - * detach. > - */ > -void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset, > - resource_size_t size) > -{ > - void __iomem **ptr, *addr; > - > - ptr = devres_alloc(devm_ioremap_release, sizeof(*ptr), GFP_KERNEL); > - if (!ptr) > - return NULL; > - > - addr = ioremap_nocache(offset, size); Wait, devm_ioremap() calls ioremap(), not ioremap_nocache(), are you _SURE_ that these are all identical? For all arches? If so, then ioremap_nocache() can also be removed, right? In my quick glance, I don't think you can do this series at all :( greg k-h