Message ID | 1331905804-11240-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Am 16.03.2012 14:50, schrieb Peter Maydell: > Fix compilation failures on 32 bit hosts (cast from pointer to > integer of different size; %ld expects 'long int' not uint64_t). > > Reported-by: Steve Langasek<steve.langasek@canonical.com> > Signed-off-by: Peter Maydell<peter.maydell@linaro.org> > --- > hw/qxl.c | 16 ++++++++-------- > 1 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/hw/qxl.c b/hw/qxl.c > index e17b0e3..47dc383 100644 > --- a/hw/qxl.c > +++ b/hw/qxl.c > @@ -149,7 +149,7 @@ void qxl_spice_update_area(PCIQXLDevice *qxl, uint32_t surface_id, > } else { > assert(cookie != NULL); > spice_qxl_update_area_async(&qxl->ssd.qxl, surface_id, area, > - clear_dirty_region, (uint64_t)cookie); > + clear_dirty_region, (uintptr_t)cookie); > } > } > > @@ -171,7 +171,7 @@ static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id, > cookie = qxl_cookie_new(QXL_COOKIE_TYPE_IO, > QXL_IO_DESTROY_SURFACE_ASYNC); > cookie->u.surface_id = id; > - spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uint64_t)cookie); > + spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uintptr_t)cookie); > } else { > qxl->ssd.worker->destroy_surface_wait(qxl->ssd.worker, id); > qxl_spice_destroy_surface_wait_complete(qxl, id); > @@ -181,8 +181,8 @@ static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id, > static void qxl_spice_flush_surfaces_async(PCIQXLDevice *qxl) > { > spice_qxl_flush_surfaces_async(&qxl->ssd.qxl, > - (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, > - QXL_IO_FLUSH_SURFACES_ASYNC)); > + (uintptr_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, > + QXL_IO_FLUSH_SURFACES_ASYNC)); > } > > void qxl_spice_loadvm_commands(PCIQXLDevice *qxl, struct QXLCommandExt *ext, > @@ -213,8 +213,8 @@ static void qxl_spice_destroy_surfaces(PCIQXLDevice *qxl, qxl_async_io async) > { > if (async) { > spice_qxl_destroy_surfaces_async(&qxl->ssd.qxl, > - (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, > - QXL_IO_DESTROY_ALL_SURFACES_ASYNC)); > + (uintptr_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, > + QXL_IO_DESTROY_ALL_SURFACES_ASYNC)); > } else { > qxl->ssd.worker->destroy_surfaces(qxl->ssd.worker); > qxl_spice_destroy_surfaces_complete(qxl); > @@ -743,7 +743,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, QXLCookie *cookie) > } > if (cookie&& current_async != cookie->io) { > fprintf(stderr, > - "qxl: %s: error: current_async = %d != %ld = cookie->io\n", > + "qxl: %s: error: current_async = %d != %" PRId64 " = cookie->io\n", > __func__, current_async, cookie->io); > current_async is uint32_t, so maybe you can also replace %d by %" PRIu32 ". Is io unsigned (I don't have the headers, but think it is)? Then PRIu64 would be better. With these modifications you may add Reviewed-by: Stefan Weil <sw@weilnetz.de> Cheers, Stefan > } > switch (current_async) { > @@ -812,7 +812,7 @@ static void interface_update_area_complete(QXLInstance *sin, > static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token) > { > PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); > - QXLCookie *cookie = (QXLCookie *)cookie_token; > + QXLCookie *cookie = (QXLCookie *)(uintptr_t)cookie_token; > > switch (cookie->type) { > case QXL_COOKIE_TYPE_IO: >
On 16 March 2012 14:37, Stefan Weil <sw@weilnetz.de> wrote: >> fprintf(stderr, >> - "qxl: %s: error: current_async = %d != %ld = >> cookie->io\n", >> + "qxl: %s: error: current_async = %d != %" PRId64 " = >> cookie->io\n", >> __func__, current_async, cookie->io); >> > > > current_async is uint32_t, so maybe you can also replace %d by %" PRIu32 ". > Is io unsigned (I don't have the headers, but think it is)? Then PRIu64 > would be better. Yes, cookie->io is uint64_t, but I just want to fix compile warnings, not make functional changes (it might be a semantically signed value that we happen to be carrying in an unsigned type, for instance). I agree that we could use PRId32 in theory, but on the other hand it doesn't cause any compiler warnings and we also use %d for it elsewhere in the function. I'd rather leave that kind of cleanup for somebody who wants to deal with it more systematically. -- PMM
On 03/16/12 14:50, Peter Maydell wrote: > Fix compilation failures on 32 bit hosts (cast from pointer to > integer of different size; %ld expects 'long int' not uint64_t). Acked-by: Gerd Hoffmann <kraxel@redhat.com> cheers, Gerd
On 03/19/12 13:02, Gerd Hoffmann wrote: > On 03/16/12 14:50, Peter Maydell wrote: >> Fix compilation failures on 32 bit hosts (cast from pointer to >> integer of different size; %ld expects 'long int' not uint64_t). > > Acked-by: Gerd Hoffmann <kraxel@redhat.com> Oops, scratch that, should have been "added to spice patch queue". cheers, Gerd
diff --git a/hw/qxl.c b/hw/qxl.c index e17b0e3..47dc383 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -149,7 +149,7 @@ void qxl_spice_update_area(PCIQXLDevice *qxl, uint32_t surface_id, } else { assert(cookie != NULL); spice_qxl_update_area_async(&qxl->ssd.qxl, surface_id, area, - clear_dirty_region, (uint64_t)cookie); + clear_dirty_region, (uintptr_t)cookie); } } @@ -171,7 +171,7 @@ static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id, cookie = qxl_cookie_new(QXL_COOKIE_TYPE_IO, QXL_IO_DESTROY_SURFACE_ASYNC); cookie->u.surface_id = id; - spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uint64_t)cookie); + spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uintptr_t)cookie); } else { qxl->ssd.worker->destroy_surface_wait(qxl->ssd.worker, id); qxl_spice_destroy_surface_wait_complete(qxl, id); @@ -181,8 +181,8 @@ static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id, static void qxl_spice_flush_surfaces_async(PCIQXLDevice *qxl) { spice_qxl_flush_surfaces_async(&qxl->ssd.qxl, - (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, - QXL_IO_FLUSH_SURFACES_ASYNC)); + (uintptr_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, + QXL_IO_FLUSH_SURFACES_ASYNC)); } void qxl_spice_loadvm_commands(PCIQXLDevice *qxl, struct QXLCommandExt *ext, @@ -213,8 +213,8 @@ static void qxl_spice_destroy_surfaces(PCIQXLDevice *qxl, qxl_async_io async) { if (async) { spice_qxl_destroy_surfaces_async(&qxl->ssd.qxl, - (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, - QXL_IO_DESTROY_ALL_SURFACES_ASYNC)); + (uintptr_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, + QXL_IO_DESTROY_ALL_SURFACES_ASYNC)); } else { qxl->ssd.worker->destroy_surfaces(qxl->ssd.worker); qxl_spice_destroy_surfaces_complete(qxl); @@ -743,7 +743,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, QXLCookie *cookie) } if (cookie && current_async != cookie->io) { fprintf(stderr, - "qxl: %s: error: current_async = %d != %ld = cookie->io\n", + "qxl: %s: error: current_async = %d != %" PRId64 " = cookie->io\n", __func__, current_async, cookie->io); } switch (current_async) { @@ -812,7 +812,7 @@ static void interface_update_area_complete(QXLInstance *sin, static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token) { PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl); - QXLCookie *cookie = (QXLCookie *)cookie_token; + QXLCookie *cookie = (QXLCookie *)(uintptr_t)cookie_token; switch (cookie->type) { case QXL_COOKIE_TYPE_IO:
Fix compilation failures on 32 bit hosts (cast from pointer to integer of different size; %ld expects 'long int' not uint64_t). Reported-by: Steve Langasek <steve.langasek@canonical.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- hw/qxl.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)