This patch series is v5 of what was originally the single patch "Xen: Use the ioreq-server API when available".
v2 of the series moved the code that added the PCI bus listener to patch #1 and the remainder of the changes to patch #2. Patch #2 was then re-worked to constrain the #ifdefing to xen_common.h, as requested by Stefano. v3 of the series modifies patch #1 to add the listener interface into the core qdev, rather than the PCI bus code. This change only requires trivial modification to patch #2, to only act on realize/ unrealize of PCI devices. Patch #2 was also modified at Stefano's request to remove an extra identity check of memory sections against the ram region. v4 of the series replaces the use of a vmstate pre_save callback with extra code in the existing runstate change notification callback. It also tidies up some things in xen-hvm.c pointed out by Stefano and adds his ack to patch #2. v5 rebases and fixes patch #1 to consistently use device/DEVICE rather than a mix of that and qdev/QDEV, and also moves the listener notifications into device_set_realized(). The series was also re-tested against xen-4.5.0-rc3.