qemu-xen: free all the pirqs for msi/msix when driver unload
commitc976437c7dba9c7444fb41df45468968aaa326ad
authorZhenzhong Duan <zhenzhong.duan@oracle.com>
Wed, 7 May 2014 13:41:48 +0000 (7 13:41 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 7 May 2014 16:14:41 +0000 (7 16:14 +0000)
tree7702267d658e721ce56838d8c3b216ffd65b40a4
parentfe680d0dac85e0f2d6c3b53838c250f6e0b1f49b
qemu-xen: free all the pirqs for msi/msix when driver unload

Pirqs are not freed when driver unload, then new pirqs are allocated when
driver reload. This could exhaust pirqs if do it in a loop.

This patch fixes the bug by freeing pirqs when ENABLE bit is cleared in
msi/msix control reg.

There is also other way of fixing it such as reuse pirqs between driver reload,
but this way is better.
Xen-devel: http://marc.info/?l=xen-devel&m=136800120304275&w=2

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
hw/xen/xen_pt_config_init.c
hw/xen/xen_pt_msi.c