Message ID | 20200918100737.91646-1-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Series | spice: remove obsolete callback | expand |
On 9/18/20 12:07 PM, marcandre.lureau@redhat.com wrote: > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > The "attach_worker" callbacks aren't doing anything in QEMU, but they > were mandatory until Spice server commit > 6aa1a17c69dc3cc02f338a78b3266e4c00ea1c1a ("spice-qxl: Remove QXLWorker > definition"). > > Furthermore, the old spelling is deprecated since commit > 974692bda1e77af92b71ed43b022439448492cb9 ("spice-qxl: Fix typo in > callback name and remove obsolete parameter") > > Compile that code out if Spice server version is recent enough. > > Fix compiler deprecation warnings with Spice > 0.14.3 (not released > yet). We may want to wait until newer version is actually released to > apply the patch. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > hw/display/qxl.c | 4 ++++ > ui/spice-display.c | 4 ++++ > 2 files changed, 8 insertions(+) > > diff --git a/hw/display/qxl.c b/hw/display/qxl.c > index 11871340e7..a02072dee0 100644 > --- a/hw/display/qxl.c > +++ b/hw/display/qxl.c > @@ -518,12 +518,14 @@ static int qxl_track_command(PCIQXLDevice *qxl, struct QXLCommandExt *ext) > > /* spice display interface callbacks */ > What about adding in include/ui/spice-display.h: #if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ #define SPACE_ATTACH_WORKER_MANDATORY #endif Then use #ifdef SPACE_ATTACH_WORKER_MANDATORY in the source files? Regardless: Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); > > trace_qxl_interface_attach_worker(qxl->id); > } > +#endif > > static void interface_set_compression_level(QXLInstance *sin, int level) > { > @@ -1156,7 +1158,9 @@ static const QXLInterface qxl_interface = { > .base.major_version = SPICE_INTERFACE_QXL_MAJOR, > .base.minor_version = SPICE_INTERFACE_QXL_MINOR, > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > .attache_worker = interface_attach_worker, > +#endif > .set_compression_level = interface_set_compression_level, > #if SPICE_NEEDS_SET_MM_TIME > .set_mm_time = interface_set_mm_time, > diff --git a/ui/spice-display.c b/ui/spice-display.c > index 19632fdf6c..811936ff7f 100644 > --- a/ui/spice-display.c > +++ b/ui/spice-display.c > @@ -500,10 +500,12 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd) > > /* spice display interface callbacks */ > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > /* nothing to do */ > } > +#endif > > static void interface_set_compression_level(QXLInstance *sin, int level) > { > @@ -709,7 +711,9 @@ static const QXLInterface dpy_interface = { > .base.major_version = SPICE_INTERFACE_QXL_MAJOR, > .base.minor_version = SPICE_INTERFACE_QXL_MINOR, > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > .attache_worker = interface_attach_worker, > +#endif > .set_compression_level = interface_set_compression_level, > #if SPICE_NEEDS_SET_MM_TIME > .set_mm_time = interface_set_mm_time, >
> > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > The "attach_worker" callbacks aren't doing anything in QEMU, but they > were mandatory until Spice server commit > 6aa1a17c69dc3cc02f338a78b3266e4c00ea1c1a ("spice-qxl: Remove QXLWorker > definition"). > > Furthermore, the old spelling is deprecated since commit > 974692bda1e77af92b71ed43b022439448492cb9 ("spice-qxl: Fix typo in > callback name and remove obsolete parameter") > > Compile that code out if Spice server version is recent enough. > > Fix compiler deprecation warnings with Spice > 0.14.3 (not released > yet). We may want to wait until newer version is actually released to > apply the patch. > You could use #if SPICE_SERVER_VERSION <= 0x000e03 /* release 0.14.3 */ > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > hw/display/qxl.c | 4 ++++ > ui/spice-display.c | 4 ++++ > 2 files changed, 8 insertions(+) > > diff --git a/hw/display/qxl.c b/hw/display/qxl.c > index 11871340e7..a02072dee0 100644 > --- a/hw/display/qxl.c > +++ b/hw/display/qxl.c > @@ -518,12 +518,14 @@ static int qxl_track_command(PCIQXLDevice *qxl, struct > QXLCommandExt *ext) > > /* spice display interface callbacks */ > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); > > trace_qxl_interface_attach_worker(qxl->id); > } > +#endif > > static void interface_set_compression_level(QXLInstance *sin, int level) > { > @@ -1156,7 +1158,9 @@ static const QXLInterface qxl_interface = { > .base.major_version = SPICE_INTERFACE_QXL_MAJOR, > .base.minor_version = SPICE_INTERFACE_QXL_MINOR, > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > .attache_worker = interface_attach_worker, > +#endif For 0.14.4 you can provide .attached_worker instead, even if version used would be downgraded will work. Same function could be used (with a cast) for attache_worker. It depends on the usefulness of the trace call. > .set_compression_level = interface_set_compression_level, > #if SPICE_NEEDS_SET_MM_TIME > .set_mm_time = interface_set_mm_time, > diff --git a/ui/spice-display.c b/ui/spice-display.c > index 19632fdf6c..811936ff7f 100644 > --- a/ui/spice-display.c > +++ b/ui/spice-display.c > @@ -500,10 +500,12 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay > *ssd) > > /* spice display interface callbacks */ > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > /* nothing to do */ > } > +#endif > > static void interface_set_compression_level(QXLInstance *sin, int level) > { > @@ -709,7 +711,9 @@ static const QXLInterface dpy_interface = { > .base.major_version = SPICE_INTERFACE_QXL_MAJOR, > .base.minor_version = SPICE_INTERFACE_QXL_MINOR, > > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > .attache_worker = interface_attach_worker, > +#endif > .set_compression_level = interface_set_compression_level, > #if SPICE_NEEDS_SET_MM_TIME > .set_mm_time = interface_set_mm_time, Frediano
Hi, > Fix compiler deprecation warnings with Spice > 0.14.3 (not released > yet). We may want to wait until newer version is actually released to > apply the patch. Probably makes sense, just in case. It's not like this is an urgent fix. > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); > > trace_qxl_interface_attach_worker(qxl->id); > } > +#endif > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) > { > /* nothing to do */ > } > +#endif While being at it, can we also drop one of the dummy callbacks? The tracepoint can go away too I think, given qemu doesn't do anything in the callback anyway. > +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ > .attache_worker = interface_attach_worker, > +#endif > .set_compression_level = interface_set_compression_level, > #if SPICE_NEEDS_SET_MM_TIME > .set_mm_time = interface_set_mm_time, Add a SPICE_NEEDS_ATTACH_WORKER #define for consistency? take care, Gerd
diff --git a/hw/display/qxl.c b/hw/display/qxl.c index 11871340e7..a02072dee0 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -518,12 +518,14 @@ static int qxl_track_command(PCIQXLDevice *qxl, struct QXLCommandExt *ext) /* spice display interface callbacks */ +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) { PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); trace_qxl_interface_attach_worker(qxl->id); } +#endif static void interface_set_compression_level(QXLInstance *sin, int level) { @@ -1156,7 +1158,9 @@ static const QXLInterface qxl_interface = { .base.major_version = SPICE_INTERFACE_QXL_MAJOR, .base.minor_version = SPICE_INTERFACE_QXL_MINOR, +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ .attache_worker = interface_attach_worker, +#endif .set_compression_level = interface_set_compression_level, #if SPICE_NEEDS_SET_MM_TIME .set_mm_time = interface_set_mm_time, diff --git a/ui/spice-display.c b/ui/spice-display.c index 19632fdf6c..811936ff7f 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -500,10 +500,12 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd) /* spice display interface callbacks */ +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker) { /* nothing to do */ } +#endif static void interface_set_compression_level(QXLInstance *sin, int level) { @@ -709,7 +711,9 @@ static const QXLInterface dpy_interface = { .base.major_version = SPICE_INTERFACE_QXL_MAJOR, .base.minor_version = SPICE_INTERFACE_QXL_MINOR, +#if SPICE_SERVER_VERSION < 0x000e04 /* release 0.14.4 */ .attache_worker = interface_attach_worker, +#endif .set_compression_level = interface_set_compression_level, #if SPICE_NEEDS_SET_MM_TIME .set_mm_time = interface_set_mm_time,