xen: add a meaningful declaration of grant_copy_segment into xen_common.h

Currently the xen_disk source has to carry #ifdef exclusions to compile
against Xen older then 4.8. This is a bit messy so this patch lifts the
definition of struct xengnttab_grant_copy_segment and adds it into the
pre-4.8 compat area in xen_common.h, which allows xen_disk to be cleaned
up.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Paul Durrant 2018-05-17 16:35:50 +01:00 committed by Stefano Stabellini
parent 8d0f08e95b
commit 5c0d914a9b
2 changed files with 14 additions and 19 deletions

View File

@ -496,8 +496,6 @@ static int ioreq_map(struct ioreq *ioreq)
return 0;
}
#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 40800
static void ioreq_free_copy_buffers(struct ioreq *ioreq)
{
int i;
@ -579,22 +577,6 @@ static int ioreq_grant_copy(struct ioreq *ioreq)
return rc;
}
#else
static void ioreq_free_copy_buffers(struct ioreq *ioreq)
{
abort();
}
static int ioreq_init_copy_buffers(struct ioreq *ioreq)
{
abort();
}
static int ioreq_grant_copy(struct ioreq *ioreq)
{
abort();
}
#endif
static int ioreq_runio_qemu_aio(struct ioreq *ioreq);

View File

@ -667,8 +667,21 @@ static inline int xen_domain_create(xc_interface *xc, uint32_t ssidref,
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 40800
struct xengnttab_grant_copy_segment {
union xengnttab_copy_ptr {
void *virt;
struct {
uint32_t ref;
uint16_t offset;
uint16_t domid;
} foreign;
} source, dest;
uint16_t len;
uint16_t flags;
int16_t status;
};
typedef void *xengnttab_grant_copy_segment_t;
typedef struct xengnttab_grant_copy_segment xengnttab_grant_copy_segment_t;
static inline int xengnttab_grant_copy(xengnttab_handle *xgt, uint32_t count,
xengnttab_grant_copy_segment_t *segs)