Update kdb patches.
authorAndreas Schwab <schwab@suse.de>
Fri, 7 Mar 2008 16:58:08 +0000 (16:58 +0000)
committerAndreas Schwab <schwab@suse.de>
Fri, 7 Mar 2008 16:58:08 +0000 (16:58 +0000)
suse-commit: a1cde1dec1a1f4985880e01ec206dbba0d2ffe64

18 files changed:
arch/ia64/kdb/ChangeLog
arch/x86/Kconfig.debug
arch/x86/Makefile
arch/x86/kdb/ChangeLog
arch/x86/kdb/kdba_bp_32.c
arch/x86/kdb/kdba_bp_64.c
arch/x86/kdb/kdba_bt.c
arch/x86/kdb/kdbasupport_32.c
arch/x86/kdb/kdbasupport_64.c
arch/x86/kernel/reboot.c
arch/x86/kernel/traps_32.c
drivers/usb/core/hcd.c
drivers/usb/core/hcd.h
include/asm-x86/ptrace.h
kdb/ChangeLog
kdb/modules/kdbm_pg.c
kdb/modules/kdbm_vm.c
kdb/modules/kdbm_x86.c

index f35cde2..7dd3475 100644 (file)
@@ -1,3 +1,15 @@
+2008-03-03 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc3-ia64-1.
+
+2008-02-26 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc2-ia64-1.
+
+2008-02-19 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc1-ia64-1.
+
 2008-02-01 Jay Lan  <jlan@sgi.com>
 
        * Backed out USB UHCI support since it caused dropped characters and
index 1ba26e0..ea1f437 100644 (file)
@@ -134,84 +134,6 @@ config IOMMU_LEAK
          Add a simple leak tracer to the IOMMU code. This is useful when you
          are debugging a buggy device driver that leaks IOMMU mappings.
 
-config KDB
-       bool "Built-in Kernel Debugger support"
-       depends on DEBUG_KERNEL
-       select KALLSYMS
-       select KALLSYMS_ALL
-       help
-         This option provides a built-in kernel debugger.  The built-in
-         kernel debugger contains commands which allow memory to be examined,
-         instructions to be disassembled and breakpoints to be set.  For details,
-         see Documentation/kdb/kdb.mm and the manual pages kdb_bt, kdb_ss, etc.
-         Kdb can also be used via the serial port.  Set up the system to
-         have a serial console (see Documentation/serial-console.txt).
-         The key sequence <escape>KDB on the serial port will cause the
-         kernel debugger to be entered with input from the serial port and
-         output to the serial console.  If unsure, say N.
-
-config KDB_MODULES
-       tristate "KDB modules"
-       depends on KDB
-       help
-         KDB can be extended by adding your own modules, in directory
-         kdb/modules.  This option selects the way that these modules should
-         be compiled, as free standing modules (select M) or built into the
-         kernel (select Y).  If unsure say M.
-
-config KDB_OFF
-       bool "KDB off by default"
-       depends on KDB
-       help
-         Normally kdb is activated by default, as long as CONFIG_KDB is set.
-         If you want to ship a kernel with kdb support but only have kdb
-         turned on when the user requests it then select this option.  When
-         compiled with CONFIG_KDB_OFF, kdb ignores all events unless you boot
-         with kdb=on or you echo "1" > /proc/sys/kernel/kdb.  This option also
-         works in reverse, if kdb is normally activated, you can boot with
-         kdb=off or echo "0" > /proc/sys/kernel/kdb to deactivate kdb. If
-         unsure, say N.
-
-config KDB_CONTINUE_CATASTROPHIC
-       int "KDB continues after catastrophic errors"
-       depends on KDB
-       default "0"
-       help
-         This integer controls the behaviour of kdb when the kernel gets a
-         catastrophic error, i.e. for a panic, oops, NMI or other watchdog
-         tripping.  CONFIG_KDB_CONTINUE_CATASTROPHIC interacts with
-         /proc/sys/kernel/kdb and CONFIG_LKCD_DUMP (if your kernel has the
-         LKCD patch).
-         When KDB is active (/proc/sys/kernel/kdb == 1) and a catastrophic
-         error occurs, nothing extra happens until you type 'go'.
-         CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default).  The first time
-         you type 'go', kdb warns you.  The second time you type 'go', KDB
-         tries to continue - no guarantees that the kernel is still usable.
-         CONFIG_KDB_CONTINUE_CATASTROPHIC == 1.  KDB tries to continue - no
-         guarantees that the kernel is still usable.
-         CONFIG_KDB_CONTINUE_CATASTROPHIC == 2.  If your kernel has the LKCD
-         patch and LKCD is configured to take a dump then KDB forces a dump.
-         Whether or not a dump is taken, KDB forces a reboot.
-         When KDB is not active (/proc/sys/kernel/kdb == 0) and a catastrophic
-         error occurs, the following steps are automatic, no human
-         intervention is required.
-         CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default) or 1.  KDB attempts
-         to continue - no guarantees that the kernel is still usable.
-         CONFIG_KDB_CONTINUE_CATASTROPHIC == 2.  If your kernel has the LKCD
-         patch and LKCD is configured to take a dump then KDB automatically
-         forces a dump.  Whether or not a dump is taken, KDB forces a
-         reboot.
-         If you are not sure, say 0.  Read Documentation/kdb/dump.txt before
-         setting to 2.
-
-config KDB_USB
-       bool "Support for USB Keyboard in KDB (OHCI and/or EHCI only)"
-       depends on KDB && (USB_OHCI_HCD || USB_EHCI_HCD)
-       help
-         If you want to use kdb from USB keyboards then say Y here.  If you
-         say N then kdb can only be used from a PC (AT) keyboard or a serial
-         console.
-
 #
 # IO delay types:
 #
@@ -299,4 +221,82 @@ config CPA_DEBUG
        help
          Do change_page_attr() self-tests every 30 seconds.
 
