The grant copy operation was added to libxengnttab in Xen 4.8.0 (released nearly 18 months ago) but the xen_disk PV backend QEMU is still carrying a significant amount of code purely to remain compatible with older versions of Xen.
As can be inferred from the diff stats below, removing this support for older versions of Xen from QEMU reduces the size of the xen_disk source by around 320 lines (~25%). This versionseries maintains compatibility with older Xen, and OS not supporting the grant copy operation, by adding an emulation of it into the xen_backend code. Thus xen_disk can be simplified without regressing support for any environment. This series also performs general cleanup of the code by introducing and consistently using helper functions for calling into libxenttab. v4: - Added new patch #1 to negate the need for #ifdef exclusions in xen_disk thus allowing the patch #2 (previous patch #1) to remain unmodified from v3 but still compile against Xen 4.7. Paul Durrant (9): xen: add a meaningful declaration of grant_copy_segment into xen_common.h xen_backend: add grant table helpers xen_disk: remove open-coded use of libxengnttab xen: remove other open-coded use of libxengnttab xen_backend: add an emulation of grant copy xen_disk: remove use of grant map/unmap xen_backend: make the xen_feature_grant_copy flag private xen_disk: use a single entry iovec xen_disk: be consistent with use of xendev and blkdev->xendev hw/9pfs/xen-9p-backend.c | 32 ++- hw/block/xen_disk.c | 614 +++++++------------------------------------ hw/char/xen_console.c | 9 +- hw/net/xen_nic.c | 33 +-- hw/usb/xen-usb.c | 37 ++- hw/xen/xen_backend.c | 178 ++++++++++++- include/hw/xen/xen_backend.h | 34 ++- include/hw/xen/xen_common.h | 17 +- 8 files changed, 365 insertions(+), 589 deletions(-) --- Cc: Anthony Perard <anthony.per...@citrix.com> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Greg Kurz <gr...@kaod.org> Cc: Jason Wang <jasow...@redhat.com> Cc: Kevin Wolf <kw...@redhat.com> Cc: Max Reitz <mre...@redhat.com> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Stefano Stabellini <sstabell...@kernel.org> -- 2.1.4