drm/nouveau/tmr: fix nvkm_usec/nvkm_msec definitions
authorTimur Tabi <ttabi@nvidia.com>
Tue, 9 Jun 2020 12:52:03 +0000 (07:52 -0500)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 24 Jul 2020 08:50:47 +0000 (18:50 +1000)
nvkm_timer_wait_init() takes a u64 as a duration parameter, but the
expression "(m) * 1000" will be promoted only to a 32-bit integer,
if 'm' is also an integer.  Changing the 1000 to 1000ULL ensures that
the expression will be 64 bits.

This change currently has no effect as there are no callers of
nvkm_msec() that exceed 2000ms.

Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h

index a8c21c6c800b131a88e9bbe90f89578fd46dac97..d06dcbe1faa6e77b7c8ab7c2ef52f3d5b1b714eb 100644 (file)
@@ -63,8 +63,8 @@ s64 nvkm_timer_wait_test(struct nvkm_timer_wait *);
                dev_WARN(_wait.tmr->subdev.device->dev, "timeout\n");          \
        _taken;                                                                \
 })
-#define nvkm_usec(d,u,cond...) nvkm_nsec((d), (u) * 1000, ##cond)
-#define nvkm_msec(d,m,cond...) nvkm_usec((d), (m) * 1000, ##cond)
+#define nvkm_usec(d, u, cond...) nvkm_nsec((d), (u) * 1000ULL, ##cond)
+#define nvkm_msec(d, m, cond...) nvkm_usec((d), (m) * 1000ULL, ##cond)
 
 #define nvkm_wait_nsec(d,n,addr,mask,data)                                     \
        nvkm_nsec(d, n,                                                        \