On Thu, Sep 01, 2005 at 03:56:08PM -0500, Joel Schopp wrote: > There are at least a couple other spots where flip got missed, after > fixing the count and flip problem mentioned these come up: > > drivers/char/hvcs.c:459: error: structure has no member named `flip' > drivers/char/hvcs.c:472: error: structure has no member named `flip'
Try the diff below although I suspect much of the extra logic can go away and something like len = tty_buffer_request_root(tty, HVCS_BUFF_LEN); if(len) { len = hvc_get_chars(...., len); tty_insert_flip_string(tty, buf, len); } is better. --- drivers/char/hvcs.c~ 2005-09-01 22:08:42.205515648 +0100 +++ drivers/char/hvcs.c 2005-09-01 22:08:42.206515496 +0100 @@ -456,12 +456,11 @@ /* remove the read masks */ hvcsd->todo_mask &= ~(HVCS_READ_MASK); - if ((tty->flip.count + HVCS_BUFF_LEN) < TTY_FLIPBUF_SIZE) { + if (tty_buffer_request_room(tty, HVCS_BUFF_LEN) >= HVCS_BUFF_LEN) { got = hvc_get_chars(unit_address, &buf[0], HVCS_BUFF_LEN); - for (i=0;got && i<got;i++) - tty_insert_flip_char(tty, buf[i], TTY_NORMAL); + tty_insert_flip_string(tty, buf, got); } /* Give the TTY time to process the data we just sent. */ @@ -469,10 +468,9 @@ hvcsd->todo_mask |= HVCS_QUICK_READ; spin_unlock_irqrestore(&hvcsd->lock, flags); - if (tty->flip.count) { - /* This is synch because tty->low_latency == 1 */ + /* This is synch because tty->low_latency == 1 */ + if(got) tty_flip_buffer_push(tty); - } if (!got) { /* Do this _after_ the flip_buffer_push */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/