ia64: rename ioremap_nocache to ioremap_uc
On ia64 ioremap_nocache fails if attributes don't match. Not other architectures does this, and we plan to get rid of ioremap_nocache. So get rid of the special semantics and define ioremap_nocache in terms of ioremap as no portable driver could rely on the behavior anyway. However x86 implements ioremap_uc in a similar way as the ia64 version of ioremap_nocache, in that it ignores the firmware tables. Switch ia64 to override ioremap_uc instead. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Родитель
315e5211ae
Коммит
fded1829a2
|
@ -256,16 +256,16 @@ static inline void outsl(unsigned long port, const void *src,
|
||||||
# ifdef __KERNEL__
|
# ifdef __KERNEL__
|
||||||
|
|
||||||
extern void __iomem * ioremap(unsigned long offset, unsigned long size);
|
extern void __iomem * ioremap(unsigned long offset, unsigned long size);
|
||||||
extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);
|
extern void __iomem * ioremap_uc(unsigned long offset, unsigned long size);
|
||||||
extern void iounmap (volatile void __iomem *addr);
|
extern void iounmap (volatile void __iomem *addr);
|
||||||
static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned long size)
|
static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned long size)
|
||||||
{
|
{
|
||||||
return ioremap(phys_addr, size);
|
return ioremap(phys_addr, size);
|
||||||
}
|
}
|
||||||
#define ioremap ioremap
|
#define ioremap ioremap
|
||||||
#define ioremap_nocache ioremap_nocache
|
#define ioremap_nocache ioremap
|
||||||
#define ioremap_cache ioremap_cache
|
#define ioremap_cache ioremap_cache
|
||||||
#define ioremap_uc ioremap_nocache
|
#define ioremap_uc ioremap_uc
|
||||||
#define iounmap iounmap
|
#define iounmap iounmap
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -99,14 +99,14 @@ ioremap (unsigned long phys_addr, unsigned long size)
|
||||||
EXPORT_SYMBOL(ioremap);
|
EXPORT_SYMBOL(ioremap);
|
||||||
|
|
||||||
void __iomem *
|
void __iomem *
|
||||||
ioremap_nocache (unsigned long phys_addr, unsigned long size)
|
ioremap_uc(unsigned long phys_addr, unsigned long size)
|
||||||
{
|
{
|
||||||
if (kern_mem_attribute(phys_addr, size) & EFI_MEMORY_WB)
|
if (kern_mem_attribute(phys_addr, size) & EFI_MEMORY_WB)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return __ioremap_uc(phys_addr);
|
return __ioremap_uc(phys_addr);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ioremap_nocache);
|
EXPORT_SYMBOL(ioremap_uc);
|
||||||
|
|
||||||
void
|
void
|
||||||
early_iounmap (volatile void __iomem *addr, unsigned long size)
|
early_iounmap (volatile void __iomem *addr, unsigned long size)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче