Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
  kgdb: gdb documentation fix
  kgdb,i386: use address that SP register points to in the exception frame
  sysrq, intel_fb: fix sysrq g collision
This commit is contained in:
Linus Torvalds 2009-05-15 08:06:45 -07:00
Родитель c653849981 d34a792da9
Коммит ade385e4d1
5 изменённых файлов: 9 добавлений и 8 удалений

Просмотреть файл

@ -281,7 +281,7 @@
seriously wrong while debugging, it will most often be the case seriously wrong while debugging, it will most often be the case
that you want to enable gdb to be verbose about its target that you want to enable gdb to be verbose about its target
communications. You do this prior to issuing the <constant>target communications. You do this prior to issuing the <constant>target
remote</constant> command by typing in: <constant>set remote debug 1</constant> remote</constant> command by typing in: <constant>set debug remote 1</constant>
</para> </para>
</chapter> </chapter>
<chapter id="KGDBTestSuite"> <chapter id="KGDBTestSuite">

Просмотреть файл

@ -88,6 +88,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
gdb_regs[GDB_SS] = __KERNEL_DS; gdb_regs[GDB_SS] = __KERNEL_DS;
gdb_regs[GDB_FS] = 0xFFFF; gdb_regs[GDB_FS] = 0xFFFF;
gdb_regs[GDB_GS] = 0xFFFF; gdb_regs[GDB_GS] = 0xFFFF;
gdb_regs[GDB_SP] = (int)&regs->sp;
#else #else
gdb_regs[GDB_R8] = regs->r8; gdb_regs[GDB_R8] = regs->r8;
gdb_regs[GDB_R9] = regs->r9; gdb_regs[GDB_R9] = regs->r9;
@ -100,8 +101,8 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
gdb_regs32[GDB_PS] = regs->flags; gdb_regs32[GDB_PS] = regs->flags;
gdb_regs32[GDB_CS] = regs->cs; gdb_regs32[GDB_CS] = regs->cs;
gdb_regs32[GDB_SS] = regs->ss; gdb_regs32[GDB_SS] = regs->ss;
#endif
gdb_regs[GDB_SP] = regs->sp; gdb_regs[GDB_SP] = regs->sp;
#endif
} }
/** /**

Просмотреть файл

@ -406,7 +406,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
&sysrq_showlocks_op, /* d */ &sysrq_showlocks_op, /* d */
&sysrq_term_op, /* e */ &sysrq_term_op, /* e */
&sysrq_moom_op, /* f */ &sysrq_moom_op, /* f */
/* g: May be registered by ppc for kgdb */ /* g: May be registered for the kernel debugger */
NULL, /* g */ NULL, /* g */
NULL, /* h - reserved for help */ NULL, /* h - reserved for help */
&sysrq_kill_op, /* i */ &sysrq_kill_op, /* i */
@ -431,7 +431,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
&sysrq_sync_op, /* s */ &sysrq_sync_op, /* s */
&sysrq_showstate_op, /* t */ &sysrq_showstate_op, /* t */
&sysrq_mountro_op, /* u */ &sysrq_mountro_op, /* u */
/* v: May be registered at init time by SMP VOYAGER */ /* v: May be registered for frame buffer console restore */
NULL, /* v */ NULL, /* v */
&sysrq_showstate_blocked_op, /* w */ &sysrq_showstate_blocked_op, /* w */
/* x: May be registered on ppc/powerpc for xmon */ /* x: May be registered on ppc/powerpc for xmon */

Просмотреть файл

@ -864,7 +864,7 @@ static void intelfb_sysrq(int dummy1, struct tty_struct *dummy3)
static struct sysrq_key_op sysrq_intelfb_restore_op = { static struct sysrq_key_op sysrq_intelfb_restore_op = {
.handler = intelfb_sysrq, .handler = intelfb_sysrq,
.help_msg = "force-fb(G)", .help_msg = "force-fb(V)",
.action_msg = "Restore framebuffer console", .action_msg = "Restore framebuffer console",
}; };
@ -898,7 +898,7 @@ int intelfb_probe(struct drm_device *dev)
ret = intelfb_single_fb_probe(dev); ret = intelfb_single_fb_probe(dev);
} }
register_sysrq_key('g', &sysrq_intelfb_restore_op); register_sysrq_key('v', &sysrq_intelfb_restore_op);
return ret; return ret;
} }

Просмотреть файл

@ -1583,8 +1583,8 @@ static void sysrq_handle_gdb(int key, struct tty_struct *tty)
static struct sysrq_key_op sysrq_gdb_op = { static struct sysrq_key_op sysrq_gdb_op = {
.handler = sysrq_handle_gdb, .handler = sysrq_handle_gdb,
.help_msg = "Gdb", .help_msg = "debug(G)",
.action_msg = "GDB", .action_msg = "DEBUG",
}; };
#endif #endif