mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL] kgdb/kdb fixes for 2.6.36-rc1
@ 2010-08-16 21:06 Jason Wessel
  2010-08-16 21:06 ` [PATCH 1/5] kdb: fix compile error without CONFIG_KALLSYMS Jason Wessel
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport

Linus, please pull the for_linus branch which contains:
   * Fixes for compilation/warning errors since the kdb/kms merge
   * 1 run time fix for atomic kms where console_blanked was not saved

git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git for_lin
us

Thanks,
Jason.

---
The following changes since commit da5cabf80e2433131bf0ed8993abc0f7ea618c73:
  Linus Torvalds (1):
        Linux 2.6.36-rc1

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git for_lin
us

Eric Miao (1):
      arm,kgdb: fix GDB_MAX_REGS no longer used

Jason Wessel (3):
      kdb: fix compile error without CONFIG_KALLSYMS
      vt: fix regression warnings from KMS merge
      vt,console,kdb: preserve console_blanked while in kdb

Namhyung Kim (1):
      kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c

 arch/arm/kernel/kgdb.c         |    2 +-
 arch/x86/kernel/kgdb.c         |    2 +-
 drivers/char/vt.c              |   11 +++++++----
 kernel/debug/kdb/kdb_private.h |    7 +++++++
 kernel/debug/kdb/kdb_support.c |    4 ++--
 5 files changed, 18 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/5] kdb: fix compile error without CONFIG_KALLSYMS
  2010-08-16 21:06 [GIT PULL] kgdb/kdb fixes for 2.6.36-rc1 Jason Wessel
@ 2010-08-16 21:06 ` Jason Wessel
  2010-08-16 21:06   ` [PATCH 2/5] kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c Jason Wessel
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport, Jason Wessel

If CONFIG_KGDB_KDB is set and CONFIG_KALLSYMS is not set the kernel
will fail to build with the error:

kernel/built-in.o: In function `kallsyms_symbol_next':
kernel/debug/kdb/kdb_support.c:237: undefined reference to `kdb_walk_kallsyms'
kernel/built-in.o: In function `kallsyms_symbol_complete':
kernel/debug/kdb/kdb_support.c:193: undefined reference to `kdb_walk_kallsyms'

The kdb_walk_kallsyms needs a #ifdef proper header to match the C
implementation.  This patch also fixes the compiler warnings in
kdb_support.c when compiling without CONFIG_KALLSYMS set.  The
compiler warnings are a result of the kallsyms_lookup() macro not
initializing the two of the pass by reference variables.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Reported-by: Michal Simek <monstr@monstr.eu>
---
 kernel/debug/kdb/kdb_private.h |    7 +++++++
 kernel/debug/kdb/kdb_support.c |    4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/kernel/debug/kdb/kdb_private.h b/kernel/debug/kdb/kdb_private.h
index c438f54..be775f7 100644
--- a/kernel/debug/kdb/kdb_private.h
+++ b/kernel/debug/kdb/kdb_private.h
@@ -255,7 +255,14 @@ extern void kdb_ps1(const struct task_struct *p);
 extern void kdb_print_nameval(const char *name, unsigned long val);
 extern void kdb_send_sig_info(struct task_struct *p, struct siginfo *info);
 extern void kdb_meminfo_proc_show(void);
+#ifdef CONFIG_KALLSYMS
 extern const char *kdb_walk_kallsyms(loff_t *pos);
+#else /* ! CONFIG_KALLSYMS */
+static inline const char *kdb_walk_kallsyms(loff_t *pos)
+{
+	return NULL;
+}
+#endif /* ! CONFIG_KALLSYMS */
 extern char *kdb_getstr(char *, size_t, char *);
 
 /* Defines for kdb_symbol_print */
diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
index 45344d5..6b2485d 100644
--- a/kernel/debug/kdb/kdb_support.c
+++ b/kernel/debug/kdb/kdb_support.c
@@ -82,8 +82,8 @@ static char *kdb_name_table[100];	/* arbitrary size */
 int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
 {
 	int ret = 0;
-	unsigned long symbolsize;
-	unsigned long offset;
+	unsigned long symbolsize = 0;
+	unsigned long offset = 0;
 #define knt1_size 128		/* must be >= kallsyms table size */
 	char *knt1 = NULL;
 
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/5] kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c
  2010-08-16 21:06 ` [PATCH 1/5] kdb: fix compile error without CONFIG_KALLSYMS Jason Wessel
@ 2010-08-16 21:06   ` Jason Wessel
  2010-08-16 21:06     ` [PATCH 3/5] arm,kgdb: fix GDB_MAX_REGS no longer used Jason Wessel
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport, Namhyung Kim, Jason Wessel

From: Namhyung Kim <namhyung@gmail.com>

