Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 68621
b: refs/heads/master
c: e8dd161
h: refs/heads/master
i:
  68619: 03f7817
v: v3
  • Loading branch information
Robert Reif authored and David S. Miller committed Oct 14, 2007
1 parent 45bdbf2 commit d990570
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 72be7e542c67a5a134e99ba19d1846498ef8f9d2
refs/heads/master: e8dd16129fad13e5b8b05b6a0a02d10d06f30301
4 changes: 4 additions & 0 deletions trunk/arch/sparc/Kconfig.debug
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
menu "Kernel hacking"

config TRACE_IRQFLAGS_SUPPORT
bool
default y

source "lib/Kconfig.debug"

config DEBUG_STACK_USAGE
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/sparc/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
#define SMP_NOP2
#define SMP_NOP3
#endif /* SMP */
unsigned long __local_irq_save(void)
unsigned long __raw_local_irq_save(void)
{
unsigned long retval;
unsigned long tmp;
Expand All @@ -74,7 +74,7 @@ unsigned long __local_irq_save(void)
return retval;
}

void local_irq_enable(void)
void raw_local_irq_enable(void)
{
unsigned long tmp;

Expand All @@ -89,7 +89,7 @@ void local_irq_enable(void)
: "memory");
}

void local_irq_restore(unsigned long old_psr)
void raw_local_irq_restore(unsigned long old_psr)
{
unsigned long tmp;

Expand All @@ -105,9 +105,9 @@ void local_irq_restore(unsigned long old_psr)
: "memory");
}

EXPORT_SYMBOL(__local_irq_save);
EXPORT_SYMBOL(local_irq_enable);
EXPORT_SYMBOL(local_irq_restore);
EXPORT_SYMBOL(__raw_local_irq_save);
EXPORT_SYMBOL(raw_local_irq_enable);
EXPORT_SYMBOL(raw_local_irq_restore);

/*
* Dave Redman (djhr@tadpole.co.uk)
Expand Down
39 changes: 39 additions & 0 deletions trunk/include/asm-sparc/irqflags.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* include/asm-sparc/irqflags.h
*
* IRQ flags handling
*
* This file gets included from lowlevel asm headers too, to provide
* wrapped versions of the local_irq_*() APIs, based on the
* raw_local_irq_*() functions from the lowlevel headers.
*/
#ifndef _ASM_IRQFLAGS_H
#define _ASM_IRQFLAGS_H

#ifndef __ASSEMBLY__

extern void raw_local_irq_restore(unsigned long);
extern unsigned long __raw_local_irq_save(void);
extern void raw_local_irq_enable(void);

static inline unsigned long getipl(void)
{
unsigned long retval;

__asm__ __volatile__("rd %%psr, %0" : "=r" (retval));
return retval;
}

#define raw_local_save_flags(flags) ((flags) = getipl())
#define raw_local_irq_save(flags) ((flags) = __raw_local_irq_save())
#define raw_local_irq_disable() ((void) __raw_local_irq_save())
#define raw_irqs_disabled() ((getipl() & PSR_PIL) != 0)

static inline int raw_irqs_disabled_flags(unsigned long flags)
{
return ((flags & PSR_PIL) != 0);
}

#endif /* (__ASSEMBLY__) */

#endif /* !(_ASM_IRQFLAGS_H) */
22 changes: 2 additions & 20 deletions trunk/include/asm-sparc/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

#ifndef __ASSEMBLY__

#include <linux/irqflags.h>

/*
* Sparc (general) CPU types
*/
Expand Down Expand Up @@ -164,26 +166,6 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr,
"o0", "o1", "o2", "o3", "o7"); \
} while(0)
/*
* Changing the IRQ level on the Sparc.
*/
extern void local_irq_restore(unsigned long);
extern unsigned long __local_irq_save(void);
extern void local_irq_enable(void);

static inline unsigned long getipl(void)
{
unsigned long retval;

__asm__ __volatile__("rd %%psr, %0" : "=r" (retval));
return retval;
}

#define local_save_flags(flags) ((flags) = getipl())
#define local_irq_save(flags) ((flags) = __local_irq_save())
#define local_irq_disable() ((void) __local_irq_save())
#define irqs_disabled() ((getipl() & PSR_PIL) != 0)

/* XXX Change this if we ever use a PSO mode kernel. */
#define mb() __asm__ __volatile__ ("" : : : "memory")
#define rmb() mb()
Expand Down

0 comments on commit d990570

Please sign in to comment.