Re: User-mode kernel update and ptrace patch

merblich (merblich@gateway.net)
Wed, 04 Aug 1999 22:10:34 -0700


FYI,

A kernel ASSERT specifies that something better be TRUE or vice versa.

The standard "ASSERT" within the Solaris kernel is the same as
calling cmn_err(9f)?, with the first arg being CE_PANIC. This drops
the kernel into a debuging mode at a kadb (kernel debugger prompt).
Yes, the ASSERT is ONLY compiled into debugged versions of the kernel.

Mitchell Erblich
=======================

Jeff Dike wrote:
>
> The user-mode kernel is now a 2.3.12 kernel, and I plan to keep it current
> with the latest development kernels. It is now possible to log in on the
> console, and there were also some improvements made to the serial line. All
> the details are available at http://www.mv.com/ipusers/karaya/uml/uml.html.
>
> Below is a patch to ptrace that I would like to get into 2.3. It allows
> ptrace to change system call numbers. I need it for the user-mode kernel, and
> Michael Elizabeth Chastain (mec@shout.net) needs it for his trace-and-replay
> debugger. I'd appreciate it if people would look at it and let me know about
> any problems.
>
> Jeff
>
> diff -u -r -N -X ../exclude-files orig/arch/i386/kernel/entry.S
> um/arch/i386/ker
> nel/entry.S
> --- orig/arch/i386/kernel/entry.S Sun Aug 1 18:02:48 1999
> +++ um/arch/i386/kernel/entry.S Tue Aug 3 12:38:44 1999
> @@ -214,9 +214,14 @@
> movl $-ENOSYS,EAX(%esp)
> call SYMBOL_NAME(syscall_trace)
> movl ORIG_EAX(%esp),%eax
> - call *SYMBOL_NAME(sys_call_table)(,%eax,4)
> + cmpl $(NR_syscalls),%eax
> + jae 1f
> + movl SYMBOL_NAME(sys_call_table)(,%eax,4),%eax
> + testl %eax,%eax
> + je 1f
> + call *%eax
> movl %eax,EAX(%esp) # save the return value
> - call SYMBOL_NAME(syscall_trace)
> +1: call SYMBOL_NAME(syscall_trace)
> jmp ret_from_sys_call
> badsys:
> movl $-ENOSYS,EAX(%esp)
> diff -u -r -N -X ../exclude-files orig/arch/i386/kernel/ptrace.c
> um/arch/i386/ke
> rnel/ptrace.c
> --- orig/arch/i386/kernel/ptrace.c Sun Aug 1 18:02:49 1999
> +++ um/arch/i386/kernel/ptrace.c Tue Aug 3 13:43:42 1999
> @@ -11,6 +11,7 @@
> #include <linux/errno.h>
> #include <linux/ptrace.h>
> #include <linux/user.h>
> +#include <linux/sys.h>
>
> #include <asm/uaccess.h>
> #include <asm/pgtable.h>
> @@ -72,7 +73,9 @@
> {
> switch (regno >> 2) {
> case ORIG_EAX:
> - return -EIO;
> + if (value >= NR_syscalls)
> + return -EIO;
> + break;
> case FS:
> if (value && (value & 3) != 3)
> return -EIO;
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/