On Fri, Mar 28, 2014 at 10:10 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 28/03/2014 12:43, Don Slutz ha scritto: > >> Ping. (Since this is a bug fix, I think it can go into 2.0) >> -Don Slutz > > > I think the problem is that not many people understand the 8250 device > model. CCing someone who hopefully does... >
I have a bit of experience with 16550 :) Ill push for a merge on this one. Regards, Peter > Paolo > > >> On 03/18/14 12:29, Don Slutz wrote: >>> >>> The commit 88c1ee73d3231c74ff90bcfc084a7589670ec244 >>> char/serial: Fix emptyness check >>> >>> Still causes extra NULL byte(s) to be sent. >>> >>> So if the fifo is empty, do not send an extra NULL byte. >>> >>> Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> >>> Signed-off-by: Don Slutz <dsl...@verizon.com> >>> --- >>> Changes V2 to v3 >>> Revert v2 changes >>> Fix coding style issues. >>> Changes v1 to v2 >>> Do full state change on fifo8_is_empty. >>> >>> hw/char/serial.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/char/serial.c b/hw/char/serial.c >>> index 6d3b5af..f4d167f 100644 >>> --- a/hw/char/serial.c >>> +++ b/hw/char/serial.c >>> @@ -225,8 +225,10 @@ static gboolean serial_xmit(GIOChannel *chan, >>> GIOCondition cond, void *opaque) >>> if (s->tsr_retry <= 0) { >>> if (s->fcr & UART_FCR_FE) { >>> - s->tsr = fifo8_is_empty(&s->xmit_fifo) ? >>> - 0 : fifo8_pop(&s->xmit_fifo); >>> + if (fifo8_is_empty(&s->xmit_fifo)) { >>> + return FALSE; >>> + } >>> + s->tsr = fifo8_pop(&s->xmit_fifo); >>> if (!s->xmit_fifo.num) { >>> s->lsr |= UART_LSR_THRE; >>> } >> >> >> >> > >