+config KDB
+       bool "Built-in Kernel Debugger support"
+       depends on DEBUG_KERNEL
+       select KALLSYMS
+       select KALLSYMS_ALL
+       help
+         This option provides a built-in kernel debugger.  The built-in
+         kernel debugger contains commands which allow memory to be examined,
+         instructions to be disassembled and breakpoints to be set.  For details,
+         see Documentation/kdb/kdb.mm and the manual pages kdb_bt, kdb_ss, etc.
+         Kdb can also be used via the serial port.  Set up the system to
+         have a serial console (see Documentation/serial-console.txt).
+         The key sequence <escape>KDB on the serial port will cause the
+         kernel debugger to be entered with input from the serial port and
+         output to the serial console.  If unsure, say N.
+
+config KDB_MODULES
+       tristate "KDB modules"
+       depends on KDB
+       help
+         KDB can be extended by adding your own modules, in directory
+         kdb/modules.  This option selects the way that these modules should
+         be compiled, as free standing modules (select M) or built into the
+         kernel (select Y).  If unsure say M.
+
+config KDB_OFF
+       bool "KDB off by default"
+       depends on KDB
+       help
+         Normally kdb is activated by default, as long as CONFIG_KDB is set.
+         If you want to ship a kernel with kdb support but only have kdb
+         turned on when the user requests it then select this option.  When
+         compiled with CONFIG_KDB_OFF, kdb ignores all events unless you boot
+         with kdb=on or you echo "1" > /proc/sys/kernel/kdb.  This option also
+         works in reverse, if kdb is normally activated, you can boot with
+         kdb=off or echo "0" > /proc/sys/kernel/kdb to deactivate kdb. If
+         unsure, say N.
+
+config KDB_CONTINUE_CATASTROPHIC
+       int "KDB continues after catastrophic errors"
+       depends on KDB
+       default "0"
+       help
+         This integer controls the behaviour of kdb when the kernel gets a
+         catastrophic error, i.e. for a panic, oops, NMI or other watchdog
+         tripping.  CONFIG_KDB_CONTINUE_CATASTROPHIC interacts with
+         /proc/sys/kernel/kdb and CONFIG_LKCD_DUMP (if your kernel has the
+         LKCD patch).
+         When KDB is active (/proc/sys/kernel/kdb == 1) and a catastrophic
+         error occurs, nothing extra happens until you type 'go'.
+         CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default).  The first time
+         you type 'go', kdb warns you.  The second time you type 'go', KDB
+         tries to continue - no guarantees that the kernel is still usable.
+         CONFIG_KDB_CONTINUE_CATASTROPHIC == 1.  KDB tries to continue - no
+         guarantees that the kernel is still usable.
+         CONFIG_KDB_CONTINUE_CATASTROPHIC == 2.  If your kernel has the LKCD
+         patch and LKCD is configured to take a dump then KDB forces a dump.
+         Whether or not a dump is taken, KDB forces a reboot.
+         When KDB is not active (/proc/sys/kernel/kdb == 0) and a catastrophic
+         error occurs, the following steps are automatic, no human
+         intervention is required.
+         CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default) or 1.  KDB attempts
+         to continue - no guarantees that the kernel is still usable.
+         CONFIG_KDB_CONTINUE_CATASTROPHIC == 2.  If your kernel has the LKCD
+         patch and LKCD is configured to take a dump then KDB automatically
+         forces a dump.  Whether or not a dump is taken, KDB forces a
+         reboot.
+         If you are not sure, say 0.  Read Documentation/kdb/dump.txt before
+         setting to 2.
+
+config KDB_USB
+       bool "Support for USB Keyboard in KDB (OHCI and/or EHCI only)"
+       depends on KDB && (USB_OHCI_HCD || USB_EHCI_HCD)
+       help
+         If you want to use kdb from USB keyboards then say Y here.  If you
+         say N then kdb can only be used from a PC (AT) keyboard or a serial
+         console.
+
 endmenu
index 55c68fc..4493e31 100644 (file)
@@ -199,7 +199,9 @@ drivers-$(CONFIG_PM) += arch/x86/power/
 ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
-drivers-$(CONFIG_KDB)                  += arch/x86/kdb/
+
+# KDB support
+drivers-$(CONFIG_KDB) += arch/x86/kdb/
 
 ####
 # boot loader support. Several targets are kept for legacy purposes
index 485edfa..87628f3 100644 (file)
@@ -1,3 +1,18 @@
+2008-03-03 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc3-x86-1.
+
+2008-02-26 Jay Lan  <jlan@sgi.com>
+
+       * remove 'fastcall' from kdb code.
+       * Known problem: backtrace for i386 is broken since 2.6.25-rc1.
+       * kdb-v4.4-2.6.25-rc2-x86-1.
+
+2008-02-19 Jay Lan  <jlan@sgi.com>
+
+       * Known problem: backtrace for i386 is broken.
+       * kdb-v4.4-2.6.25-rc1-x86-1.
+
 2008-02-01 Jay Lan  <jlan@sgi.com>
 
        * Backed out USB UHCI support since it caused dropped characters and
index d2500cf..bfe7a42 100644 (file)
@@ -278,7 +278,7 @@ handled:
  *     breakpoint (bc).  This code recognises a breakpoint even when
  *     disabled but not when it has been cleared.
  *
- *     WARNING: This routine resets the eip.  It should be called
+ *     WARNING: This routine resets the ip.  It should be called
  *              once per breakpoint and the result cached.
  */
 
@@ -296,8 +296,8 @@ kdba_bp_trap(struct pt_regs *regs, int error_unused)
         * Determine which breakpoint was encountered.
         */
        if (KDB_DEBUG(BP))
-               kdb_printf("kdba_bp_trap: eip=0x%lx (not adjusted) "
-                          "eflags=0x%lx regs=0x%p esp=0x%lx\n",
+               kdb_printf("kdba_bp_trap: ip=0x%lx (not adjusted) "
+                          "flags=0x%lx regs=0x%p sp=0x%lx\n",
                           regs->ip, regs->flags, regs, regs->sp);
 
        rv = KDB_DB_NOBPT;      /* Cause kdb() to return */
index 273d577..729d60c 100644 (file)
@@ -107,7 +107,7 @@ kdba_db_trap(struct pt_regs *regs, int error_unused)
                                                kdb_printf("kdba_installbp\n");
                                        kdba_installbp(regs, bp);
                                        if (!KDB_STATE(DOING_SS)) {
-                                               regs->flags &= ~EF_TF;
+                                               regs->flags &= ~X86_EFLAGS_TF;
                                                return(KDB_DB_SSBPT);
                                        }
                                        break;
@@ -117,7 +117,7 @@ kdba_db_trap(struct pt_regs *regs, int error_unused)
                                kdb_printf("kdb: Unable to find delayed breakpoint\n");
                        }
                        if (!KDB_STATE(DOING_SS)) {
-                               regs->flags &= ~EF_TF;
+                               regs->flags &= ~X86_EFLAGS_TF;
                                return(KDB_DB_NOBPT);
                        }
                        /* FALLTHROUGH */
