--- zzzz-none-000/linux-3.10.107/drivers/tty/n_tty.c 2017-06-27 09:49:32.000000000 +0000 +++ vr9-7490-729/linux-3.10.107/drivers/tty/n_tty.c 2021-11-10 11:53:55.000000000 +0000 @@ -104,6 +104,10 @@ raw_spinlock_t read_lock; }; +#if defined(CONFIG_AVM_ENHANCED) +unsigned int g_avm_console_open; +#endif + static inline int tty_put_user(struct tty_struct *tty, unsigned char x, unsigned char __user *ptr) { @@ -1783,7 +1787,6 @@ * * This code must be sure never to sleep through a hangup. */ - static ssize_t n_tty_read(struct tty_struct *tty, struct file *file, unsigned char __user *buf, size_t nr) { @@ -2031,6 +2034,15 @@ return retval; } +#if defined(CONFIG_AVM_ENHANCED) + if (tty->driver->ops->is_avm_console) { + if (( ! g_avm_console_open) && tty->driver->ops->is_avm_console(tty)) { + b += nr; + goto skip_out; + } + } +#endif + /* Write out any echoed characters that are still pending */ process_echoes(tty); @@ -2093,6 +2105,9 @@ break_out: __set_current_state(TASK_RUNNING); remove_wait_queue(&tty->write_wait, &wait); +#if defined(CONFIG_AVM_ENHANCED) +skip_out: +#endif if (b - buf != nr && tty->fasync) set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); return (b - buf) ? b - buf : retval; @@ -2165,6 +2180,7 @@ struct n_tty_data *ldata = tty->disc_data; int retval; + switch (cmd) { case TIOCOUTQ: return put_user(tty_chars_in_buffer(tty), (int __user *) arg); @@ -2210,3 +2226,18 @@ ops->refcount = ops->flags = 0; } EXPORT_SYMBOL_GPL(n_tty_inherit_ops); + +/*------------------------------------------------------------------------------------------*\ + * keine Ausgaben auf der Console ohne g_avm_console_open=1 + * n_tty_read schaltet die Ausgaben auf der Console wieder frei + * beim Kunden wird kein Read auf der Console erfolgen, also gibt es auch keine Ausgaben +\*------------------------------------------------------------------------------------------*/ +#if defined(CONFIG_AVM_ENHANCED) +static int setup_debug_console(char *p) { + g_avm_console_open = 1; + return 0; +} +__setup("debug_console", setup_debug_console); +#endif + +