Hi, all:
I'm working to pass pci device(a scsi disk) to a
domU(CentOS), and my xen version is 3.3.0. I have completed the
configuration work and the domU can access this pci device now. It can
identify the scsi disk and can call the related device driver. But when
the driver setups irq, error occurs:
PCI: Enabling device
0000:02:06.1 (0000 -> 0003)
----------- [cut here
] --------- [please bite here ] ---------
Kernel BUG at
...oprj/linux-2.6.18-xen.hg/drivers/xen/core/evtchn.c:830
invalid opcode: 0000
[1] SMP
CPU 0
Modules linked in:
Pid: 1, comm: swapper
Not tainted 2.6.18.8-xenU #5
RIP:
e030:[<ffffffff80375ecd>]
[<ffffffff80375ecd>] evtchn_get_xen_pirq+0x1d/0x40
RSP:
e02b:ffff880001941af0 EFLAGS: 00010097
RAX: 00000000ffffffff
RBX: 0000000000000011 RCX: 0000000000000000
RDX: 0000000000000000
RSI: ffff88001fbb9640 RDI: 0000000000000011
RBP: ffff880001941af0
R08: ffff88001fbb9640 R09: 0000000000000015
R10: 0000000000000020
R11: 0000000000000002 R12: 0000000000000011
R13: 0000000000000880
R14: 0000000000000011 R15: ffffffff805170bc
FS: 0000000000000000(0000)
GS:ffffffff80516000(0000) knlGS:0000000000000000
CS: e033 DS: 0000 ES: 0000
Process swapper (pid:
1, threadinfo ffff880001940000, task ffff88000193f510)
Stack: ffff880001941b90 ffffffff803762cf
ffff880001941ae0 000002b000000001
000000000000033a ffff88000194c000
0000000000000000 ffff88000194c000
0000000000000000 0000000000000000
ffff880001941c20 ffffffff8022e5f7
Call Trace:
[<ffffffff803762cf>]
startup_pirq+0x3f/0x270
[<ffffffff8022e5f7>] printk+0x67/0x70
[<ffffffff802532af>]
setup_irq+0x13f/0x1e0
[<ffffffff803bda70>]
ahd_linux_isr+0x0/0x1f0
[<ffffffff802533f7>]
request_irq+0xa7/0xe0
[<ffffffff803bfb5f>]
ahd_pci_map_int+0x4f/0x80
[<ffffffff803b60c5>]
ahd_pci_config+0xde5/0xe50
[<ffffffff803bfd44>]
ahd_linux_pci_dev_probe+0x174/0x250
[<ffffffff80344c8a>]
kobject_get+0x1a/0x30
[<ffffffff80353b6c>]
pci_match_device+0x1c/0xe0
[<ffffffff80353cad>]
pci_device_probe+0x5d/0xa0
[<ffffffff803717d5>]
driver_probe_device+0x65/0xd0
[<ffffffff803718c0>]
__driver_attach+0x0/0xa0
[<ffffffff80371923>]
__driver_attach+0x63/0xa0
[<ffffffff8037107f>]
bus_for_each_dev+0x4f/0x80
[<ffffffff803716dc>]
driver_attach+0x1c/0x20
[<ffffffff80370c0d>]
bus_add_driver+0x8d/0x170
[<ffffffff80371c33>]
driver_register+0x93/0xa0
I check the related resource code, and find that these error messages comes from the following function:
int evtchn_get_xen_pirq(int irq) { if (identity_mapped_irq(irq)) return irq; BUG_ON(type_from_irq(irq) != IRQT_PIRQ);
return index_from_irq(irq); } This
function is in drviers/xen/core/evtchn.c. It looks like the irq type is
not right. Does anyone who know about it? Think you!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|