From: Jesse Barnes <[email protected]>

This allows callers to store the ops structure in a parent device structure.

Signed-off-by: Jesse Barnes <[email protected]>
Signed-off-by: Jason Wessel <[email protected]>
---
 drivers/serial/kgdboc.c |    4 ++--
 include/linux/kgdb.h    |   17 ++++++++++++++---
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/serial/kgdboc.c b/drivers/serial/kgdboc.c
index 34b0306..93b18f9 100644
--- a/drivers/serial/kgdboc.c
+++ b/drivers/serial/kgdboc.c
@@ -208,7 +208,7 @@ static void kgdboc_pre_exp_handler(void)
 {
        if (kgdboc_use_kms && dbg_kms_console_core &&
            dbg_kms_console_core->activate_console)
-               if (dbg_kms_console_core->activate_console())
+               if 
(dbg_kms_console_core->activate_console(dbg_kms_console_core))
                        printk(KERN_ERR "kgdboc: kernel mode switch error\n");
 
        /* Increment the module count when the debugger is active */
@@ -223,7 +223,7 @@ static void kgdboc_post_exp_handler(void)
                module_put(THIS_MODULE);
        if (kgdboc_use_kms && dbg_kms_console_core &&
            dbg_kms_console_core->restore_console)
-               if (dbg_kms_console_core->restore_console())
+               if (dbg_kms_console_core->restore_console(dbg_kms_console_core))
                        printk(KERN_ERR "kgdboc: graphics restore failed\n");
 #ifdef CONFIG_KDB_KEYBOARD
        /* If using the kdb keyboard driver release all the keys. */
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
index 35ad419..68fa243 100644
--- a/include/linux/kgdb.h
+++ b/include/linux/kgdb.h
@@ -289,11 +289,22 @@ extern void __init early_kgdboc_init(void);
 
 /* Common to all that include kgdb.h */
 struct dbg_kms_console_ops {
-       int (*activate_console) (void);
-       int (*restore_console) (void);
+       int (*activate_console) (struct dbg_kms_console_ops *ops);
+       int (*restore_console) (struct dbg_kms_console_ops *ops);
 };
 
 #ifdef CONFIG_KGDB
 extern struct dbg_kms_console_ops *dbg_kms_console_core;
-#endif
+extern int dbg_kms_console_ops_register(struct dbg_kms_console_ops *ops);
+extern int dbg_kms_console_ops_unregister(struct dbg_kms_console_ops *ops);
+#else /* ! CONFIG_KGDB */
+static inline int dbg_kms_console_ops_register(struct dbg_kms_console_ops *ops)
+{
+       return 0;
+}
+static inline int dbg_kms_console_ops_unregister(struct dbg_kms_console_ops 
*ops)
+{
+       return 0;
+}
+#endif /* ! CONFIG_KGDB */
 #endif /* _KGDB_H_ */
-- 
1.6.3.1.9.g95405b


------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to