lkml.org 
[lkml]   [2004]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Patch] 2.4.28-pre3 tty/ldisc fixes
On Fri, Oct 29, 2004 at 02:29:43PM -0400, Jason Baron wrote:
>
> On Thu, 28 Oct 2004, Sergey Vlasov wrote:
>
> > Here the comment is unclosed; is this intentional? Simply closing it
> > at the same line gives a kernel which cannot complete the system boot
> > process: it prints "init_dev but no ldisc", and then init hangs in
> > uninterruptible sleep with this backtrace:
> >
> > Adhoc c0188ab7 <tty_ldisc_ref_wait+47/80>
> > Adhoc c0199c30 <con_write+0/30>
> > Adhoc c0189648 <tty_write+118/270>
> > Adhoc c0139728 <chrdev_open+38/50>
> > Adhoc c01386e3 <dentry_open+e3/190>
> > Adhoc c0138f16 <sys_write+96/f0>
> > Adhoc c01385eb <filp_open+4b/60>
> > Adhoc c014246f <getname+5f/a0>
> > Adhoc c0138937 <sys_open+57/80>
> >
>
> Here's an updated 2.4 tty patch. I'm not sure if the updated patch would
> fix the above issue, but it has a lot of changes so it might be worth a
> try.

This looks better - at least the system boots without hang or oops ;)

However, drivers/net/wan/pc300_tty.c does not compile:

> @@ -699,12 +693,19 @@ static void cpc_tty_rx_task(void * data)
> cpc_tty = &cpc_tty_area[port];
>
> if ((buf=cpc_tty->buf_rx.first) != 0) {
> -
> - if (cpc_tty->tty && (cpc_tty->tty->ldisc.receive_buf)) {
> - CPC_TTY_DBG("%s: call line disc. receive_buf\n",cpc_tty->name);
> - cpc_tty->tty->ldisc.receive_buf(cpc_tty->tty, (const unsigned char *)buf->data,
> - &flags, buf->size);
> - }
> +
> + if(cpc_tty->tty)
> + {
> + ld = tty_ldisc_ref(cpc_tty);
struct tty_ldisc *ld = tty_ldisc_ref(cpc_tty->tty);

> + if(ld)
> + {
> + if (ld->receive_buf)) {
if (ld->receive_buf) {

> + CPC_TTY_DBG("%s: call line disc. receive_buf\n",cpc_tty->name);
> + ld->receive_buf(cpc_tty->tty, (char *)(buf->data), &flags, buf->size);
> + }
> + tty_ldisc_deref(ld);
> + }
> + }
> cpc_tty->buf_rx.first = cpc_tty->buf_rx.first->next;
> kfree((unsigned char *)buf);
> buf = cpc_tty->buf_rx.first;
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.081 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site