Re: [Xen-devel] [PATCH] xen: do not re-use pirq number cached in pci device msi msg data

From: Boris Ostrovsky
Date: Tue Jan 10 2017 - 18:28:42 EST



>> In the Xen code I can still see:
>>
>> case ECS_PIRQ: {
>> struct pirq *pirq = pirq_info(d1, chn1->u.pirq.irq);
>>
>> if ( !pirq )
>> break;
>> if ( !is_hvm_domain(d1) )
>> pirq_guest_unbind(d1, pirq);
>>
>> which means that pirq_guest_unbind should only be called on evtchn_close
>> if the guest is not an HVM guest.

A few lines further down we have:

pirq->evtchn = 0;
pirq_cleanup_check(pirq, d1);
unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
#ifdef CONFIG_X86
if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
unmap_domain_pirq_emuirq(d1, pirq->pirq);
#endif

which is where we free up the pirq.

-boris