x86: change ioremap() to default to uncached
Prepare ioremap() to default to uncached. This will be the safest - but first we have to fix CPA. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
5a96f4a55c
commit
6371b49599
|
@ -111,18 +111,27 @@ extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsign
|
||||||
* make bus memory CPU accessible via the readb/readw/readl/writeb/
|
* make bus memory CPU accessible via the readb/readw/readl/writeb/
|
||||||
* writew/writel functions and the other mmio helpers. The returned
|
* writew/writel functions and the other mmio helpers. The returned
|
||||||
* address is not guaranteed to be usable directly as a virtual
|
* address is not guaranteed to be usable directly as a virtual
|
||||||
* address.
|
* address.
|
||||||
*
|
*
|
||||||
* If the area you are trying to map is a PCI BAR you should have a
|
* If the area you are trying to map is a PCI BAR you should have a
|
||||||
* look at pci_iomap().
|
* look at pci_iomap().
|
||||||
*/
|
*/
|
||||||
|
extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
|
||||||
|
|
||||||
static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
|
static inline void __iomem *
|
||||||
|
ioremap_cache(unsigned long offset, unsigned long size)
|
||||||
{
|
{
|
||||||
return __ioremap(offset, size, 0);
|
return __ioremap(offset, size, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
|
/*
|
||||||
|
* The default ioremap() behavior is non-cached:
|
||||||
|
*/
|
||||||
|
static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
|
||||||
|
{
|
||||||
|
return ioremap_nocache(offset, size);
|
||||||
|
}
|
||||||
|
|
||||||
extern void iounmap(volatile void __iomem *addr);
|
extern void iounmap(volatile void __iomem *addr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -152,11 +152,6 @@ static inline void * phys_to_virt(unsigned long address)
|
||||||
|
|
||||||
extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags);
|
extern void __iomem *__ioremap(unsigned long offset, unsigned long size, unsigned long flags);
|
||||||
|
|
||||||
static inline void __iomem * ioremap (unsigned long offset, unsigned long size)
|
|
||||||
{
|
|
||||||
return __ioremap(offset, size, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern void *early_ioremap(unsigned long addr, unsigned long size);
|
extern void *early_ioremap(unsigned long addr, unsigned long size);
|
||||||
extern void early_iounmap(void *addr, unsigned long size);
|
extern void early_iounmap(void *addr, unsigned long size);
|
||||||
|
|
||||||
|
@ -165,8 +160,24 @@ extern void early_iounmap(void *addr, unsigned long size);
|
||||||
* it's useful if some control registers are in such an area and write combining
|
* it's useful if some control registers are in such an area and write combining
|
||||||
* or read caching is not desirable:
|
* or read caching is not desirable:
|
||||||
*/
|
*/
|
||||||
extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);
|
extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
|
||||||
|
|
||||||
|
static inline void __iomem *
|
||||||
|
ioremap_cache(unsigned long offset, unsigned long size)
|
||||||
|
{
|
||||||
|
return __ioremap(offset, size, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The default ioremap() behavior is non-cached:
|
||||||
|
*/
|
||||||
|
static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
|
||||||
|
{
|
||||||
|
return ioremap_cache(offset, size);
|
||||||
|
}
|
||||||
|
|
||||||
extern void iounmap(volatile void __iomem *addr);
|
extern void iounmap(volatile void __iomem *addr);
|
||||||
|
|
||||||
extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
|
extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue