drm/nouveau/fb: namespace + nvidia gpu names (no binary change)

Dan Carpenter dan.carpenter at oracle.com
Mon May 18 11:31:57 PDT 2015


Hello Ben Skeggs,

The patch 639c308effb9: "drm/nouveau/fb: namespace + nvidia gpu names
(no binary change)" from Jan 14, 2015, leads to the following static
checker warning:

	drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1297 gk104_ram_train_init()
	error: potential null dereference 'train'.  (kzalloc returns null)

drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
  1280  static int
  1281  gk104_ram_train_init(struct nvkm_fb *pfb)
  1282  {
  1283          u8 ramcfg = nvbios_ramcfg_index(nv_subdev(pfb));
  1284          struct gk104_ram_train *train;
  1285          int ret = -ENOMEM, i;
  1286  
  1287          if ((train = kzalloc(sizeof(*train), GFP_KERNEL))) {
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Assume the allocation fails.

  1288                  for (i = 0; i < 0x100; i++) {
  1289                          ret = gk104_ram_train_type(pfb, i, ramcfg, train);
  1290                          if (ret && ret != -ENOENT)
  1291                                  break;
  1292                  }
  1293          }
  1294  
  1295          switch (pfb->ram->type) {
  1296          case NV_MEM_TYPE_GDDR5:
  1297                  ret = gk104_ram_train_init_0(pfb, train);
                                                          ^^^^^
Dereferenced inside the gk104_ram_train_init_0() function.

  1298                  break;
  1299          default:
  1300                  ret = 0;
  1301                  break;
  1302          }
  1303  
  1304          kfree(train);
  1305          return ret;
  1306  }

regards,
dan carpenter


More information about the dri-devel mailing list