summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/traps.c
diff options
context:
space:
mode:
authoranton@samba.org <anton@samba.org>2007-03-21 02:38:12 +0100
committerPaul Mackerras <paulus@samba.org>2007-03-26 04:34:29 +0200
commit6031d9d9ad905b514bf45572bd1877fe6b5145ab (patch)
tree8562f0e11b1af2827625002bc7f672d8a66189b1 /arch/powerpc/kernel/traps.c
parent[POWERPC] Add missing oops_enter/oops_exit (diff)
downloadlinux-6031d9d9ad905b514bf45572bd1877fe6b5145ab.tar.xz
linux-6031d9d9ad905b514bf45572bd1877fe6b5145ab.zip
[POWERPC] Clean up pmac_backlight_unblank in oops path
Move pmac_backlight_unblank into its own function and only take the pmac_backlight_mutex when we are on a pmac for that added bit of paranoia. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/traps.c')
-rw-r--r--arch/powerpc/kernel/traps.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 23f43b44bba6..6297da743db9 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -90,6 +90,24 @@ EXPORT_SYMBOL(unregister_die_notifier);
* Trap & Exception support
*/
+#ifdef CONFIG_PMAC_BACKLIGHT
+static void pmac_backlight_unblank(void)
+{
+ mutex_lock(&pmac_backlight_mutex);
+ if (pmac_backlight) {
+ struct backlight_properties *props;
+
+ props = &pmac_backlight->props;
+ props->brightness = props->max_brightness;
+ props->power = FB_BLANK_UNBLANK;
+ backlight_update_status(pmac_backlight);
+ }
+ mutex_unlock(&pmac_backlight_mutex);
+}
+#else
+static inline void pmac_backlight_unblank(void) { }
+#endif
+
static DEFINE_SPINLOCK(die_lock);
int die(const char *str, struct pt_regs *regs, long err)
@@ -104,18 +122,9 @@ int die(const char *str, struct pt_regs *regs, long err)
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (machine_is(powermac) && pmac_backlight) {
- struct backlight_properties *props;
+ if (machine_is(powermac))
+ pmac_backlight_unblank();
- props = &pmac_backlight->props;
- props->brightness = props->max_brightness;
- props->power = FB_BLANK_UNBLANK;
- backlight_update_status(pmac_backlight);
- }
- mutex_unlock(&pmac_backlight_mutex);
-#endif
printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
#ifdef CONFIG_PREEMPT
printk("PREEMPT ");