File 19815-vtd-kill-correct-timer.patch of Package xen
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1245752782 -3600
# Node ID b6612dd06218b8da63b7e4bd2972f6b8a8476a4f
# Parent 20c0df018786321b98a25f76eaa3e3183a1f162c
VT-d: correct kill hvm_timer
hvm_timer is created with the vector got from domain_irq_to_vector(),
accordingly it should use the same vector to kill the timer. The patch
corrects it in pci_clean_dpci_irqs().
Signed-off-by: Weidong Han <weidong.han@intel.com>
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -176,7 +176,7 @@ static void pci_clean_dpci_irqs(struct d
i = find_next_bit(hvm_irq_dpci->mapping, NR_PIRQS, i + 1) )
{
pirq_guest_unbind(d, i);
- kill_timer(&hvm_irq_dpci->hvm_timer[irq_to_vector(i)]);
+ kill_timer(&hvm_irq_dpci->hvm_timer[domain_irq_to_vector(d, i)]);
list_for_each_safe ( digl_list, tmp,
&hvm_irq_dpci->mirq[i].digl_list )