On (20/07/02 11:20), Andy Shevchenko wrote: > > I didn't look into this deeply, but my understanding that this is something > for > special case when you have several UART ports sharing the IRQ (multi-port > card) > and IRQ even maybe undesirable b/c it will confuse real IRQ handler. I don't > remember details, but AFAIR IRQ handler does a busyloop to service as much as > possible and in between it may release the lock (again, multi-port UART > cards), > that's why we better avoid IRQ event in the first place. > But it's my pure speculation.
Hmm. Would different IRQ handlers use different UART port structures? ->irq might be the only thing they share. Even if they use the same port, we keep IRQs disabled on local CPU, and UART port locked. To unlock the UART port during IRQ, the handler (on another CPU) first needs to acquire the port->lock, which is locked by serial8250_do_startup(). -ss