* [PATCH] Don't invade generic code unneccessarily
@ 2002-11-04 6:55 Stephen Rothwell
0 siblings, 0 replies; only message in thread
From: Stephen Rothwell @ 2002-11-04 6:55 UTC (permalink / raw)
To: James.Bottomley; +Cc: Linus, LKML
Hi James,
I think this a better way to get access to a sysrq key.
Patch against 2.5.45-BK recent.
Unbuilt, untested, but you should get the idea.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
diff -ruN 2.5.45-BK/arch/i386/mach-voyager/voyager_basic.c 2.5.45-BK-sfr.1/arch/i386/mach-voyager/voyager_basic.c
--- 2.5.45-BK/arch/i386/mach-voyager/voyager_basic.c 2002-10-31 14:05:08.000000000 +1100
+++ 2.5.45-BK-sfr.1/arch/i386/mach-voyager/voyager_basic.c 2002-11-04 17:50:23.000000000 +1100
@@ -21,6 +21,7 @@
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/reboot.h>
+#include <linux/sysrq.h>
#include <asm/io.h>
#include <asm/pgalloc.h>
#include <asm/voyager.h>
@@ -41,6 +42,21 @@
struct voyager_SUS *voyager_SUS = NULL;
+#ifdef CONFIG_SMP
+static void
+voyager_dump()
+{
+ /* get here via a sysrq */
+ voyager_smp_dump();
+}
+
+static struct sysrq_key_op sysrq_voyager_dump_op = {
+ .handler = voyager_dump,
+ .help_msg = "voyager",
+ .action_msg = "Dump Voyager Status\n",
+};
+#endif
+
void
voyager_detect(struct voyager_bios_info *bios)
{
@@ -62,6 +78,9 @@
printk("\n**WARNING**: Voyager HAL only supports Levels 4 and 5 Architectures at the moment\n\n");
/* install the power off handler */
pm_power_off = voyager_power_off;
+#ifdef CONFIG_SMP
+ register_sysrq_key('c', &sysrq_voyager_dump_op);
+#endif
} else {
printk("\n\n**WARNING**: No Voyager Subsystem Found\n");
}
@@ -143,15 +162,6 @@
return retval;
}
-void
-voyager_dump()
-{
- /* get here via a sysrq */
-#ifdef CONFIG_SMP
- voyager_smp_dump();
-#endif
-}
-
/* voyager specific handling code for timer interrupts. Used to hand
* off the timer tick to the SMP code, since the VIC doesn't have an
* internal timer (The QIC does, but that's another story). */
diff -ruN 2.5.45-BK/drivers/char/sysrq.c 2.5.45-BK-sfr.1/drivers/char/sysrq.c
--- 2.5.45-BK/drivers/char/sysrq.c 2002-11-02 12:26:03.000000000 +1100
+++ 2.5.45-BK-sfr.1/drivers/char/sysrq.c 2002-11-04 17:50:23.000000000 +1100
@@ -35,10 +35,6 @@
#include <asm/ptrace.h>
-#ifdef CONFIG_VOYAGER
-#include <asm/voyager.h>
-#endif
-
extern void reset_vc(unsigned int);
extern struct list_head super_blocks;
@@ -323,14 +319,6 @@
action_msg: "Terminate All Tasks",
};
-#ifdef CONFIG_VOYAGER
-static struct sysrq_key_op sysrq_voyager_dump_op = {
- handler: voyager_dump,
- help_msg: "voyager",
- action_msg: "Dump Voyager Status\n",
-};
-#endif
-
static void sysrq_handle_kill(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
{
@@ -364,11 +352,7 @@
it is handled specially on the sparc
and will never arrive */
/* b */ &sysrq_reboot_op,
-#ifdef CONFIG_VOYAGER
-/* c */ &sysrq_voyager_dump_op,
-#else
-/* c */ NULL,
-#endif
+/* c */ NULL, /* May be assigned at init time by SMP VOYAGER */
/* d */ NULL,
/* e */ &sysrq_term_op,
/* f */ NULL,
diff -ruN 2.5.45-BK/include/asm-i386/voyager.h 2.5.45-BK-sfr.1/include/asm-i386/voyager.h
--- 2.5.45-BK/include/asm-i386/voyager.h 2002-10-31 14:06:05.000000000 +1100
+++ 2.5.45-BK-sfr.1/include/asm-i386/voyager.h 2002-11-04 17:50:23.000000000 +1100
@@ -504,7 +504,6 @@
extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length);
extern void voyager_smp_intr_init(void);
extern __u8 voyager_extended_cmos_read(__u16 cmos_address);
-extern void voyager_dump(void);
extern void voyager_smp_dump(void);
extern void voyager_timer_interrupt(struct pt_regs *regs);
extern void smp_local_timer_interrupt(struct pt_regs * regs);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-11-04 6:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-04 6:55 [PATCH] Don't invade generic code unneccessarily Stephen Rothwell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).