jason.wessel@xxxxxxxxxxxxx wrote: > From: Jason Wessel <jason.wessel@xxxxxxxxxxxxx> > > This patch some small hooks into the normal serial core so that a uart > can be unregistered to be exclusively used for KGDB. These changes > allow for registering and unregistering a port with a struct > uart_port. From that point on KGDB does raw accesses to the serial > IO ports it has taken over. > > CC: linux-serial@xxxxxxxxxxxxxxx > Signed-off-by: Jason Wessel <jason.wessel@xxxxxxxxxxxxx> > Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxx> > Signed-off-by: Ingo Molnar <mingo@xxxxxxx> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > --- > Documentation/DocBook/kgdb.tmpl | 44 ++++ > drivers/serial/8250.c | 30 +++ > drivers/serial/8250_kgdb.c | 489 +++++++++++++++++++++++++++++++++++++++ > drivers/serial/Kconfig | 2 +- > drivers/serial/Makefile | 1 + > drivers/serial/serial_core.c | 18 ++- > include/linux/serial_8250.h | 2 + > lib/Kconfig.kgdb | 21 ++ > 8 files changed, 603 insertions(+), 4 deletions(-) > create mode 100644 drivers/serial/8250_kgdb.c There are a few things I missed in my last cleanup round, please fold them in, they reduce the changes outside kgdb. (I bet that membase dumping was related to mmio vs. mmap configuration, right?) --- linux-2.6-kgdb.orig/drivers/serial/Kconfig +++ linux-2.6-kgdb/drivers/serial/Kconfig @@ -121,7 +121,7 @@ config SERIAL_8250_CS config SERIAL_8250_NR_UARTS int "Maximum number of 8250/16550 serial ports" - depends on SERIAL_8250 || KGDB_8250 + depends on SERIAL_8250 default "4" help Set this to the number of serial ports you want the driver --- linux-2.6-kgdb.orig/drivers/serial/serial_core.c +++ linux-2.6-kgdb/drivers/serial/serial_core.c @@ -1685,9 +1685,6 @@ static int uart_line_info(char *buf, str mmio ? (unsigned long long)port->mapbase : (unsigned long long) port->iobase, port->irq); - if (port->iotype == UPIO_MEM) - ret += sprintf(buf+ret, " membase 0x%08lX", - (unsigned long) port->membase); if (port->type == PORT_UNKNOWN) { strcat(buf, "\n"); @@ -2130,9 +2127,7 @@ uart_report_port(struct uart_driver *drv case UPIO_TSI: case UPIO_DWAPB: snprintf(address, sizeof(address), - "MMIO 0x%llx mem 0x%p", - (unsigned long long)port->mapbase, - port->membase); + "MMIO 0x%llx", (unsigned long long)port->mapbase); break; default: strlcpy(address, "*unknown*", sizeof(address)); --- linux-2.6-kgdb.orig/include/linux/serial_8250.h +++ linux-2.6-kgdb/include/linux/serial_8250.h @@ -58,7 +58,6 @@ struct uart_port; int serial8250_register_port(struct uart_port *); void serial8250_unregister_port(int line); -void serial8250_unregister_by_port(struct uart_port *port); void serial8250_suspend_port(int line); void serial8250_resume_port(int line); int serial8250_get_port_def(struct uart_port *port, int line); - To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html