mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
vtd: Only kill_timer() an init_timer()'ed timer.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
This commit is contained in:
1 parent
9bea076291
commit
c3efc4ecb7
3 files changed
+5
-2
No files matched your search
@@ -28,7 +28,7 @@
|
||||
|
||||
static void hvm_dirq_assist(unsigned long _d);
|
||||
|
||||
static int pt_irq_need_timer(uint32_t flags)
|
||||
bool_t pt_irq_need_timer(uint32_t flags)
|
||||
{
|
||||
return !(flags & (HVM_IRQ_DPCI_GUEST_MSI | HVM_IRQ_DPCI_TRANSLATE));
|
||||
}
|
||||
|
||||
@@ -260,7 +260,9 @@ static void pci_clean_dpci_irqs(struct domain *d)
|
||||
i = find_next_bit(hvm_irq_dpci->mapping, d->nr_pirqs, i + 1) )
|
||||
{
|
||||
pirq_guest_unbind(d, i);
|
||||
kill_timer(&hvm_irq_dpci->hvm_timer[domain_pirq_to_irq(d, i)]);
|
||||
|
||||
if ( pt_irq_need_timer(hvm_irq_dpci->mirq[i].flags) )
|
||||
kill_timer(&hvm_irq_dpci->hvm_timer[domain_pirq_to_irq(d, i)]);
|
||||
|
||||
list_for_each_safe ( digl_list, tmp,
|
||||
&hvm_irq_dpci->mirq[i].digl_list )
|
||||
|
||||
@@ -100,6 +100,7 @@ void hvm_dpci_isairq_eoi(struct domain *d, unsigned int isairq);
|
||||
struct hvm_irq_dpci *domain_get_irq_dpci(struct domain *domain);
|
||||
int domain_set_irq_dpci(struct domain *domain, struct hvm_irq_dpci *dpci);
|
||||
void free_hvm_irq_dpci(struct hvm_irq_dpci *dpci);
|
||||
bool_t pt_irq_need_timer(uint32_t flags);
|
||||
|
||||
#define PT_IRQ_TIME_OUT MILLISECS(8)
|
||||
#define VTDPREFIX "[VT-D]"
|
||||
|
||||