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.

 - 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_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 <>
Cc: Gerd Hoffmann <>
Cc: Greg Kurz <>
Cc: Jason Wang <>
Cc: Kevin Wolf <>
Cc: Max Reitz <>
Cc: Paolo Bonzini <>
Cc: Stefano Stabellini <>


Reply via email to