qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] hw/serial.c: Xmit fifo never used
@ 2010-05-26 10:07 Frank Mehnert
  2010-05-26 10:32 ` [Qemu-devel] " Jan Kiszka
  2010-05-28 14:31 ` [Qemu-devel] " Paul Brook
  0 siblings, 2 replies; 8+ messages in thread
From: Frank Mehnert @ 2010-05-26 10:07 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1149 bytes --]

Hi,

the xmit fifo of the serial device is never used. If qemu_chr_write()
fails (interface currently not able to send characters) then the
transmit_timer should be engaged to try to send the current character
from the fifo again after some time. The code is

    } else if (qemu_chr_write(s->chr, &s->tsr, 1) != 1) {
        if ((s->tsr_retry > 0) && (s->tsr_retry <= MAX_XMIT_RETRY)) {
            s->tsr_retry++;
            qemu_mod_timer(s->transmit_timer,
                           new_xmit_ts + s->char_transmit_time);
            return;
        }
        ...
    }

The problem is that this path is never used as tsr_retry is never > 0
initially. So if qemu_chr_write() fails, we never try again but drop
the character.

I assume the correct condition would be '>= 0', that is

        ...
        if ((s->tsr_retry >= 0) && (s->tsr_retry <= MAX_XMIT_RETRY)) {
            s->tsr_retry++;
        ...

Kind regards,

Frank
-- 
Dr.-Ing. Frank Mehnert

Sitz der Gesellschaft:
Sun Microsystems GmbH, Sonnenallee 1, 85551 Kirchheim-Heimstetten
Amtsgericht München: HRB 161028
Geschäftsführer: Jürgen Kunz

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-05-28 14:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-26 10:07 [Qemu-devel] hw/serial.c: Xmit fifo never used Frank Mehnert
2010-05-26 10:32 ` [Qemu-devel] " Jan Kiszka
2010-05-26 11:06   ` Frank Mehnert
2010-05-26 11:16     ` Jan Kiszka
2010-05-26 11:42       ` Stefano Stabellini
2010-05-26 20:06         ` Frank Mehnert
2010-05-27  8:21           ` Jan Kiszka
2010-05-28 14:31 ` [Qemu-devel] " Paul Brook

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).