breakinfo->pev is a pointer to percpu pointer but was missing __percpu markup.
Add it.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 arch/x86/kernel/kgdb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index ef10940..852b819 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -194,7 +194,7 @@ static struct hw_breakpoint {
 	unsigned long		addr;
 	int			len;
 	int			type;
-	struct perf_event	**pev;
+	struct perf_event	* __percpu *pev;
 } breakinfo[HBP_NUM];
 
 static unsigned long early_dr7;
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 3/5] arm,kgdb: fix GDB_MAX_REGS no longer used
  2010-08-16 21:06   ` [PATCH 2/5] kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c Jason Wessel
@ 2010-08-16 21:06     ` Jason Wessel
  2010-08-16 21:06       ` [PATCH 4/5] vt: fix regression warnings from KMS merge Jason Wessel
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport, Eric Miao, Jason Wessel

From: Eric Miao <eric.y.miao@gmail.com>

According to commit 22eeef4bb2a7fd225089c0044060ed1fbf091958

    kgdb,arm: Individual register get/set for arm

It's now replaced by DBG_MAX_REG_NUM.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 arch/arm/kernel/kgdb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/kgdb.c b/arch/arm/kernel/kgdb.c
index 778c2f7..d6e8b4d 100644
--- a/arch/arm/kernel/kgdb.c
+++ b/arch/arm/kernel/kgdb.c
@@ -79,7 +79,7 @@ sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task)
 		return;
 
 	/* Initialize to zero */
-	for (regno = 0; regno < GDB_MAX_REGS; regno++)
+	for (regno = 0; regno < DBG_MAX_REG_NUM; regno++)
 		gdb_regs[regno] = 0;
 
 	/* Otherwise, we have only some registers from switch_to() */
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 4/5] vt: fix regression warnings from KMS merge
  2010-08-16 21:06     ` [PATCH 3/5] arm,kgdb: fix GDB_MAX_REGS no longer used Jason Wessel
@ 2010-08-16 21:06       ` Jason Wessel
  2010-08-16 21:06         ` [PATCH 5/5] vt,console,kdb: preserve console_blanked while in kdb Jason Wessel
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport, Jason Wessel, Andrew Morton

Fix the following new sparse warnings in vt.c introduced by the commit
b45cfba4e9005d64d419718e7ff7f7cab44c1994 (vt,console,kdb: implement
atomic console enter/leave functions):

drivers/char/vt.c:197:5: warning: symbol 'saved_fg_console' was not declared. Should it be static?
drivers/char/vt.c:198:5: warning: symbol 'saved_last_console' was not declared. Should it be static?
drivers/char/vt.c:199:5: warning: symbol 'saved_want_console' was not declared. Should it be static?
drivers/char/vt.c:200:5: warning: symbol 'saved_vc_mode' was not declared. Should it be static?

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
CC: Andrew Morton <akpm@linux-foundation.org>
---
 drivers/char/vt.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index c734f9b..3af1a22 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -194,10 +194,10 @@ static DECLARE_WORK(console_work, console_callback);
 int fg_console;
 int last_console;
 int want_console = -1;
-int saved_fg_console;
-int saved_last_console;
-int saved_want_console;
-int saved_vc_mode;
+static int saved_fg_console;
+static int saved_last_console;
+static int saved_want_console;
+static int saved_vc_mode;
 
 /*
  * For each existing display, we have a pointer to console currently visible
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 5/5] vt,console,kdb: preserve console_blanked while in kdb
  2010-08-16 21:06       ` [PATCH 4/5] vt: fix regression warnings from KMS merge Jason Wessel
@ 2010-08-16 21:06         ` Jason Wessel
  0 siblings, 0 replies; 6+ messages in thread
From: Jason Wessel @ 2010-08-16 21:06 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, kgdb-bugreport, Jason Wessel, Andrew Morton

Commit b45cfba4e9005d64d419718e7ff7f7cab44c1994 (vt,console,kdb:
implement atomic console enter/leave functions) introduced the ability
to atomically change the console mode with kernel mode setting but did
not preserve the state of the console_blanked variable.

The console_blanked variable must be restored when executing the
con_debug_leave() or further kernel mode set changes (such as using
chvt X) will fail to correctly set the state of console.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
CC: Andrew Morton <akpm@linux-foundation.org>
---
 drivers/char/vt.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 3af1a22..50590c7 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -198,6 +198,7 @@ static int saved_fg_console;
 static int saved_last_console;
 static int saved_want_console;
 static int saved_vc_mode;
+static int saved_console_blanked;
 
 /*
  * For each existing display, we have a pointer to console currently visible
@@ -3449,6 +3450,7 @@ int con_debug_enter(struct vc_data *vc)
 	saved_last_console = last_console;
 	saved_want_console = want_console;
 	saved_vc_mode = vc->vc_mode;
+	saved_console_blanked = console_blanked;
 	vc->vc_mode = KD_TEXT;
 	console_blanked = 0;
 	if (vc->vc_sw->con_debug_enter)
@@ -3492,6 +3494,7 @@ int con_debug_leave(void)
 	fg_console = saved_fg_console;
 	last_console = saved_last_console;
 	want_console = saved_want_console;
+	console_blanked = saved_console_blanked;
 	vc_cons[fg_console].d->vc_mode = saved_vc_mode;
 
 	vc = vc_cons[fg_console].d;
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-08-16 21:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-16 21:06 [GIT PULL] kgdb/kdb fixes for 2.6.36-rc1 Jason Wessel
2010-08-16 21:06 ` [PATCH 1/5] kdb: fix compile error without CONFIG_KALLSYMS Jason Wessel
2010-08-16 21:06   ` [PATCH 2/5] kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c Jason Wessel
2010-08-16 21:06     ` [PATCH 3/5] arm,kgdb: fix GDB_MAX_REGS no longer used Jason Wessel
2010-08-16 21:06       ` [PATCH 4/5] vt: fix regression warnings from KMS merge Jason Wessel
2010-08-16 21:06         ` [PATCH 5/5] vt,console,kdb: preserve console_blanked while in kdb Jason Wessel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®