Skip to content

Commit

Permalink
alpha: fix breakage caused by df9ee29
Browse files Browse the repository at this point in the history
Commit df9ee29 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 d559d4a
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: Michael Cree <mcree@orcon.net.nz>
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Matt Turner <mattst88@gmail.com>
  • Loading branch information
Ivan Kokshaysky authored and Matt Turner committed Jan 17, 2011
1 parent 0064964 commit e2609f6
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions arch/alpha/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,18 @@
*/
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;
mb();
/* 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)
Expand Down

0 comments on commit e2609f6

Please sign in to comment.