* [PATCH 2/2] i386: Disallow kprobes on NMI handlers
@ 2006-08-10 10:36 Fernando Luis Vázquez Cao
0 siblings, 0 replies; only message in thread
From: Fernando Luis Vázquez Cao @ 2006-08-10 10:36 UTC (permalink / raw)
To: Andi Kleen; +Cc: prasanna, akpm, linux-kernel
A kprobe executes IRET early and that could cause NMI recursion and stack
corruption.
Note: This problem was originally identified by Andi Kleen. This patch
adds fixes not included in his original patch.
Signed-off-by: Fernando Vazquez <fernando@intellilink.co.jp>
---
diff -urNp linux-2.6.18-rc4-orig/arch/i386/kernel/mca.c linux-2.6.18-rc4/arch/i386/kernel/mca.c
--- linux-2.6.18-rc4-orig/arch/i386/kernel/mca.c 2006-08-10 17:24:15.000000000 +0900
+++ linux-2.6.18-rc4/arch/i386/kernel/mca.c 2006-08-10 19:34:37.000000000 +0900
@@ -414,7 +414,8 @@ subsys_initcall(mca_init);
/*--------------------------------------------------------------------*/
-static void mca_handle_nmi_device(struct mca_device *mca_dev, int check_flag)
+static __kprobes void
+mca_handle_nmi_device(struct mca_device *mca_dev, int check_flag)
{
int slot = mca_dev->slot;
@@ -444,7 +445,7 @@ static void mca_handle_nmi_device(struct
/*--------------------------------------------------------------------*/
-static int mca_handle_nmi_callback(struct device *dev, void *data)
+static int __kprobes mca_handle_nmi_callback(struct device *dev, void *data)
{
struct mca_device *mca_dev = to_mca_device(dev);
unsigned char pos5;
@@ -462,7 +463,7 @@ static int mca_handle_nmi_callback(struc
return 0;
}
-void mca_handle_nmi(void)
+void __kprobes mca_handle_nmi(void)
{
/* First try - scan the various adapters and see if a specific
* adapter was responsible for the error.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-08-10 10:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-10 10:36 [PATCH 2/2] i386: Disallow kprobes on NMI handlers Fernando Luis Vázquez Cao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.