Commit 08dfb031 authored by Jesse Barnes's avatar Jesse Barnes Committed by Tony Luck

[IA64] fix machine vectors for mmiowb

I left out some of the necessary machine vector magic in the mmiowb patch
which caused the generic build to break.  This patch fixes it up by properly
#defining it and #undefing it and adding a routine to lib/io.c.
Signed-off-by: default avatarJesse Barnes <jbarnes@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent dffbd6be
...@@ -73,6 +73,7 @@ EXPORT_SYMBOL(__ia64_memset_c_io); ...@@ -73,6 +73,7 @@ EXPORT_SYMBOL(__ia64_memset_c_io);
#undef __ia64_writew #undef __ia64_writew
#undef __ia64_writel #undef __ia64_writel
#undef __ia64_writeq #undef __ia64_writeq
#undef __ia64_mmiowb
unsigned int unsigned int
__ia64_inb (unsigned long port) __ia64_inb (unsigned long port)
...@@ -158,4 +159,10 @@ __ia64_readq_relaxed (void __iomem *addr) ...@@ -158,4 +159,10 @@ __ia64_readq_relaxed (void __iomem *addr)
return ___ia64_readq (addr); return ___ia64_readq (addr);
} }
void
__ia64_mmiowb(void)
{
___ia64_mmiowb();
}
#endif /* CONFIG_IA64_GENERIC */ #endif /* CONFIG_IA64_GENERIC */
...@@ -92,7 +92,7 @@ extern int valid_phys_addr_range (unsigned long addr, size_t *count); /* efi.c * ...@@ -92,7 +92,7 @@ extern int valid_phys_addr_range (unsigned long addr, size_t *count); /* efi.c *
#define __ia64_mf_a() ia64_mfa() #define __ia64_mf_a() ia64_mfa()
/** /**
* __ia64_mmiowb - I/O write barrier * ___ia64_mmiowb - I/O write barrier
* *
* Ensure ordering of I/O space writes. This will make sure that writes * Ensure ordering of I/O space writes. This will make sure that writes
* following the barrier will arrive after all previous writes. For most * following the barrier will arrive after all previous writes. For most
...@@ -100,7 +100,7 @@ extern int valid_phys_addr_range (unsigned long addr, size_t *count); /* efi.c * ...@@ -100,7 +100,7 @@ extern int valid_phys_addr_range (unsigned long addr, size_t *count); /* efi.c *
* *
* See Documentation/DocBook/deviceiobook.tmpl for more information. * See Documentation/DocBook/deviceiobook.tmpl for more information.
*/ */
static inline void __ia64_mmiowb(void) static inline void ___ia64_mmiowb(void)
{ {
ia64_mfa(); ia64_mfa();
} }
...@@ -147,6 +147,7 @@ __ia64_mk_io_addr (unsigned long port) ...@@ -147,6 +147,7 @@ __ia64_mk_io_addr (unsigned long port)
#define __ia64_writew ___ia64_writew #define __ia64_writew ___ia64_writew
#define __ia64_writel ___ia64_writel #define __ia64_writel ___ia64_writel
#define __ia64_writeq ___ia64_writeq #define __ia64_writeq ___ia64_writeq
#define __ia64_mmiowb ___ia64_mmiowb
/* /*
* For the in/out routines, we need to do "mf.a" _after_ doing the I/O access to ensure * For the in/out routines, we need to do "mf.a" _after_ doing the I/O access to ensure
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment