Re: Serial driver hangs

From: Paul Fulghum (paulkf_at_microgate.com)
Date: 09/30/04

  • Next message: Gene Heskett: "Re: Linux 2.6.9-rc3"
    To: Russell King <rmk+lkml@arm.linux.org.uk>
    Date:	Thu, 30 Sep 2004 15:30:01 -0500
    
    

    On Thu, 2004-09-30 at 15:05, Paul Fulghum wrote:
    > My statement of 'most drivers' is wrong.
    > I should have said 'some drivers'
    > including 2.4 serial.c and the 8250/serial of 2.6

    Specifically it is the use of this code fragment
    in the ISR of serial.c (2.4) and the various
    drivers in driver/serial of 2.6:

    if (unlikely(tty->flip.count >= TTY_FLIPBUF_SIZE)) {
            tty->flip.work.func((void *)tty);
            if (tty->flip.count >= TTY_FLIPBUF_SIZE)
                    return; // if TTY_DONT_FLIP is set
    }

    in 2.4 it is

    if (tty->flip.count >= TTY_FLIPBUF_SIZE) {
            tty->flip.tqueue.routine((void *) tty);
            if (tty->flip.count >= TTY_FLIPBUF_SIZE)
                    return; // if TTY_DONT_FLIP is set
    }

    tty->flip.work.func and tty->flip.tqueue.routine
    are set to flush_to_ldisc()

    -- 
    Paul Fulghum
    paulkf@microgate.com
    -
    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/
    

  • Next message: Gene Heskett: "Re: Linux 2.6.9-rc3"

    Relevant Pages