Commit e2609f6a authored by Ivan Kokshaysky's avatar Ivan Kokshaysky Committed by Matt Turner

alpha: fix breakage caused by df9ee292

Commit df9ee292 made arch_local_irq_save and arch_local_irq_restore
static inline which with -Werror trips up on __set_hae() and _set_hae()
which are extern inline.  The naive solution is to make __set_hae() and
set_hae() static inline but for reasons described in commit d559d4a2
this breaks the generic kernel build.  Instead, since this is architecture
specific code, this patch hard wires in the architecture specific method
f disabling and enabling interrupts.
Tested-by: default avatarMichael Cree <mcree@orcon.net.nz>
Signed-off-by: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
parent 00649643
......@@ -37,8 +37,9 @@
*/
extern inline void __set_hae(unsigned long new_hae)
{
unsigned long flags;
local_irq_save(flags);
unsigned long flags = swpipl(IPL_MAX);
barrier();
alpha_mv.hae_cache = new_hae;
*alpha_mv.hae_register = new_hae;
......@@ -46,7 +47,8 @@ extern inline void __set_hae(unsigned long new_hae)
/* Re-read to make sure it was written. */
new_hae = *alpha_mv.hae_register;
local_irq_restore(flags);
setipl(flags);
barrier();
}
extern inline void set_hae(unsigned long new_hae)
......
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