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.
Unified · Split
| @@ -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 | } |
| @@ -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 | ||
| 67 | static const struct fence_ops virtio_fence_ops = { | 67 | static const struct fence_ops virtio_fence_ops = { |