[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qemu-devel
Subject:    Re: [Qemu-devel] [PATCH for-2.0 v3 1/1] char/serial: Fix emptyness handling
From:       Brian Jackson <iggy () theiggy ! com>
Date:       2014-04-04 23:14:01
Message-ID: 533F3CB9.2080409 () theiggy ! com
[Download RAW message or body]

On 04/04/2014 07:13 AM, Peter Crosthwaite wrote:
> On Fri, Mar 28, 2014 at 10:10 PM, Paolo Bonzini <pbonzini@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

Not sure what the exact standard is for 2.0 stuff... but changing the
subject (to include something about 2.0) or CC'ing Peter Maydell may
help get this into 2.0 (just did both ;)


>>
>> 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.crosthwaite@xilinx.com>
>>>> Signed-off-by: Don Slutz <dslutz@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;
>>>>               }
>>>
>>>
>>>
>>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic