* Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> [200214 11:44]: > --- a/drivers/tty/serial/8250/8250_core.c > +++ b/drivers/tty/serial/8250/8250_core.c > @@ -608,6 +608,14 @@ static int univ8250_console_setup(struct console *co, char *options) > return retval; > } > > +static int univ8250_console_exit(struct console *co) > +{ > + struct uart_port *port; > + > + port = &serial8250_ports[co->index].port; > + return serial8250_console_exit(port); > +} > + > /** > * univ8250_console_match - non-standard console matching > * @co: registering console > @@ -666,6 +674,7 @@ static struct console univ8250_console = { > .write = univ8250_console_write, > .device = uart_console_device, > .setup = univ8250_console_setup, > + .exit = univ8250_console_exit, > .match = univ8250_console_match, > .flags = CON_PRINTBUFFER | CON_ANYTIME, > .index = -1, You're missing adding exit to struct console or these patches are based on some tree I don't have. I had to add the following change to compile for you to fold into this patch. Regards, Tony 8< ------------------- diff --git a/include/linux/console.h b/include/linux/console.h --- a/include/linux/console.h +++ b/include/linux/console.h @@ -148,6 +148,7 @@ struct console { struct tty_driver *(*device)(struct console *, int *); void (*unblank)(void); int (*setup)(struct console *, char *); + int (*exit)(struct console *); int (*match)(struct console *, char *name, int idx, char *options); short flags; short index;