History

drm/virtio: use %llu format string form atomic64_t

The virtgpu driver prints the last_seq variable using the %ld or %lu format string, which does not work correctly on all architectures and causes this compiler warning on ARM: drivers/gpu/drm/virtio/virtgpu_fence.c: In function 'virtio_timeline_value_str': drivers/gpu/drm/virtio/virtgpu_fence.c:64:22: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'long long int' [-Wformat=] snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq)); ^ drivers/gpu/drm/virtio/virtgpu_debugfs.c: In function 'virtio_gpu_debugfs_irq_info': drivers/gpu/drm/virtio/virtgpu_debugfs.c:37:16: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'long long int' [-Wformat=] seq_printf(m, "fence %ld %lld\n", ^ In order to avoid the warnings, this changes the format strings to %llu and adds a cast to u64, which makes it work the same way everywhere.

Arnd Bergmann committed 11 years ago

Commit d549f541 parent ba2199a2 files · +3 −3Browse files

Unified · Split

2 files
  1. drivers/gpu/drm/virtio/virtgpu_debugfs.c +2 −2
  2. drivers/gpu/drm/virtio/virtgpu_fence.c +1 −1
drivers/gpu/drm/virtio/virtgpu_debugfs.c+2−2
@@ -34,8 +34,8 @@ virtio_gpu_debugfs_irq_info(struct seq_file *m, void *data) · 33 unmodified lines
34 struct drm_info_node *node = (struct drm_info_node *) m->private;34 struct drm_info_node *node = (struct drm_info_node *) m->private;
35 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;35 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;
36 36
37 seq_printf(m, "fence %ld %lld\n",37 seq_printf(m, "fence %llu %lld\n",
38 atomic64_read(&vgdev->fence_drv.last_seq),38 (u64)atomic64_read(&vgdev->fence_drv.last_seq),
39 vgdev->fence_drv.sync_seq);39 vgdev->fence_drv.sync_seq);
40 return 0;40 return 0;
41}41}
drivers/gpu/drm/virtio/virtgpu_fence.c+1−1
@@ -61,7 +61,7 @@ static void virtio_timeline_value_str(struct fence *f, char *str, int size) · 60 unmodified lines
61{61{
62 struct virtio_gpu_fence *fence = to_virtio_fence(f);62 struct virtio_gpu_fence *fence = to_virtio_fence(f);
63 63
64 snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq));64 snprintf(str, size, "%llu", (u64)atomic64_read(&fence->drv->last_seq));
65}65}
66 66
67static const struct fence_ops virtio_fence_ops = {67static const struct fence_ops virtio_fence_ops = {