@@ -167,7 +167,7 @@ kdba_db_trap(struct pt_regs *regs, int error_unused)
                }
 
                if (rv != KDB_DB_SSB)
-                       regs->flags &= ~EF_TF;
+                       regs->flags &= ~X86_EFLAGS_TF;
        }
 
        if (dr6 & DR6_B0) {
@@ -203,7 +203,7 @@ handle:
        /*
         * Set Resume Flag
         */
-       regs->flags |= EF_RF;
+       regs->flags |= X86_EFLAGS_RF;
 
        /*
         * Determine which breakpoint was encountered.
@@ -233,7 +233,7 @@ handle:
        }
 
 unknown:
-       regs->flags |= EF_RF;   /* Supress further faults */
+       regs->flags |= X86_EFLAGS_RF;   /* Supress further faults */
        rv = KDB_DB_NOBPT;      /* Cause kdb() to return */
 
 handled:
@@ -278,7 +278,7 @@ handled:
  *     breakpoint (bc).  This code recognises a breakpoint even when
  *     disabled but not when it has been cleared.
  *
- *     WARNING: This routine resets the rip.  It should be called
+ *     WARNING: This routine resets the ip.  It should be called
  *              once per breakpoint and the result cached.
  */
 
@@ -296,8 +296,8 @@ kdba_bp_trap(struct pt_regs *regs, int error_unused)
         * Determine which breakpoint was encountered.
         */
        if (KDB_DEBUG(BP))
-               kdb_printf("kdba_bp_trap: rip=0x%lx (not adjusted) "
-                          "eflags=0x%lx ef=0x%p rsp=0x%lx\n",
+               kdb_printf("kdba_bp_trap: ip=0x%lx (not adjusted) "
+                          "flags=0x%lx ef=0x%p sp=0x%lx\n",
                           regs->ip, regs->flags, regs, regs->sp);
 
        rv = KDB_DB_NOBPT;      /* Cause kdb() to return */
index e5dcd00..59e9b46 100644 (file)
@@ -3163,12 +3163,12 @@ bb_usage_mov(const struct bb_operand *src, const struct bb_operand *dst, int l)
            dst->reg &&
            bb_is_int_reg(dst->base_rc) &&
            full_register_dst) {
-#ifndef        CONFIG_X86_64
+#ifdef CONFIG_X86_32
                /* mov from TSS_sysenter_sp0+offset to esp to fix up the
                 * sysenter stack, it leaves esp well defined.  mov
-                * TSS_sysenter_esp0+offset(%esp),%esp is followed by up to 5
+                * TSS_ysenter_sp0+offset(%esp),%esp is followed by up to 5
                 * push instructions to mimic the hardware stack push.  If
-                * TSS_sysenter_esp0 is offset then only 3 words will be
+                * TSS_sysenter_sp0 is offset then only 3 words will be
                 * pushed.
                 */
                if (dst->base_rc == BBRG_RSP &&
@@ -3185,7 +3185,7 @@ bb_usage_mov(const struct bb_operand *src, const struct bb_operand *dst, int l)
                               "\n");
                        return BBOU_NOP;
                }
-#endif /* !CONFIG_X86_64 */
+#endif /* CONFIG_X86_32 */
                bb_read_operand(src);
                bb_reg_set_memory(dst->base_rc, src->base_rc, src->disp);
                return BBOU_NOP;
index 97165a3..84bb6b0 100644 (file)
@@ -253,31 +253,31 @@ kdba_removedbreg(kdb_bp_t *bp)
  *     None.
  * Remarks:
  *     If kdb was entered via an interrupt from the kernel itself then
- *     ss and esp are *not* on the stack.
+ *     ss and sp are *not* on the stack.
  */
 
 static struct kdbregs {
        char   *reg_name;
        size_t  reg_offset;
 } kdbreglist[] = {
-       { "eax",        offsetof(struct pt_regs, ax) },
-       { "ebx",        offsetof(struct pt_regs, bx) },
-       { "ecx",        offsetof(struct pt_regs, cx) },
-       { "edx",        offsetof(struct pt_regs, dx) },
+       { "ax",         offsetof(struct pt_regs, ax) },
+       { "bx",         offsetof(struct pt_regs, bx) },
+       { "cx",         offsetof(struct pt_regs, cx) },
+       { "dx",         offsetof(struct pt_regs, dx) },
 
-       { "esi",        offsetof(struct pt_regs, si) },
-       { "edi",        offsetof(struct pt_regs, di) },
-       { "esp",        offsetof(struct pt_regs, sp) },
-       { "eip",        offsetof(struct pt_regs, ip) },
+       { "si",         offsetof(struct pt_regs, si) },
+       { "di",         offsetof(struct pt_regs, di) },
+       { "sp",         offsetof(struct pt_regs, sp) },
+       { "ip",         offsetof(struct pt_regs, ip) },
 
-       { "ebp",        offsetof(struct pt_regs, bp) },
-       { "xss",        offsetof(struct pt_regs, ss) },
-       { "xcs",        offsetof(struct pt_regs, cs) },
-       { "eflags",     offsetof(struct pt_regs, flags) },
+       { "bp",         offsetof(struct pt_regs, bp) },
+       { "ss",         offsetof(struct pt_regs, ss) },
+       { "cs",         offsetof(struct pt_regs, cs) },
+       { "flags",      offsetof(struct pt_regs, flags) },
 
-       { "xds",        offsetof(struct pt_regs, ds) },
-       { "xes",        offsetof(struct pt_regs, es) },
-       { "origeax",    offsetof(struct pt_regs, orig_ax) },
+       { "ds",         offsetof(struct pt_regs, ds) },
+       { "es",         offsetof(struct pt_regs, es) },
+       { "origax",     offsetof(struct pt_regs, orig_ax) },
 
 };
 
@@ -346,7 +346,7 @@ kdba_getregcontents(const char *regname,
        if (strcmp(regname, "kesp") == 0) {
                *contents = (unsigned long)regs + sizeof(struct pt_regs);
                if ((regs->cs & 0xffff) == __KERNEL_CS) {
-                       /* esp and ss are not on stack */
+                       /* sp and ss are not on stack */
                        *contents -= 2*4;
                }
                return 0;
@@ -362,8 +362,8 @@ kdba_getregcontents(const char *regname,
        if ((i < nkdbreglist)
         && (strlen(kdbreglist[i].reg_name) == strlen(regname))) {
                if ((regs->cs & 0xffff) == __KERNEL_CS) {
-                       /* No cpl switch, esp and ss are not on stack */
-                       if (strcmp(kdbreglist[i].reg_name, "esp") == 0) {
+                       /* No cpl switch, sp and ss are not on stack */
+                       if (strcmp(kdbreglist[i].reg_name, "sp") == 0) {
                                *contents = (kdb_machreg_t)regs +
                                        sizeof(struct pt_regs) - 2*4;
                                return(0);
@@ -596,7 +596,7 @@ kdba_setpc(struct pt_regs *regs, kdb_machreg_t newpc)
  *     0       KDB was invoked for an event which it wasn't responsible
  *     1       KDB handled the event for which it was invoked.
  * Outputs:
- *     Sets eip and esp in current->thread.
+ *     Sets ip and sp in current->thread.
  * Locking:
  *     None.
  * Remarks:
@@ -749,21 +749,21 @@ kdba_pt_regs(int argc, const char **argv)
 
        p = (struct pt_regs *) addr;
        kdb_printf("struct pt_regs 0x%p-0x%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
-       kdb_print_nameval("ebx", p->bx);
-       kdb_print_nameval("ecx", p->cx);
-       kdb_print_nameval("edx", p->dx);
-       kdb_print_nameval("esi", p->si);
-       kdb_print_nameval("edi", p->di);
-       kdb_print_nameval("ebp", p->bp);
-       kdb_print_nameval("eax", p->ax);
-       kdb_printf(fmt, "xds", p->ds);
-       kdb_printf(fmt, "xes", p->es);
-       kdb_print_nameval("orig_eax", p->orig_ax);
-       kdb_print_nameval("eip", p->ip);
-       kdb_printf(fmt, "xcs", p->cs);
-       kdb_printf(fmt, "eflags", p->flags);
-       kdb_printf(fmt, "esp", p->sp);
-       kdb_printf(fmt, "xss", p->ss);
+       kdb_print_nameval("bx", p->bx);
+       kdb_print_nameval("cx", p->cx);
+       kdb_print_nameval("dx", p->dx);
+       kdb_print_nameval("si", p->si);
+       kdb_print_nameval("di", p->di);
+       kdb_print_nameval("bp", p->bp);
+       kdb_print_nameval("ax", p->ax);
+       kdb_printf(fmt, "ds", p->ds);
+       kdb_printf(fmt, "es", p->es);
+       kdb_print_nameval("orig_ax", p->orig_ax);
+       kdb_print_nameval("ip", p->ip);
+       kdb_printf(fmt, "cs", p->cs);
+       kdb_printf(fmt, "flags", p->flags);
+       kdb_printf(fmt, "sp", p->sp);
+       kdb_printf(fmt, "ss", p->ss);
        return 0;
 }
 
@@ -787,27 +787,27 @@ kdba_pt_regs(int argc, const char **argv)
  */
 
 static void
-kdba_stackdepth1(struct task_struct *p, unsigned long esp)
+kdba_stackdepth1(struct task_struct *p, unsigned long sp)
 {
        struct thread_info *tinfo;
        int used;
        const char *type;
        kdb_ps1(p);
        do {
-               tinfo = (struct thread_info *)(esp & -THREAD_SIZE);
-               used = sizeof(*tinfo) + THREAD_SIZE - (esp & (THREAD_SIZE-1));
+               tinfo = (struct thread_info *)(sp & -THREAD_SIZE);
+               used = sizeof(*tinfo) + THREAD_SIZE - (sp & (THREAD_SIZE-1));
                type = NULL;
                if (kdb_task_has_cpu(p)) {
                        struct kdb_activation_record ar;
                        memset(&ar, 0, sizeof(ar));
-                       kdba_get_stack_info_alternate(esp, -1, &ar);
+                       kdba_get_stack_info_alternate(sp, -1, &ar);
                        type = ar.stack.id;
                }
                if (!type)
                        type = "process";
-               kdb_printf("  %s stack %p esp %lx used %d\n", type, tinfo, esp, used);
-               esp = tinfo->previous_esp;
-       } while (esp);
+               kdb_printf("  %s stack %p sp %lx used %d\n", type, tinfo, sp, used);
+               sp = tinfo->previous_esp;
+       } while (sp);
 }
 
 static int
index b2ca1f5..d421f62 100644 (file)
@@ -237,7 +237,7 @@ kdba_putdr(int regnum, kdb_machreg_t contents)
  *        &regs         - Prints address of exception frame
  *        krsp          - Prints kernel stack pointer at time of fault
  *        crsp          - Prints current kernel stack pointer, inside kdb
- *        cflags        - Prints current flags, inside kdb
+ *        ceflags       - Prints current flags, inside kdb
  *        %<regname>    - Uses the value of the registers at the
  *                        last time the user process entered kernel
  *                        mode, instead of the registers at the time
@@ -255,7 +255,7 @@ kdba_putdr(int regnum, kdb_machreg_t contents)
  *     None.
  * Remarks:
  *     If kdb was entered via an interrupt from the kernel itself then
- *     ss and rsp are *not* on the stack.
+ *     ss and sp are *not* on the stack.
  */
 
 static struct kdbregs {
@@ -266,22 +266,22 @@ static struct kdbregs {
        { "r14",        offsetof(struct pt_regs, r14) },
        { "r13",        offsetof(struct pt_regs, r13) },
        { "r12",        offsetof(struct pt_regs, r12) },
-       { "bp", offsetof(struct pt_regs, bp) },
-       { "rbx",        offsetof(struct pt_regs, bx) },
+       { "bp",         offsetof(struct pt_regs, bp) },
+       { "bx",         offsetof(struct pt_regs, bx) },
        { "r11",        offsetof(struct pt_regs, r11) },
        { "r10",        offsetof(struct pt_regs, r10) },
        { "r9",         offsetof(struct pt_regs, r9) },
        { "r8",         offsetof(struct pt_regs, r8) },
-       { "rax",        offsetof(struct pt_regs, ax) },
-       { "rcx",        offsetof(struct pt_regs, cx) },
-       { "rdx",        offsetof(struct pt_regs, dx) },
-       { "rsi",        offsetof(struct pt_regs, si) },
-       { "rdi",        offsetof(struct pt_regs, di) },
-       { "orig_rax",   offsetof(struct pt_regs, orig_ax) },
-       { "rip",        offsetof(struct pt_regs, ip) },
+       { "ax",         offsetof(struct pt_regs, ax) },
+       { "cx",         offsetof(struct pt_regs, cx) },
+       { "dx",         offsetof(struct pt_regs, dx) },
+       { "si",         offsetof(struct pt_regs, si) },
+       { "di",         offsetof(struct pt_regs, di) },
+       { "orig_ax",    offsetof(struct pt_regs, orig_ax) },
+       { "ip",         offsetof(struct pt_regs, ip) },
        { "cs",         offsetof(struct pt_regs, cs) },
        { "flags",      offsetof(struct pt_regs, flags) },
-       { "rsp",        offsetof(struct pt_regs, sp) },
+       { "sp",         offsetof(struct pt_regs, sp) },
        { "ss",         offsetof(struct pt_regs, ss) },
 };
 
@@ -313,7 +313,7 @@ kdba_getregcontents(const char *regname,
        if (strcmp(regname, "krsp") == 0) {
                *contents = (unsigned long)regs + sizeof(struct pt_regs);
                if ((regs->cs & 0xffff) == __KERNEL_CS) {
-                       /* rsp and ss are not on stack */
+                       /* sp and ss are not on stack */
                        *contents -= 2*4;
                }
                return 0;
@@ -324,7 +324,7 @@ kdba_getregcontents(const char *regname,
                return 0;
        }
 
-       if (strcmp(regname, "cflags") == 0) {
+       if (strcmp(regname, "ceflags") == 0) {
                unsigned long flags;
                local_save_flags(flags);
                *contents = flags;
@@ -348,8 +348,8 @@ kdba_getregcontents(const char *regname,
        if ((i < nkdbreglist)
         && (strlen(kdbreglist[i].reg_name) == strlen(regname))) {
                if ((regs->cs & 0xffff) == __KERNEL_CS) {
-                       /* No cpl switch, rsp is not on stack */
-                       if (strcmp(kdbreglist[i].reg_name, "rsp") == 0) {
+                       /* No cpl switch, sp is not on stack */
+                       if (strcmp(kdbreglist[i].reg_name, "sp") == 0) {
                                *contents = (kdb_machreg_t)regs +
                                        sizeof(struct pt_regs) - 2*8;
                                return(0);
@@ -586,7 +586,7 @@ kdba_setpc(struct pt_regs *regs, kdb_machreg_t newpc)
  *     0       KDB was invoked for an event which it wasn't responsible
  *     1       KDB handled the event for which it was invoked.
  * Outputs:
- *     Sets rip and rsp in current->thread.
+ *     Sets ip and sp in current->thread.
  * Locking:
  *     None.
  * Remarks:
@@ -600,7 +600,7 @@ kdba_main_loop(kdb_reason_t reason, kdb_reason_t reason2, int error,
        int ret;
 
        if (regs)
-               kdba_getregcontents("rsp", regs, &(current->thread.sp));
+               kdba_getregcontents("sp", regs, &(current->thread.sp));
        ret = kdb_save_running(regs, reason, reason2, error, db_result);
        kdb_unsave_running(regs);
        return ret;
@@ -628,11 +628,11 @@ kdba_setsinglestep(struct pt_regs *regs)
 {
        if (KDB_NULL_REGS(regs))
                return;
-       if (regs->flags & EF_IE)
+       if (regs->flags & X86_EFLAGS_IF)
                KDB_STATE_SET(A_IF);
        else
                KDB_STATE_CLEAR(A_IF);
-       regs->flags = (regs->flags | EF_TF) & ~EF_IE;
+       regs->flags = (regs->flags | X86_EFLAGS_TF) & ~X86_EFLAGS_IF;
 }
 
 void
@@ -641,9 +641,9 @@ kdba_clearsinglestep(struct pt_regs *regs)
        if (KDB_NULL_REGS(regs))
                return;
        if (KDB_STATE(A_IF))
-               regs->flags |= EF_IE;
+               regs->flags |= X86_EFLAGS_IF;
        else
-               regs->flags &= ~EF_IE;
+               regs->flags &= ~X86_EFLAGS_IF;
 }
 
 int asmlinkage
@@ -667,7 +667,7 @@ kdba_setjmp(kdb_jmp_buf *jb)
 #else   /* !CONFIG_FRAME_POINTER */
        __asm__ __volatile__
                ("movq %%rbx, (0*8)(%%rdi);"
-               "movq %%bp, (1*8)(%%rdi);"
+               "movq %%rbp, (1*8)(%%rdi);"
                "movq %%r12, (2*8)(%%rdi);"
                "movq %%r13, (3*8)(%%rdi);"
                "movq %%r14, (4*8)(%%rdi);"
@@ -741,7 +741,7 @@ kdba_pt_regs(int argc, const char **argv)
        if (first_time) {
                first_time = 0;
                kdb_printf("\n+++ Warning: x86_64 pt_regs are not always "
-                          "completely defined, r15-rbx may be invalid\n\n");
+                          "completely defined, r15-bx may be invalid\n\n");
        }
        kdb_printf("struct pt_regs 0x%p-0x%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
        kdb_print_nameval("r15", p->r15);
@@ -749,21 +749,21 @@ kdba_pt_regs(int argc, const char **argv)
        kdb_print_nameval("r13", p->r13);
        kdb_print_nameval("r12", p->r12);
        kdb_print_nameval("bp", p->bp);
-       kdb_print_nameval("rbx", p->bx);
+       kdb_print_nameval("bx", p->bx);
        kdb_print_nameval("r11", p->r11);
        kdb_print_nameval("r10", p->r10);
        kdb_print_nameval("r9", p->r9);
        kdb_print_nameval("r8", p->r8);
-       kdb_print_nameval("rax", p->ax);
-       kdb_print_nameval("rcx", p->cx);
-       kdb_print_nameval("rdx", p->dx);
-       kdb_print_nameval("rsi", p->si);
-       kdb_print_nameval("rdi", p->di);
-       kdb_print_nameval("orig_rax", p->orig_ax);
-       kdb_print_nameval("rip", p->ip);
+       kdb_print_nameval("ax", p->ax);
+       kdb_print_nameval("cx", p->cx);
+       kdb_print_nameval("dx", p->dx);
+       kdb_print_nameval("si", p->si);
+       kdb_print_nameval("di", p->di);
+       kdb_print_nameval("orig_ax", p->orig_ax);
+       kdb_print_nameval("ip", p->ip);
        kdb_printf(fmt, "cs", p->cs);
        kdb_printf(fmt, "flags", p->flags);
-       kdb_printf(fmt, "rsp", p->sp);
+       kdb_printf(fmt, "sp", p->sp);
        kdb_printf(fmt, "ss", p->ss);
        return 0;
 }
index 20165b6..6d9adf0 100644 (file)
@@ -1,12 +1,12 @@
-#ifdef CONFIG_KDB
-#include <linux/kdb.h>
-#endif /* CONFIG_KDB */
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/reboot.h>
 #include <linux/init.h>
 #include <linux/pm.h>
 #include <linux/efi.h>
+#ifdef CONFIG_KDB
+#include <linux/kdb.h>
+#endif /* CONFIG_KDB */
 #include <acpi/reboot.h>
 #include <asm/io.h>
 #include <asm/apic.h>
@@ -402,17 +402,17 @@ static void native_machine_shutdown(void)
        /* Make certain I only run on the appropriate processor */
        set_cpus_allowed(current, cpumask_of_cpu(reboot_cpu_id));
 
-       /* O.K Now that I'm on the appropriate processor,
-        * stop all of the others.
-        */
-#ifdef CONFIG_KDB
+#if defined(CONFIG_X86_32) && defined(CONFIG_KDB)
        /*
         * If this restart is occuring while kdb is running (e.g. reboot
         * command), the other CPU's are already stopped.  Don't try to
         * stop them yet again.
         */
        if (!KDB_IS_RUNNING())
-#endif /* CONFIG_KDB */
+#endif /* defined(CONFIG_X86_32) && defined(CONFIG_KDB) */
+       /* O.K Now that I'm on the appropriate processor,
+        * stop all of the others.
+        */
        smp_send_stop();
 #endif
 
index b9887a2..3c5e62a 100644 (file)
@@ -654,7 +654,7 @@ void do_##name(struct pt_regs * regs, long error_code) \
 }
 
 DO_VM86_ERROR_INFO( 0, SIGFPE,  "divide error", divide_error, FPE_INTDIV, regs->ip)
-#if    !defined(CONFIG_KPROBES) && !defined(CONFIG_KDB)
+#if    !defined(CONFIG_KPROBES) && !defined(CONFIG_KDB)
 DO_VM86_ERROR( 3, SIGTRAP, "int3", int3)
 #endif
 DO_VM86_ERROR( 4, SIGSEGV, "overflow", overflow)
index c59b6b4..1a95173 100644 (file)
@@ -1729,20 +1729,6 @@ void usb_hc_died (struct usb_hcd *hcd)
 }
 EXPORT_SYMBOL_GPL (usb_hc_died);
 
-#ifdef CONFIG_KDB_USB
-void *
-usb_hcd_get_kdb_poll_func(struct usb_device *udev)
-{
-       struct usb_hcd  *hcd = bus_to_hcd(udev->bus);
-
-       if (hcd && hcd->driver)
-               return (void *)(hcd->driver->kdb_poll_char);
-
-       return NULL;
-}
-EXPORT_SYMBOL_GPL (usb_hcd_get_kdb_poll_func);
-#endif /* CONFIG_KDB_USB */
-
 /*-------------------------------------------------------------------------*/
 
 /**
@@ -1990,6 +1976,20 @@ usb_hcd_platform_shutdown(struct platform_device* dev)
 }
 EXPORT_SYMBOL_GPL(usb_hcd_platform_shutdown);
 
+#ifdef CONFIG_KDB_USB
+void *
+usb_hcd_get_kdb_poll_func(struct usb_device *udev)
+{
+       struct usb_hcd  *hcd = bus_to_hcd(udev->bus);
+
+       if (hcd && hcd->driver)
+               return (void *)(hcd->driver->kdb_poll_char);
+
+       return NULL;
+}
+EXPORT_SYMBOL_GPL (usb_hcd_get_kdb_poll_func);
+#endif /* CONFIG_KDB_USB */
+
 /*-------------------------------------------------------------------------*/
 
 #if defined(CONFIG_USB_MON)
index ea8d929..b6a48b4 100644 (file)
@@ -216,7 +216,7 @@ struct hc_driver {
        void    (*relinquish_port)(struct usb_hcd *, int);
 #ifdef CONFIG_KDB_USB
        /* KDB poll function for this HC */
-       int             (*kdb_poll_char)(struct urb *urb);
+       int     (*kdb_poll_char)(struct urb *urb);
 #endif /* CONFIG_KDB_USB */
 };
 
index d77a0d7..498af49 100644 (file)
 /* this struct defines the way the registers are stored on the
    stack during a system call. */
 
+enum EFLAGS {
+        EF_CF   = 0x00000001,
+        EF_PF   = 0x00000004,
+        EF_AF   = 0x00000010,
+        EF_ZF   = 0x00000040,
+        EF_SF   = 0x00000080,
+        EF_TF   = 0x00000100,
+        EF_IE   = 0x00000200,
+        EF_DF   = 0x00000400,
+        EF_OF   = 0x00000800,
+        EF_IOPL = 0x00003000,
+        EF_IOPL_RING0 = 0x00000000,
+        EF_IOPL_RING1 = 0x00001000,
+        EF_IOPL_RING2 = 0x00002000,
+        EF_NT   = 0x00004000,   /* nested task */
+        EF_RF   = 0x00010000,   /* resume */
+        EF_VM   = 0x00020000,   /* virtual mode */
+        EF_AC   = 0x00040000,   /* alignment */
+        EF_VIF  = 0x00080000,   /* virtual interrupt */
+        EF_VIP  = 0x00100000,   /* virtual interrupt pending */
+        EF_ID   = 0x00200000,   /* id */
+};
+
 #ifndef __KERNEL__
 
 struct pt_regs {
@@ -125,29 +148,6 @@ struct pt_regs {
 #endif /* __KERNEL__ */
 #endif /* !__i386__ */
 
-enum EFLAGS {
-        EF_CF   = 0x00000001,
-        EF_PF   = 0x00000004,
-        EF_AF   = 0x00000010,
-        EF_ZF   = 0x00000040,
-        EF_SF   = 0x00000080,
-        EF_TF   = 0x00000100,
-        EF_IE   = 0x00000200,
-        EF_DF   = 0x00000400,
-        EF_OF   = 0x00000800,
-        EF_IOPL = 0x00003000,
-        EF_IOPL_RING0 = 0x00000000,
-        EF_IOPL_RING1 = 0x00001000,
-        EF_IOPL_RING2 = 0x00002000,
-        EF_NT   = 0x00004000,   /* nested task */
-        EF_RF   = 0x00010000,   /* resume */
-        EF_VM   = 0x00020000,   /* virtual mode */
-        EF_AC   = 0x00040000,   /* alignment */
-        EF_VIF  = 0x00080000,   /* virtual interrupt */
-        EF_VIP  = 0x00100000,   /* virtual interrupt pending */
-        EF_ID   = 0x00200000,   /* id */
-};
-
 #ifdef __KERNEL__
 
 /* the DS BTS struct is used for ptrace as well */
index 3cd4b8e..7a5cea2 100644 (file)
@@ -1,3 +1,16 @@
+2008-03-03 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc3-common-1.
+
+2008-02-26 Jay Lan  <jlan@sgi.com>
+
+       * remove 'fastcall' from kdb code.
+       * kdb-v4.4-2.6.25-rc2-common-1.
+
+2008-02-19 Jay Lan  <jlan@sgi.com>
+
+       * kdb-v4.4-2.6.25-rc1-common-1.
+
 2008-02-06 Jay Lan  <jlan@sgi.com>
 
        * Backed out USB UHCI support since it caused dropped characters and
index a539691..77d8926 100644 (file)
@@ -24,7 +24,7 @@ MODULE_LICENSE("GPL");
 
 /* Standard Linux page stuff */
 
-#ifndef CONFIG_DISCONTIGMEM
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
 /* From include/linux/page-flags.h */
 static char *pg_flag_vals[] = {
        "PG_locked", "PG_error", "PG_referenced", "PG_uptodate",
@@ -40,7 +40,7 @@ static char *bh_state_vals[] = {
        "Uptodate", "Dirty", "Lock", "Req",
        "Uptodate_Lock", "Mapped", "New", "Async_read",
        "Async_write", "Delay", "Boundary", "Write_EIO",
-       "Ordered", "Eopnotsupp", "Unwritten", "Private",
+       "Ordered", "Eopnotsupp", "Unwritten", "Priavate",
        NULL };
 
 /* From include/linux/bio.h */
@@ -180,7 +180,7 @@ kdbm_bio(int argc, const char **argv)
        return 0;
 }
 
-#ifndef CONFIG_DISCONTIGMEM
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
 static char *page_flags(unsigned long flags)
 {
        return(map_flags(flags, pg_flag_vals));
@@ -189,7 +189,6 @@ static char *page_flags(unsigned long flags)
 static int
 kdbm_page(int argc, const char **argv)
 {
-#ifndef CONFIG_NEED_MULTIPLE_NODES
        struct page page;
        unsigned long addr;
        long offset = 0;
@@ -226,11 +225,10 @@ kdbm_page(int argc, const char **argv)
                kdb_printf("  buffers 0x%p\n", page_buffers(&page));
        else
                kdb_printf("  private 0x%lx\n", page_private(&page));
-#endif
-       kdb_printf("Unimplemented with CONFIG_NEED_MULTIPLE_NODES enabled\n");
+
        return 0;
 }
-#endif /* CONFIG_DISCONTIGMEM */
+#endif /* !CONFIG_DISCONTIGMEM && !NUMA */
 
 static unsigned long
 print_request(unsigned long addr)
@@ -539,15 +537,13 @@ out:
 }
 
 
-
-#if defined(CONFIG_X86) && !defined(CONFIG_X86_64)
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
 /* According to Steve Lord, this code is ix86 specific.  Patches to extend it to
  * other architectures will be greatefully accepted.
  */
 static int
 kdbm_memmap(int argc, const char **argv)
 {
-#ifndef CONFIG_NEED_MULTIPLE_NODES
        struct page page;
        int i, page_count;
        int slab_count = 0;
@@ -603,17 +599,13 @@ kdbm_memmap(int argc, const char **argv)
                        i, page_counts[i]);
        }
        kdb_printf("  high page count:  %6d\n", page_counts[8]);
-#else
-       kdb_printf("Unimplemented with CONFIG_NEED_MULTIPLE_NODES enabled\n");
-#endif
-
        return 0;
 }
-#endif /* CONFIG_X86 && !CONFIG_X86_64 */
+#endif /* !CONFIG_DISCONTIGMEM && !NUMA */
 
 static int __init kdbm_pg_init(void)
 {
-#ifndef CONFIG_DISCONTIGMEM
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
        kdb_register("page", kdbm_page, "<vaddr>", "Display page", 0);
 #endif
        kdb_register("inode", kdbm_inode, "<vaddr>", "Display inode", 0);
@@ -623,7 +615,7 @@ static int __init kdbm_pg_init(void)
        kdb_register("inode_pages", kdbm_inode_pages, "<inode *>", "Display pages in an inode", 0);
        kdb_register("req", kdbm_request, "<vaddr>", "dump request struct", 0);
        kdb_register("rqueue", kdbm_rqueue, "<vaddr>", "dump request queue", 0);
-#if defined(CONFIG_X86) && !defined(CONFIG_X86_64)
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
        kdb_register("memmap", kdbm_memmap, "", "page table summary", 0);
 #endif
 
@@ -633,7 +625,7 @@ static int __init kdbm_pg_init(void)
 
 static void __exit kdbm_pg_exit(void)
 {
-#ifndef CONFIG_DISCONTIGMEM
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
        kdb_unregister("page");
 #endif
        kdb_unregister("inode");
@@ -643,7 +635,7 @@ static void __exit kdbm_pg_exit(void)
        kdb_unregister("inode_pages");
        kdb_unregister("req");
        kdb_unregister("rqueue");
-#if defined(CONFIG_X86) && !defined(CONFIG_X86_64)
+#if !defined(CONFIG_DISCONTIGMEM) && !defined(CONFIG_NUMA)
        kdb_unregister("memmap");
 #endif
 }
index 0394e0a..75864c0 100644 (file)
@@ -675,6 +675,9 @@ kdbm_kobject(int argc, const char **argv)
                kdb_printf("\n");
        }
 
+       if (k.name != kobject_name((struct kobject *)addr))
+               kdb_printf(" name '%." __stringify(KOBJ_NAME_LEN) "s'\n", k.name);
+
        kdb_printf(" kref.refcount %d'\n", atomic_read(&k.kref.refcount));
 
        kdb_printf(" entry.next = 0x%p entry.prev = 0x%p\n",
@@ -748,8 +751,8 @@ kdbm_sd(int argc, const char **argv)
                   sd->siblings.next, sd->siblings.prev, sd->host);
        kdb_printf("device_busy = %d   current_cmnd 0x%p\n",
                   sd->device_busy, sd->current_cmnd);
-       kdb_printf("id/lun/chan = [%d/%d/%d]  device_blocked = %d\n",
-                  sd->id, sd->lun, sd->channel, sd->device_blocked);
+       kdb_printf("id/lun/chan = [%d/%d/%d]  single_lun = %d  device_blocked = %d\n",
+                  sd->id, sd->lun, sd->channel, sd->sdev_target->single_lun, sd->device_blocked);
        kdb_printf("queue_depth = %d current_tag = %d  scsi_level = %d\n",
                   sd->queue_depth, sd->current_tag, sd->scsi_level);
        kdb_printf("%8.8s %16.16s %4.4s\n", sd->vendor, sd->model, sd->rev);
@@ -791,11 +794,9 @@ kdbm_sc(int argc, const char **argv)
                   sc->cmnd[0], sc->cmnd[1], sc->cmnd[2], sc->cmnd[3], sc->cmnd[4],
                   sc->cmnd[5], sc->cmnd[6], sc->cmnd[7], sc->cmnd[8], sc->cmnd[9],
                   sc->cmnd[10], sc->cmnd[11]);
-#if 0
        kdb_printf("request_buffer = 0x%p  request_bufflen = %d\n",
-                  sc->request_buffer, sc->request_bufflen);
-       kdb_printf("use_sg = %d\n", sc->use_sg);
-#endif
+                  scsi_sglist(sc), scsi_bufflen(sc));
+       kdb_printf("use_sg = %d\n", scsi_sg_count(sc));
        kdb_printf("underflow = %d transfersize = %d\n",
                   sc->underflow, sc->transfersize);
        kdb_printf("tag = %d\n", sc->tag);
index b7cdd2a..b6769f3 100644 (file)
@@ -313,33 +313,33 @@ static void display_tss(struct tss_struct *t)
 {
 #ifdef CONFIG_X86_64
        int i;
-       kdb_printf("    rsp0 = 0x%016Lx,  rsp1 = 0x%016Lx\n",
+       kdb_printf("    sp0 = 0x%016Lx,  sp1 = 0x%016Lx\n",
                   t->x86_tss.sp0, t->x86_tss.sp1);
-       kdb_printf("    rsp2 = 0x%016Lx\n", t->x86_tss.sp2);
+       kdb_printf("    sp2 = 0x%016Lx\n", t->x86_tss.sp2);
        for (i = 0; i < ARRAY_SIZE(t->x86_tss.ist); ++i)
                kdb_printf("    ist[%d] = 0x%016Lx\n",
                          i, t->x86_tss.ist[i]);
        kdb_printf("   iomap = 0x%04x\n", t->x86_tss.io_bitmap_base);
 #else  /* !CONFIG_X86_64 */
-       kdb_printf("    cs = %04x,  eip = " kdb_machreg_fmt0 "\n",
+       kdb_printf("    cs = %04x,  ip = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.es, t->x86_tss.ip);
-       kdb_printf("    ss = %04x,  esp = " kdb_machreg_fmt0 "\n",
+       kdb_printf("    ss = %04x,  sp = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ss, t->x86_tss.sp);
-       kdb_printf("   ss0 = %04x, esp0 = " kdb_machreg_fmt0 "\n",
+       kdb_printf("   ss0 = %04x, sp0 = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ss0, t->x86_tss.sp0);
-       kdb_printf("   ss1 = %04x, esp1 = " kdb_machreg_fmt0 "\n",
+       kdb_printf("   ss1 = %04x, sp1 = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ss1, t->x86_tss.sp1);
-       kdb_printf("   ss2 = %04x, esp2 = " kdb_machreg_fmt0 "\n",
+       kdb_printf("   ss2 = %04x, sp2 = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ss2, t->x86_tss.sp2);
        kdb_printf("   ldt = %04x, cr3 = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ldt, t->x86_tss.__cr3);
        kdb_printf("    ds = %04x, es = %04x fs = %04x gs = %04x\n",
                        t->x86_tss.ds, t->x86_tss.es, t->x86_tss.fs, t->x86_tss.gs);
-       kdb_printf("   eax = " kdb_machreg_fmt0 ", ebx = " kdb_machreg_fmt0
-                  " ecx = " kdb_machreg_fmt0 " edx = " kdb_machreg_fmt0 "\n",
+       kdb_printf("   ax = " kdb_machreg_fmt0 ", bx = " kdb_machreg_fmt0
+                  " cx = " kdb_machreg_fmt0 " dx = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.ax, t->x86_tss.bx, t->x86_tss.cx, t->x86_tss.dx);
-       kdb_printf("   esi = " kdb_machreg_fmt0 ", edi = " kdb_machreg_fmt0
-                  " ebp = " kdb_machreg_fmt0 "\n",
+       kdb_printf("   si = " kdb_machreg_fmt0 ", di = " kdb_machreg_fmt0
+                  " bp = " kdb_machreg_fmt0 "\n",
                   t->x86_tss.si, t->x86_tss.di, t->x86_tss.bp);
        kdb_printf("   trace = %d, iomap = 0x%04x\n", t->x86_tss.trace, t->x86_tss.io_bitmap_base);
 #endif /* CONFIG_X86_64 */