Current-Users archive

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

Re: Dom0 and puc(4)



> On Tue, Sep 14, 2010 at 01:26:09PM +0200, Christoph Egger wrote:
> > 
> > Hi!
> > 
> > I have this serial PCI card in a machine where I boot Dom0:
> > 
> > puc0 at pci6 dev 0 function 0: Oxford Semiconductor OXmPCI952 UARTs
> (com, com)
> > com2 at puc0 port 0: interrupting at ioapic0 pin 17, event channel 10
> > com2: ns16550a, working fifo
> > com3 at puc0 port 1: interrupting at ioapic0 pin 17, event channel 10
> > com3: ns16550a, working fifo
> > 
> > 
> > And I get those kernel messages:
> > 
> > com2: com_iflush timeout ff
> > com2: com_iflush timeout ff
> > com2: com_iflush timeout ff
> > com2: com_iflush timeout ff
> > com2: com_iflush timeout ff
> > 
> > 
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> > evtchn_do_event: handler 0xffffffff801e957a didn't lower ipl 8 7
> 
> Can you see what 0xffffffff801e957a points to in your kernel ?

Its's one of the interrupt handlers in the
ci->ci_isources[i]->ipl_handlers list.

It looks to me that the splx C implementation in evtchn_do_event()
does not correctly handle the case where more than one handlers
are in the list.

To reproduce this put a multi serial port pci card into your
machine and use it as a Xen serial console.
(pass com1=<speed>,8n1,<mmio base> console=com1 sync_console
to the xen kernel command line)

Christoph


Home | Main Index | Thread Index | Old Index