Re: pppd oopses current linu's git tree on disconnect

From: Paul Fulghum
Date: Thu Jan 19 2006 - 12:32:37 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/