8250 misses interrupt, stalls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a Celeron ETX processor module with a Winbond W83627HF SuperIO 
chip, providing two 16550A compatible UARTs, which connects over LPC to 
an 82801DB south bridge.  I'm only using the first serial port at the 
moment.  The modules 8250 and 8250_pnp are loaded, and the serial port 
is on standard resources (irq 4).  After one of my complex applications 
at work runs for a few minutes, the serial port suddenly stops.  The 
UART IIR indicates an interrupt is pending, and the LSR indicates data 
is waiting to be received (as well as sent), but the interrupt handler 
is not being called.  If while it's stuck I reset the enabled interrupts 
(save IER, clear IER, restore IER) the I/O resumes.  I don't see 
anything wrong with the way the UART is being serviced.  The kernel is 
patched to 2.6.25.11, configured by Debian as SMP, no PREEMPT, shared 
IRQ (nothing else is on irq 4) and without any external modules loaded.  
It's a Celeron without any HT or multiple cores, so it's uniprocessor.  
I haven't been able to make a simple test case.  The real program is 
kind of a loopback that's continuously receiving and sending data at 
115200 8N1 with no flow control.  The full data rate isn't being used, 
and I'm not getting any overruns (until it stalls).  A simple loopback 
program doesn't demonstrate the problem, but the real application runs 
into it every time within 10 minutes (usually under 5).

-- 
Jeff DeFouw <jeffd@xxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux