drm/nouveau/fb/gf100-: Fix 32 bit wraparound in new ram detection
authorMario Kleiner <mario.kleiner.de@gmail.com>
Sat, 29 Apr 2017 04:11:30 +0000 (06:11 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Sat, 29 Apr 2017 12:39:23 +0000 (22:39 +1000)
A missing u64 cast causes a 32-Bit wraparound from
4096 MiB to 0 MiB and therefore total 0 MiB VRAM detected
if card has 4096 Mib per FBP.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c

index 53c32fc694e949b1e1d3bb461704f2beb3366827..c63975907c907da7afc433398d49c99137fca04d 100644 (file)
@@ -589,7 +589,7 @@ gf100_ram_ctor(const struct nvkm_ram_func *func, struct nvkm_fb *fb,
                        nvkm_debug(subdev, "FBP %d: %4d MiB, %d LTC(s)\n",
                                   fbp, size, ltcs);
                        lcomm  = min(lcomm, (u64)(size / ltcs) << 20);
-                       total += size << 20;
+                       total += (u64) size << 20;
                        ltcn  += ltcs;
                } else {
                        nvkm_debug(subdev, "FBP %d: disabled\n", fbp);