Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2003 20:11:32 -0700 (PDT)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/uart uart_core.c uart_dev_i8251.c uart_dev_ns8250.c uart_dev_z8530.c
Message-ID:  <200309170311.h8H3BXPw004091@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marcel      2003/09/16 20:11:32 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/uart         uart_core.c uart_dev_i8251.c 
                         uart_dev_ns8250.c uart_dev_z8530.c 
  Log:
  In uart_intr() loop until all interrupts have been handled. Previously
  an UART interface could get stuck when a new interrupt condition
  arose while servicing a previous interrupt. Since an interrupt was
  already pending, no new interrupt would be triggered.
  
  Avoid infinite recursion by flushing the Rx FIFO and marking an
  overrun condition when we could not move the data from the Rx
  FIFO to the receive buffer in toto. Failure to flush the Rx FIFO
  would leave the Rx ready condition pending.
  
  Note that the SAB 82532 already did this due to the nature of the
  chip.
  
  Revision  Changes    Path
  1.4       +15 -11    src/sys/dev/uart/uart_core.c
  1.3       +12 -3     src/sys/dev/uart/uart_dev_i8251.c
  1.5       +12 -3     src/sys/dev/uart/uart_dev_ns8250.c
  1.4       +18 -2     src/sys/dev/uart/uart_dev_z8530.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309170311.h8H3BXPw004091>