All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@novell.com>
To: "Andreas Kleen" <ak@suse.de>
Cc: <linux-kernel@vger.kernel.org>, <discuss@x86-64.org>
Subject: [PATCH 21/39] NLKD/x86-64 - core adjustments
Date: Wed, 09 Nov 2005 15:16:12 +0100	[thread overview]
Message-ID: <437212BC.76F0.0078.0@novell.com> (raw)
In-Reply-To: 4372127F.76F0.0078.0@novell.com

[-- Attachment #1: Type: text/plain, Size: 122 bytes --]

The core x86-64 NLKD adjustments to pre-existing code.

From: Jan Beulich <jbeulich@novell.com>

(actual patch attached)


[-- Attachment #2: linux-2.6.14-nlkd-x86_64.patch --]
[-- Type: application/octet-stream, Size: 13111 bytes --]

The core x86-64 NLKD adjustments to pre-existing code.

From: Jan Beulich <jbeulich@novell.com>

Index: 2.6.14-nlkd/arch/x86_64/ia32/ptrace32.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/ia32/ptrace32.c	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/ia32/ptrace32.c	2005-11-04 16:19:33.000000000 +0100
@@ -88,22 +88,32 @@ static int putreg32(struct task_struct *
 		return -EIO;
 
 	case offsetof(struct user32, u_debugreg[0]):
+		if (enable_debugreg(child, 0, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg0 = val;
 		break;
 
 	case offsetof(struct user32, u_debugreg[1]):
+		if (enable_debugreg(child, 1, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg1 = val;
 		break;
 
 	case offsetof(struct user32, u_debugreg[2]):
+		if (enable_debugreg(child, 2, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg2 = val;
 		break;
 
 	case offsetof(struct user32, u_debugreg[3]):
+		if (enable_debugreg(child, 3, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg3 = val;
 		break;
 
 	case offsetof(struct user32, u_debugreg[6]):
+		if (enable_debugreg(child, 6, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg6 = val;
 		break; 
 
@@ -112,8 +122,10 @@ static int putreg32(struct task_struct *
 		/* See arch/i386/kernel/ptrace.c for an explanation of
 		 * this awkward check.*/
 		for(i=0; i<4; i++)
-			if ((0x5454 >> ((val >> (16 + 4*i)) & 0xf)) & 1)
+			if ((0x5554 >> ((val >> (16 + 4*i)) & 0xf)) & 1)
 			       return -EIO;
+		if (enable_debugreg(child, 7, val) < 0)
+			return -EBUSY;
 		child->thread.debugreg7 = val; 
 		break; 
 		    
Index: 2.6.14-nlkd/arch/x86_64/kernel/process.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/process.c	2005-11-04 16:19:33.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/process.c	2005-11-04 16:19:33.000000000 +0100
@@ -50,6 +50,7 @@
 #include <asm/desc.h>
 #include <asm/proto.h>
 #include <asm/ia32.h>
+#include <asm/debugreg.h>
 
 asmlinkage extern void ret_from_fork(void);
 
@@ -346,6 +347,10 @@ void exit_thread(void)
 		t->io_bitmap_max = 0;
 		put_cpu();
 	}
+	if (me->thread.debugreg7) {
+		enable_debugreg(me, 7, 0);
+		me->thread.debugreg7 = 0;
+	}
 }
 
 void flush_thread(void)
@@ -363,6 +368,8 @@ void flush_thread(void)
 	if (t->flags & _TIF_ABI_PENDING)
 		t->flags ^= (_TIF_ABI_PENDING | _TIF_IA32);
 
+	if (tsk->thread.debugreg7)
+		enable_debugreg(tsk, 7, 0);
 	tsk->thread.debugreg0 = 0;
 	tsk->thread.debugreg1 = 0;
 	tsk->thread.debugreg2 = 0;
@@ -477,6 +484,13 @@ int copy_thread(int nr, unsigned long cl
 		if (err) 
 			goto out;
 	}
+
+	if (me->thread.debugreg7) {
+		p->thread.debugreg7 = 0;
+		enable_debugreg(p, 7, me->thread.debugreg7);
+		p->thread.debugreg7 = me->thread.debugreg7;
+	}
+
 	err = 0;
 out:
 	if (err && p->thread.io_bitmap_ptr) {
@@ -489,7 +503,7 @@ out:
 /*
  * This special macro can be used to load a debugging register
  */
-#define loaddebug(thread,r) set_debug(thread->debugreg ## r, r)
+#define loaddebug(thread,r) set_debugreg(thread->debugreg ## r, r)
 
 /*
  *	switch_to(x,y) should switch tasks from x to y.
Index: 2.6.14-nlkd/arch/x86_64/kernel/ptrace.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/ptrace.c	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/ptrace.c	2005-11-04 16:19:33.000000000 +0100
@@ -433,42 +433,66 @@ asmlinkage long sys_ptrace(long request,
 		/* Disallows to set a breakpoint into the vsyscall */
 		case offsetof(struct user, u_debugreg[0]):
 			if (data >= TASK_SIZE_OF(child) - dsize) break;
+			if (enable_debugreg(child, 0, data) < 0) {
+				ret = -EBUSY;
+				break;
+			}
 			child->thread.debugreg0 = data;
 			ret = 0;
 			break;
 		case offsetof(struct user, u_debugreg[1]):
 			if (data >= TASK_SIZE_OF(child) - dsize) break;
+			if (enable_debugreg(child, 1, data) < 0) {
+				ret = -EBUSY;
+				break;
+			}
 			child->thread.debugreg1 = data;
 			ret = 0;
 			break;
 		case offsetof(struct user, u_debugreg[2]):
 			if (data >= TASK_SIZE_OF(child) - dsize) break;
+			if (enable_debugreg(child, 2, data) < 0) {
+				ret = -EBUSY;
+				break;
+			}
 			child->thread.debugreg2 = data;
 			ret = 0;
 			break;
 		case offsetof(struct user, u_debugreg[3]):
 			if (data >= TASK_SIZE_OF(child) - dsize) break;
+			if (enable_debugreg(child, 3, data) < 0) {
+				ret = -EBUSY;
+				break;
+			}
 			child->thread.debugreg3 = data;
 			ret = 0;
 			break;
 		case offsetof(struct user, u_debugreg[6]):
-				  if (data >> 32)
+			if (data >> 32)
 				break; 
+			if (enable_debugreg(child, 6, data) < 0) {
+				ret = -EBUSY;
+				break;
+			}
 			child->thread.debugreg6 = data;
 			ret = 0;
 			break;
 		case offsetof(struct user, u_debugreg[7]):
 			/* See arch/i386/kernel/ptrace.c for an explanation of
 			 * this awkward check.*/
-				  data &= ~DR_CONTROL_RESERVED;
-				  for(i=0; i<4; i++)
-					  if ((0x5454 >> ((data >> (16 + 4*i)) & 0xf)) & 1)
+			data &= ~DR_CONTROL_RESERVED;
+			for(i=0; i<4; i++)
+				if ((0x5554 >> ((data >> (16 + 4*i)) & 0xf)) & 1)
 					break;
 			if (i == 4) {
+				if (enable_debugreg(child, 7, data) < 0) {
+					ret = -EBUSY;
+					break;
+				}
 				child->thread.debugreg7 = data;
-			  ret = 0;
-		  }
-		  break;
+				ret = 0;
+			}
+			break;
 		}
 		break;
 	}
Index: 2.6.14-nlkd/arch/x86_64/kernel/setup64.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/setup64.c	2005-11-04 16:19:33.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/setup64.c	2005-11-04 16:19:33.000000000 +0100
@@ -25,6 +25,7 @@
 #include <asm/percpu.h>
 #include <asm/proto.h>
 #include <asm/sections.h>
+#include <asm/debugreg.h>
 
 char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,};
 
@@ -289,12 +290,12 @@ void __cpuinit cpu_init (void)
 	 * Clear all 6 debug registers:
 	 */
 
-	set_debug(0UL, 0);
-	set_debug(0UL, 1);
-	set_debug(0UL, 2);
-	set_debug(0UL, 3);
-	set_debug(0UL, 6);
-	set_debug(0UL, 7);
+	set_debugreg(0UL, 0);
+	set_debugreg(0UL, 1);
+	set_debugreg(0UL, 2);
+	set_debugreg(0UL, 3);
+	set_debugreg(0UL, 6);
+	set_debugreg(0UL, 7);
 
 	fpu_init(); 
 }
Index: 2.6.14-nlkd/arch/x86_64/kernel/signal.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/signal.c	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/signal.c	2005-11-04 16:19:33.000000000 +0100
@@ -29,6 +29,7 @@
 #include <asm/i387.h>
 #include <asm/proto.h>
 #include <asm/ia32_unistd.h>
+#include <asm/debugreg.h>
 
 /* #define DEBUG_SIG 1 */
 
@@ -439,8 +440,8 @@ int do_signal(struct pt_regs *regs, sigs
 		 * have been cleared if the watchpoint triggered
 		 * inside the kernel.
 		 */
-		if (current->thread.debugreg7)
-			set_debugreg(current->thread.debugreg7, 7);
+		if (unlikely(current->thread.debugreg7))
+			restore_debugreg();
 
 		/* Whee!  Actually deliver the signal.  */
 		return handle_signal(signr, &info, &ka, oldset, regs);
Index: 2.6.14-nlkd/arch/x86_64/kernel/suspend.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/suspend.c	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/suspend.c	2005-11-04 17:52:58.000000000 +0100
@@ -13,6 +13,7 @@
 #include <asm/proto.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
+#include <asm/debugreg.h>
 
 struct saved_context saved_context;
 
Index: 2.6.14-nlkd/arch/x86_64/kernel/traps.c
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/traps.c	2005-11-09 11:19:36.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/traps.c	2005-11-07 09:33:53.000000000 +0100
@@ -784,7 +784,7 @@ asmlinkage void __kprobes do_debug(struc
 	info.si_addr = (void __user *)regs->rip;
 	force_sig_info(SIGTRAP, &info, tsk);	
 clear_dr7:
-	set_debugreg(0UL, 7);
+	disable_debugreg(regs, 7);
 	return;
 
 clear_TF_reenable:
Index: 2.6.14-nlkd/arch/x86_64/kernel/vmlinux.lds.S
===================================================================
--- 2.6.14-nlkd.orig/arch/x86_64/kernel/vmlinux.lds.S	2005-11-04 16:19:33.000000000 +0100
+++ 2.6.14-nlkd/arch/x86_64/kernel/vmlinux.lds.S	2005-11-04 16:19:33.000000000 +0100
@@ -144,6 +144,12 @@ SECTIONS
   __setup_start = .;
   .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { *(.init.setup) }
   __setup_end = .;
+#ifdef CONFIG_NLKD
+  . = ALIGN(8);
+  __start_nlkd_ext = .;
+  .nlkd.ext : AT(ADDR(.nlkd.ext) - LOAD_OFFSET) { *(.nlkd.ext) }
+  __stop_nlkd_ext = .;
+#endif
   __initcall_start = .;
   .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
 	*(.initcall1.init) 
Index: 2.6.14-nlkd/include/asm-x86_64/debugreg.h
===================================================================
--- 2.6.14-nlkd.orig/include/asm-x86_64/debugreg.h	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/include/asm-x86_64/debugreg.h	2005-11-04 16:19:34.000000000 +0100
@@ -62,4 +62,54 @@
 #define DR_LOCAL_SLOWDOWN (0x100)   /* Local slow the pipeline */
 #define DR_GLOBAL_SLOWDOWN (0x200)  /* Global slow the pipeline */
 
+#ifdef CONFIG_NLKD
+
+# include <linux/nint.h>
+
+struct pt_regs;
+struct task_struct;
+
+# ifdef CONFIG_CDE
+#  define MAYBE_INDIR(x) x
+#  define set_debugreg(val, reg) ((void)(val), (void)(reg))
+# else
+#  define MAYBE_INDIR(x) (*x)
+extern void (*set_debugreg)(uintptr_t value, nuint_t regnum);
+# endif
+
+extern int MAYBE_INDIR(enable_debugreg)(struct task_struct *, nuint_t regnum, uintptr_t value);
+extern int MAYBE_INDIR(disable_debugreg)(struct pt_regs *, nuint_t regnum);
+extern int MAYBE_INDIR(restore_debugreg)(void);
+
+# undef MAYBE_INDIR
+
+#else
+
+# define set_debugreg(value, register)				\
+		__asm__("movq %0,%%db" #register		\
+			: /* no output */			\
+			:"r" (value))
+# define enable_debugreg(task, regnum, value) ({		\
+		(void)(task);					\
+		(void)(regnum);					\
+		(void)(value);					\
+		0;						\
+	})
+# define disable_debugreg(regs, regnum) ({			\
+		(void)(regs);					\
+		(void)(regnum);					\
+		set_debugreg(0UL, 7);				\
+		0;						\
+	})
+# define restore_debugreg() ({					\
+		set_debugreg(current->thread.debugreg7, 7);	\
+		0;						\
+	})
+
+#endif /* CONFIG_NLKD */
+
+#define get_debugreg(var, register)				\
+		__asm__("movq %%db" #register ", %0"		\
+			:"=r" (var))
+
 #endif
Index: 2.6.14-nlkd/include/asm-x86_64/processor.h
===================================================================
--- 2.6.14-nlkd.orig/include/asm-x86_64/processor.h	2005-11-07 10:36:06.000000000 +0100
+++ 2.6.14-nlkd/include/asm-x86_64/processor.h	2005-11-07 10:36:06.000000000 +0100
@@ -271,9 +271,22 @@ struct thread_struct {
 #define DEBUG_STACK 4 
 #define MCE_STACK 5
 #define N_EXCEPTION_STACKS 5  /* hw limit: 7 */
+
+#ifndef CONFIG_NLKD
 #define EXCEPTION_STACK_ORDER 0 
+#else
+#define EXCEPTION_STACK_ORDER 1
+#endif
 #define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
+
+#ifndef CONFIG_NLKD
 #define DEBUG_STACK_ORDER EXCEPTION_STACK_ORDER
+#else
+/* debug and breakpoint exceptions may nest 4 levels deep (minimum
+   requirement is 3 levels if handling exceptions from the debugger
+   should be possible, else 2 levels) */
+#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 2)
+#endif
 #define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
 
 #define start_thread(regs,new_rip,new_rsp) do { \
@@ -288,14 +301,6 @@ struct thread_struct {
 	set_fs(USER_DS);							 \
 } while(0) 
 
-#define get_debugreg(var, register)				\
-		__asm__("movq %%db" #register ", %0"		\
-			:"=r" (var))
-#define set_debugreg(value, register)			\
-		__asm__("movq %0,%%db" #register		\
-			: /* no output */			\
-			:"r" (value))
-
 struct task_struct;
 struct mm_struct;
 
Index: 2.6.14-nlkd/include/asm-x86_64/suspend.h
===================================================================
--- 2.6.14-nlkd.orig/include/asm-x86_64/suspend.h	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/include/asm-x86_64/suspend.h	2005-11-04 16:19:34.000000000 +0100
@@ -39,9 +39,7 @@ extern unsigned long saved_context_r12, 
 extern unsigned long saved_context_eflags;
 
 #define loaddebug(thread,register) \
-               __asm__("movq %0,%%db" #register  \
-                       : /* no output */ \
-                       :"r" ((thread)->debugreg##register))
+	set_debugreg((thread)->debugreg##register, register)
 
 extern void fix_processor_context(void);
 
Index: 2.6.14-nlkd/include/asm-x86_64/system.h
===================================================================
--- 2.6.14-nlkd.orig/include/asm-x86_64/system.h	2005-11-09 11:12:50.000000000 +0100
+++ 2.6.14-nlkd/include/asm-x86_64/system.h	2005-11-04 16:19:34.000000000 +0100
@@ -70,12 +70,6 @@ extern void load_gs_index(unsigned); 
 		".previous"			\
 		: :"r" (value), "r" (0))
 
-#define set_debug(value,register) \
-                __asm__("movq %0,%%db" #register  \
-		: /* no output */ \
-		:"r" ((unsigned long) value))
-
-
 #ifdef __KERNEL__
 struct alt_instr { 
 	__u8 *instr; 		/* original instruction */

  reply	other threads:[~2005-11-09 14:16 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-09 13:54 [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jan Beulich
2005-11-09 13:56 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Jan Beulich
2005-11-09 13:57   ` [PATCH 2/39] NLKD - an alternative early ioremap approach Jan Beulich
2005-11-09 13:58     ` [PATCH 3/39] NLKD - early/late CPU up/down notification Jan Beulich
2005-11-09 13:59       ` [PATCH 4/39] NLKD/i386 " Jan Beulich
2005-11-09 14:01       ` [PATCH 5/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:10         ` Andi Kleen
2005-11-14  8:04           ` [discuss] " Jan Beulich
2005-11-14 12:37             ` Andi Kleen
2005-11-09 14:01       ` [PATCH 6/39] NLKD - early panic notification Jan Beulich
2005-11-09 14:02         ` [PATCH 7/39] NLKD - task create/destroy notification Jan Beulich
2005-11-09 14:03           ` [PATCH 8/39] NLKD - rmmod notification Jan Beulich
2005-11-09 14:04             ` [PATCH 9/39] NLKD - hotkey notification Jan Beulich
2005-11-09 14:05               ` [PATCH 10/39] NLKD - console layout change notification Jan Beulich
2005-11-09 14:06                 ` [PATCH 11/39] NLKD - time adjustment Jan Beulich
2005-11-09 14:06                   ` [PATCH 12/39] NLKD/i386 " Jan Beulich
2005-11-09 19:10                     ` George Anzinger
2005-11-10  8:12                       ` Jan Beulich
2005-11-11  0:17                         ` George Anzinger
2005-11-09 14:08                   ` [PATCH 13/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:13                     ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Jan Beulich
2005-11-09 14:14                       ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Jan Beulich
2005-11-09 14:15                         ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Jan Beulich
2005-11-09 14:16                           ` Jan Beulich [this message]
2005-11-10 13:24                           ` Andi Kleen
2005-11-10 14:07                             ` Jan Beulich
2005-11-10 13:23                         ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Andi Kleen
2005-11-10 14:25                           ` Jan Beulich
2005-11-10 13:21                       ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Andi Kleen
2005-11-10 14:07                         ` Jan Beulich
2005-11-10 14:25                           ` Andi Kleen
2005-11-10 15:00                             ` Jan Beulich
2005-11-11  3:39                               ` [discuss] " Andi Kleen
2005-11-10 13:19                     ` [PATCH 13/39] NLKD/x86-64 - time adjustment Andi Kleen
2005-11-10 14:23                       ` Jan Beulich
2005-11-11  2:12                         ` Andi Kleen
2005-11-12  9:22                           ` Vojtech Pavlik
2005-11-12 17:21                             ` Andi Kleen
2005-11-12 20:44                               ` Vojtech Pavlik
2005-11-15  0:38                                 ` George Anzinger
2005-11-15  1:05                                   ` [discuss] " Andi Kleen
2005-11-15  7:50                                     ` Vojtech Pavlik
2005-11-15  8:24                                       ` Jan Beulich
2005-11-10 14:43                       ` Vojtech Pavlik
2005-11-09 14:09                   ` [PATCH 14/39] NLKD - kernel trace buffer access Jan Beulich
2005-11-09 14:09                     ` [PATCH 15/39] NLKD - early pseudo-fs Jan Beulich
2005-11-09 14:11                       ` [PATCH 16/39] NLKD - core adjustments Jan Beulich
2005-11-09 14:11                         ` [PATCH 17/39] NLKD/i386 " Jan Beulich
2005-11-09 19:00                           ` Adrian Bunk
2005-11-10  8:04                             ` Jan Beulich
2005-11-10 10:29                               ` Adrian Bunk
2005-11-10 11:52                                 ` Jan Beulich
2005-11-10 12:36                                   ` Lars Marowsky-Bree
2005-11-09 14:18                         ` [PATCH 22/39] NLKD - core Jan Beulich
2005-11-09 14:19                           ` [PATCH 23/39] NLKD/x86 " Jan Beulich
2005-11-09 14:20                             ` [PATCH 24/39] NLKD/i386 " Jan Beulich
2005-11-09 14:21                             ` [PATCH 25/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:30                               ` Andi Kleen
2005-11-09 14:22                           ` [PATCH 26/39] NLKD - run time library Jan Beulich
2005-11-09 14:23                             ` [PATCH 27/39] NLKD/i386 " Jan Beulich
2005-11-09 14:23                               ` [PATCH 28/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:32                                 ` Andi Kleen
     [not found]                             ` <437214B7.76F0.0078.0@novell.com>
     [not found]                               ` <4372156A.76F0.0078.0@novell.com>
2005-11-09 14:28                                 ` [PATCH 34/39] NLKD/x86 - Console Debug Agent Jan Beulich
     [not found]                                 ` <43721600.76F0.0078.0@novell.com>
2005-11-09 14:30                                   ` [PATCH 38/39] NLKD/i386 - Remote " Jan Beulich
2005-11-09 14:31                                   ` [PATCH 39/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:29                       ` [PATCH 15/39] NLKD - early pseudo-fs Al Viro
2005-11-09 14:37                         ` Jan Beulich
2005-11-09 15:00                           ` Al Viro
2005-11-09 16:00                             ` Jan Beulich
2005-11-10  5:44                     ` [PATCH 14/39] NLKD - kernel trace buffer access Keith Owens
2005-11-10  8:02                       ` Jan Beulich
2005-11-09 18:51                   ` [PATCH 11/39] NLKD - time adjustment George Anzinger
2005-11-09 16:50         ` [PATCH 6/39] NLKD - early panic notification Greg KH
2005-11-09 16:45       ` [PATCH 3/39] NLKD - early/late CPU up/down notification Greg KH
2005-11-09 17:09         ` Jan Beulich
2005-11-09 17:19           ` Greg KH
2005-11-10  7:41             ` Jan Beulich
2005-11-10 20:59               ` Sam Ravnborg
2005-11-11  7:52                 ` Jan Beulich
2005-11-12 20:52                   ` Randy.Dunlap
2005-11-10 23:01               ` Greg KH
2005-11-11 10:06     ` [PATCH 2/39] NLKD - an alternative early ioremap approach Pavel Machek
2005-11-11 10:19       ` Jan Beulich
2005-11-09 16:50   ` [PATCH 1/39] NLKD - an alternative kallsyms approach Randy.Dunlap
2005-11-09 16:57     ` Greg KH
2005-11-09 17:20     ` Jan Beulich
2005-11-09 16:59 ` [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jeff Garzik
2005-11-09 17:06   ` Randy.Dunlap
2005-11-09 17:14     ` Jan Beulich
2005-11-09 17:56       ` Alan Cox
2005-11-09 18:05       ` Greg KH
2005-11-09 18:54       ` Paul Jackson
2005-11-10 12:41       ` Christoph Hellwig
2005-11-13  1:09     ` Andi Kleen
2005-11-13  2:53       ` jmerkey
2005-11-13  3:44         ` Andi Kleen
2005-11-13  3:26           ` Jeff V. Merkey
2005-11-13  3:32             ` Jeff V. Merkey
2005-11-09 17:53   ` Alan Cox
2005-11-09 16:25     ` Jeffrey V. Merkey
2005-11-10 14:48     ` Mark Lord
2005-11-10 15:28       ` Tom Rini
2005-11-10 16:37       ` Alan Cox
2005-11-13  1:11       ` Andi Kleen
     [not found] ` <437214E4.76F0.0078.0@novell.com>
     [not found]   ` <4372153C.76F0.0078.0@novell.com>
2005-11-10 13:33     ` [PATCH 32/39] NLKD/x86-64 - Core Debug Engine Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=437212BC.76F0.0078.0@novell.com \
    --to=jbeulich@novell.com \
    --cc=ak@suse.de \
    --cc=discuss@x86-64.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.