diff options
author | awilliam@xenbuild2.aw <awilliam@xenbuild2.aw> | 2006-12-20 08:53:42 -0700 |
---|---|---|
committer | awilliam@xenbuild2.aw <awilliam@xenbuild2.aw> | 2006-12-20 08:53:42 -0700 |
commit | 5a0c8b2704b70e808742f1ec968f3b396733a77c (patch) | |
tree | de301c6badcc9e6bd8d090e46708f9aaf96872bc /unmodified_drivers | |
parent | 90bd97461528f85a86d5ad83e8a17681100fb4e7 (diff) | |
download | xen-5a0c8b2704b70e808742f1ec968f3b396733a77c.tar.gz xen-5a0c8b2704b70e808742f1ec968f3b396733a77c.tar.bz2 xen-5a0c8b2704b70e808742f1ec968f3b396733a77c.zip |
[IA64] Follow new interrupt deliver mechanism for PV-on-HVM/IPF
This fixes PV-on-HVM drivers for ia64
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
Diffstat (limited to 'unmodified_drivers')
-rw-r--r-- | unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c index 3a2453a25c..b529ce1308 100644 --- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c @@ -182,12 +182,17 @@ static int get_hypercall_stubs(void) static int get_callback_irq(struct pci_dev *pdev) { #ifdef __ia64__ - int irq; + int irq, rid; for (irq = 0; irq < 16; irq++) { if (isa_irq_to_vector(irq) == pdev->irq) return irq; } - return 0; + /* use Requester-ID as callback_irq */ + /* RID: '<#bus(8)><#dev(5)><#func(3)>' (cf. PCI-Express spec) */ + rid = ((pdev->bus->number & 0xff) << 8) | pdev->devfn; + printk(KERN_INFO DRV_NAME ":use Requester-ID(%04x) as callback irq\n", + rid); + return rid | HVM_PARAM_CALLBACK_IRQ_RID; #else /* !__ia64__ */ return pdev->irq; #endif |