lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 27 Jul 2007 13:48:14 -0700
From:	Lee Howard <faxguy@...ardsilvan.com>
To:	Paul Fulghum <paulkf@...rogate.com>
CC:	Tilman Schmidt <tilman@...p.cc>,
	Alan Cox <alan@...rguk.ukuu.org.uk>,
	Robert Hancock <hancockr@...w.ca>,
	linux-serial@...r.kernel.org, tytso@....edu, rmk@....linux.org.uk,
	linux-kernel@...r.kernel.org
Subject: Re: serial flow control appears broken

Paul Fulghum wrote:

> Tilman Schmidt wrote:
>
>> Could this be related?
>>
>> http://lkml.org/lkml/2007/7/18/245
>>
>> Quote:
>> "I've recently found (using 2.6.21.4) that configuring a serial ports
>> (ST16654) which use the 8250 driver using setserial results in the
>> UART's FIFOs being disabled (unless you specify autoconfig)."
>
>
> That would make sense.
>
> Lee's error is a hardware FIFO overrun which could occur
> if the FIFO is being disabled as described in your
> link (by trying to set the uart type with setserial).


I'm not using setserial on this port, myself.  If something in init is 
calling on setserial then I don't know about it.

That said, tests on the serial port from within the application show 
that xmit_fifo_size is set to 16 as it should be.

I wrote up a little test app:

    struct serial_struct serial;
    ioctl(modemFd, TIOCGSERIAL, &serial);
    printf("            type: %d\n", serial.type);
    printf("            line: %d\n", serial.line);
    printf("            line: %u\n", serial.port);
    printf("             irq: %d\n", serial.irq);
    printf("           flags: %d\n", serial.flags);
    printf("  xmit_fifo_size: %d\n", serial.xmit_fifo_size);
    printf("  custom_divisor: %d\n", serial.custom_divisor);
    printf("       baud_base: %d\n", serial.baud_base);
    printf("     close_delay: %u\n", serial.close_delay);
    printf("         io_type: 0x%X\n", serial.io_type);
    printf("reserved_char[0]: 0x%X\n", serial.reserved_char[0]);
    printf("            hub6: %d\n", serial.hub6);
    printf("    closing_wait: %u\n", serial.closing_wait);
    printf("   closing_wait2: %u\n", serial.closing_wait2);
    printf(" iomem_reg_shift: %u\n", serial.iomem_reg_shift);
    printf("       port_high: %u\n", serial.port_high);
    printf("     reserved[0]: %d\n", serial.reserved[0]);

Here's the output:

            type: 4
            line: 1
            line: 760
             irq: 3
           flags: 1358954688
  xmit_fifo_size: 16
  custom_divisor: 0
       baud_base: 115200
     close_delay: 500
         io_type: 0x0
reserved_char[0]: 0x0
            hub6: 0
    closing_wait: 30000
   closing_wait2: 0
 iomem_reg_shift: 0
       port_high: 0
     reserved[0]: 0

Thanks,

Lee.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