Messages in this thread Patch in this message | | | Subject | Re: pppd oopses current linu's git tree on disconnect | From | Paul Fulghum <> | Date | Thu, 19 Jan 2006 11:33:59 -0600 |
| |
On Thu, 2006-01-19 at 01:06 +0100, Diego Calleja wrote: > I got this on my log files (56k serial modem, pentium 3 smp machine, the > machine didn't hang, in fact I could connect again to send this bug > report). If needed, here's the dmesg: http://www.terra.es/personal/diegocg/dmesg > and .config: http://www.terra.es/personal/diegocg/.config. I've never seen > this so I assumed it could be a problem with the "TTY layer buffering revamp"
Can you try the attached patch please? Does this occur frequently?
Thanks
-- Paul Fulghum Microgate Systems, Ltd --- linux-2.6.16-rc1/include/linux/tty_flip.h 2006-01-19 10:18:49.000000000 -0600 +++ linux-2.6.16-rc1-mg/include/linux/tty_flip.h 2006-01-19 10:20:50.000000000 -0600 @@ -16,13 +16,23 @@ extern int tty_prepare_flip_string_flags _INLINE_ int tty_insert_flip_char(struct tty_struct *tty, unsigned char ch, char flag) { - struct tty_buffer *tb = tty->buf.tail; + struct tty_buffer *tb; + unsigned long flags; + int rc; + + spin_lock_irqsave(&tty->read_lock, flags); + + tb = tty->buf.tail; if (tb && tb->used < tb->size) { tb->flag_buf_ptr[tb->used] = flag; tb->char_buf_ptr[tb->used++] = ch; + spin_unlock_irqrestore(&tty->read_lock, flags); return 1; } - return tty_insert_flip_string_flags(tty, &ch, &flag, 1); + rc = tty_insert_flip_string_flags(tty, &ch, &flag, 1); + + spin_unlock_irqrestore(&tty->read_lock, flags); + return rc; } _INLINE_ void tty_schedule_flip(struct tty_struct *tty)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |