partially revert "xen: Remove event channel notification through Xen PCI platform...
authorStefano Stabellini <sstabellini@kernel.org>
Fri, 13 Jan 2017 18:07:23 +0000 (10:07 -0800)
committerStefano Stabellini <sstabellini@kernel.org>
Fri, 13 Jan 2017 18:07:23 +0000 (10:07 -0800)
commitda72ff5bfcb02c6ac8b169a7cf597a3c8e6c4de1
tree1359ba3dbc655254d5bde1a04322b985ca5f5a26
parent0b47a6bd1150f4846b1d61925a4cc5a96593a541
partially revert "xen: Remove event channel notification through Xen PCI platform device"

Commit 72a9b186292d ("xen: Remove event channel notification through Xen
PCI platform device") broke Linux when booting as Dom0 on Xen in a
nested Xen environment (Xen installed inside a Xen VM). In this
scenario, Linux is a PV guest, but at the same time it uses the
platform-pci driver to receive notifications from L0 Xen. vector
callbacks are not available because L1 Xen doesn't allow them.

Partially revert the offending commit, by restoring IRQ based
notifications for PV guests only. I restored only the code which is
strictly needed and replaced the xen_have_vector_callback checks within
it with xen_pv_domain() checks.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
drivers/xen/platform-pci.c