All of lore.kernel.org
 help / color / mirror / Atom feed
* [drm-drm-misc:drm-misc-next 4/5] drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.
@ 2020-09-03 21:22 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-09-03 21:22 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 9184 bytes --]

CC: kbuild-all(a)lists.01.org
TO: "Christian König" <christian.koenig@amd.com>
CC: Ben Skeggs <bskeggs@redhat.com>

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   fe662d846c957c8861ade7170115e88f6e6e5fdd
commit: 141b15e59175aa174ca1f7596188bd15a7ca17ba [4/5] drm/nouveau: move io_reserve_lru handling into the driver v5
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: x86_64-randconfig-m001-20200903 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.

Old smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:432 nouveau_bo_pin() warn: should '1 << bo->mem.mem_type' be a 64 bit type?
include/drm/ttm/ttm_bo_driver.h:492 ttm_bo_reserve() warn: inconsistent returns '*bo->base.resv'.

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git fetch --no-tags drm-drm-misc drm-misc-next
git checkout 141b15e59175aa174ca1f7596188bd15a7ca17ba
vim +/ret +1146 drivers/gpu/drm/nouveau/nouveau_bo.c

141b15e59175aa1 Christian König     2020-08-21  1065  
f32f02fd81f3177 Jerome Glisse       2010-04-09  1066  static int
2966141ad2dda23 Dave Airlie         2020-08-04  1067  nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *reg)
f32f02fd81f3177 Jerome Glisse       2010-04-09  1068  {
ebb945a94bba2ce Ben Skeggs          2012-07-20  1069  	struct nouveau_drm *drm = nouveau_bdev(bdev);
1167c6bc51880cb Ben Skeggs          2016-05-18  1070  	struct nvkm_device *device = nvxx_device(&drm->client.device);
9ce523cc3bf2ac1 Ben Skeggs          2017-11-01  1071  	struct nouveau_mem *mem = nouveau_mem(reg);
141b15e59175aa1 Christian König     2020-08-21  1072  	int ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1073  
141b15e59175aa1 Christian König     2020-08-21  1074  	mutex_lock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1075  retry:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1076  	switch (reg->mem_type) {
f32f02fd81f3177 Jerome Glisse       2010-04-09  1077  	case TTM_PL_SYSTEM:
f32f02fd81f3177 Jerome Glisse       2010-04-09  1078  		/* System memory */
141b15e59175aa1 Christian König     2020-08-21  1079  		ret = 0;
141b15e59175aa1 Christian König     2020-08-21  1080  		goto out;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1081  	case TTM_PL_TT:
a7fb8a23c1afa60 Daniel Vetter       2015-09-09  1082  #if IS_ENABLED(CONFIG_AGP)
340b0e7c500a0ac Ben Skeggs          2015-08-20  1083  		if (drm->agp.bridge) {
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1084  			reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1085  			reg->bus.base = drm->agp.base;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1086  			reg->bus.is_iomem = !drm->agp.cma;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1087  		}
f32f02fd81f3177 Jerome Glisse       2010-04-09  1088  #endif
141b15e59175aa1 Christian König     2020-08-21  1089  		if (drm->client.mem->oclass < NVIF_CLASS_MEM_NV50 ||
141b15e59175aa1 Christian König     2020-08-21  1090  		    !mem->kind) {
a55409066472838 Maarten Lankhorst   2013-11-12  1091  			/* untiled */
141b15e59175aa1 Christian König     2020-08-21  1092  			ret = 0;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1093  			break;
141b15e59175aa1 Christian König     2020-08-21  1094  		}
f6e7393edefada6 Gustavo A. R. Silva 2020-07-07  1095  		fallthrough;	/* tiled memory */
f32f02fd81f3177 Jerome Glisse       2010-04-09  1096  	case TTM_PL_VRAM:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1097  		reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1098  		reg->bus.base = device->func->resource_addr(device, 1);
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1099  		reg->bus.is_iomem = true;
d7722134b8254bc Ben Skeggs          2017-11-01  1100  		if (drm->client.mem->oclass >= NVIF_CLASS_MEM_NV50) {
d7722134b8254bc Ben Skeggs          2017-11-01  1101  			union {
d7722134b8254bc Ben Skeggs          2017-11-01  1102  				struct nv50_mem_map_v0 nv50;
d7722134b8254bc Ben Skeggs          2017-11-01  1103  				struct gf100_mem_map_v0 gf100;
d7722134b8254bc Ben Skeggs          2017-11-01  1104  			} args;
d7722134b8254bc Ben Skeggs          2017-11-01  1105  			u64 handle, length;
d7722134b8254bc Ben Skeggs          2017-11-01  1106  			u32 argc = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1107  
d7722134b8254bc Ben Skeggs          2017-11-01  1108  			switch (mem->mem.object.oclass) {
d7722134b8254bc Ben Skeggs          2017-11-01  1109  			case NVIF_CLASS_MEM_NV50:
d7722134b8254bc Ben Skeggs          2017-11-01  1110  				args.nv50.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1111  				args.nv50.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1112  				args.nv50.kind = mem->kind;
d7722134b8254bc Ben Skeggs          2017-11-01  1113  				args.nv50.comp = mem->comp;
b554b12addf939f Thierry Reding      2018-01-19  1114  				argc = sizeof(args.nv50);
d7722134b8254bc Ben Skeggs          2017-11-01  1115  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1116  			case NVIF_CLASS_MEM_GF100:
d7722134b8254bc Ben Skeggs          2017-11-01  1117  				args.gf100.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1118  				args.gf100.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1119  				args.gf100.kind = mem->kind;
b554b12addf939f Thierry Reding      2018-01-19  1120  				argc = sizeof(args.gf100);
d7722134b8254bc Ben Skeggs          2017-11-01  1121  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1122  			default:
d7722134b8254bc Ben Skeggs          2017-11-01  1123  				WARN_ON(1);
d7722134b8254bc Ben Skeggs          2017-11-01  1124  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1125  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1126  
d7722134b8254bc Ben Skeggs          2017-11-01  1127  			ret = nvif_object_map_handle(&mem->mem.object,
b554b12addf939f Thierry Reding      2018-01-19  1128  						     &args, argc,
d7722134b8254bc Ben Skeggs          2017-11-01  1129  						     &handle, &length);
8a39db76e79ef50 Ben Skeggs          2020-01-06  1130  			if (ret != 1) {
8a39db76e79ef50 Ben Skeggs          2020-01-06  1131  				if (WARN_ON(ret == 0))
141b15e59175aa1 Christian König     2020-08-21  1132  					ret = -EINVAL;
141b15e59175aa1 Christian König     2020-08-21  1133  				goto out;
8a39db76e79ef50 Ben Skeggs          2020-01-06  1134  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1135  
d7722134b8254bc Ben Skeggs          2017-11-01  1136  			reg->bus.base = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1137  			reg->bus.offset = handle;
141b15e59175aa1 Christian König     2020-08-21  1138  			ret = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1139  		}
f869ef882382a4b Ben Skeggs          2010-11-15  1140  		break;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1141  	default:
141b15e59175aa1 Christian König     2020-08-21  1142  		ret = -EINVAL;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1143  	}
141b15e59175aa1 Christian König     2020-08-21  1144  
141b15e59175aa1 Christian König     2020-08-21  1145  out:
141b15e59175aa1 Christian König     2020-08-21 @1146  	if (ret == -ENOSPC) {
141b15e59175aa1 Christian König     2020-08-21  1147  		struct nouveau_bo *nvbo;
141b15e59175aa1 Christian König     2020-08-21  1148  
141b15e59175aa1 Christian König     2020-08-21  1149  		nvbo = list_first_entry_or_null(&drm->ttm.io_reserve_lru,
141b15e59175aa1 Christian König     2020-08-21  1150  						typeof(*nvbo),
141b15e59175aa1 Christian König     2020-08-21  1151  						io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1152  		if (nvbo) {
141b15e59175aa1 Christian König     2020-08-21  1153  			list_del_init(&nvbo->io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1154  			drm_vma_node_unmap(&nvbo->bo.base.vma_node,
141b15e59175aa1 Christian König     2020-08-21  1155  					   bdev->dev_mapping);
141b15e59175aa1 Christian König     2020-08-21  1156  			nouveau_ttm_io_mem_free_locked(drm, &nvbo->bo.mem);
141b15e59175aa1 Christian König     2020-08-21  1157  			goto retry;
141b15e59175aa1 Christian König     2020-08-21  1158  		}
141b15e59175aa1 Christian König     2020-08-21  1159  
141b15e59175aa1 Christian König     2020-08-21  1160  	}
141b15e59175aa1 Christian König     2020-08-21  1161  	mutex_unlock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1162  	return ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1163  }
f32f02fd81f3177 Jerome Glisse       2010-04-09  1164  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34842 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [drm-drm-misc:drm-misc-next 4/5] drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.
@ 2020-09-04  6:57 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-09-04  6:57 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 9068 bytes --]

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   fe662d846c957c8861ade7170115e88f6e6e5fdd
commit: 141b15e59175aa174ca1f7596188bd15a7ca17ba [4/5] drm/nouveau: move io_reserve_lru handling into the driver v5
config: x86_64-randconfig-m001-20200903 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.

Old smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:432 nouveau_bo_pin() warn: should '1 << bo->mem.mem_type' be a 64 bit type?
include/drm/ttm/ttm_bo_driver.h:492 ttm_bo_reserve() warn: inconsistent returns '*bo->base.resv'.

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git fetch --no-tags drm-drm-misc drm-misc-next
git checkout 141b15e59175aa174ca1f7596188bd15a7ca17ba
vim +/ret +1146 drivers/gpu/drm/nouveau/nouveau_bo.c

f32f02fd81f3177 Jerome Glisse       2010-04-09  1066  static int
2966141ad2dda23 Dave Airlie         2020-08-04  1067  nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *reg)
f32f02fd81f3177 Jerome Glisse       2010-04-09  1068  {
ebb945a94bba2ce Ben Skeggs          2012-07-20  1069  	struct nouveau_drm *drm = nouveau_bdev(bdev);
1167c6bc51880cb Ben Skeggs          2016-05-18  1070  	struct nvkm_device *device = nvxx_device(&drm->client.device);
9ce523cc3bf2ac1 Ben Skeggs          2017-11-01  1071  	struct nouveau_mem *mem = nouveau_mem(reg);
141b15e59175aa1 Christian König     2020-08-21  1072  	int ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1073  
141b15e59175aa1 Christian König     2020-08-21  1074  	mutex_lock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1075  retry:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1076  	switch (reg->mem_type) {
f32f02fd81f3177 Jerome Glisse       2010-04-09  1077  	case TTM_PL_SYSTEM:
f32f02fd81f3177 Jerome Glisse       2010-04-09  1078  		/* System memory */
141b15e59175aa1 Christian König     2020-08-21  1079  		ret = 0;
141b15e59175aa1 Christian König     2020-08-21  1080  		goto out;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1081  	case TTM_PL_TT:
a7fb8a23c1afa60 Daniel Vetter       2015-09-09  1082  #if IS_ENABLED(CONFIG_AGP)
340b0e7c500a0ac Ben Skeggs          2015-08-20  1083  		if (drm->agp.bridge) {
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1084  			reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1085  			reg->bus.base = drm->agp.base;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1086  			reg->bus.is_iomem = !drm->agp.cma;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1087  		}
f32f02fd81f3177 Jerome Glisse       2010-04-09  1088  #endif
141b15e59175aa1 Christian König     2020-08-21  1089  		if (drm->client.mem->oclass < NVIF_CLASS_MEM_NV50 ||
141b15e59175aa1 Christian König     2020-08-21  1090  		    !mem->kind) {
a55409066472838 Maarten Lankhorst   2013-11-12  1091  			/* untiled */
141b15e59175aa1 Christian König     2020-08-21  1092  			ret = 0;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1093  			break;
141b15e59175aa1 Christian König     2020-08-21  1094  		}
f6e7393edefada6 Gustavo A. R. Silva 2020-07-07  1095  		fallthrough;	/* tiled memory */
f32f02fd81f3177 Jerome Glisse       2010-04-09  1096  	case TTM_PL_VRAM:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1097  		reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1098  		reg->bus.base = device->func->resource_addr(device, 1);
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1099  		reg->bus.is_iomem = true;
d7722134b8254bc Ben Skeggs          2017-11-01  1100  		if (drm->client.mem->oclass >= NVIF_CLASS_MEM_NV50) {
d7722134b8254bc Ben Skeggs          2017-11-01  1101  			union {
d7722134b8254bc Ben Skeggs          2017-11-01  1102  				struct nv50_mem_map_v0 nv50;
d7722134b8254bc Ben Skeggs          2017-11-01  1103  				struct gf100_mem_map_v0 gf100;
d7722134b8254bc Ben Skeggs          2017-11-01  1104  			} args;
d7722134b8254bc Ben Skeggs          2017-11-01  1105  			u64 handle, length;
d7722134b8254bc Ben Skeggs          2017-11-01  1106  			u32 argc = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1107  
d7722134b8254bc Ben Skeggs          2017-11-01  1108  			switch (mem->mem.object.oclass) {
d7722134b8254bc Ben Skeggs          2017-11-01  1109  			case NVIF_CLASS_MEM_NV50:
d7722134b8254bc Ben Skeggs          2017-11-01  1110  				args.nv50.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1111  				args.nv50.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1112  				args.nv50.kind = mem->kind;
d7722134b8254bc Ben Skeggs          2017-11-01  1113  				args.nv50.comp = mem->comp;
b554b12addf939f Thierry Reding      2018-01-19  1114  				argc = sizeof(args.nv50);
d7722134b8254bc Ben Skeggs          2017-11-01  1115  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1116  			case NVIF_CLASS_MEM_GF100:
d7722134b8254bc Ben Skeggs          2017-11-01  1117  				args.gf100.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1118  				args.gf100.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1119  				args.gf100.kind = mem->kind;
b554b12addf939f Thierry Reding      2018-01-19  1120  				argc = sizeof(args.gf100);
d7722134b8254bc Ben Skeggs          2017-11-01  1121  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1122  			default:
d7722134b8254bc Ben Skeggs          2017-11-01  1123  				WARN_ON(1);
d7722134b8254bc Ben Skeggs          2017-11-01  1124  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1125  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1126  
d7722134b8254bc Ben Skeggs          2017-11-01  1127  			ret = nvif_object_map_handle(&mem->mem.object,
b554b12addf939f Thierry Reding      2018-01-19  1128  						     &args, argc,
d7722134b8254bc Ben Skeggs          2017-11-01  1129  						     &handle, &length);
8a39db76e79ef50 Ben Skeggs          2020-01-06  1130  			if (ret != 1) {
8a39db76e79ef50 Ben Skeggs          2020-01-06  1131  				if (WARN_ON(ret == 0))
141b15e59175aa1 Christian König     2020-08-21  1132  					ret = -EINVAL;
141b15e59175aa1 Christian König     2020-08-21  1133  				goto out;
8a39db76e79ef50 Ben Skeggs          2020-01-06  1134  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1135  
d7722134b8254bc Ben Skeggs          2017-11-01  1136  			reg->bus.base = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1137  			reg->bus.offset = handle;
141b15e59175aa1 Christian König     2020-08-21  1138  			ret = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1139  		}


"ret" not set if mem_type is TTM_PL_VRAM and drm->client.mem->oclass
less than NVIF_CLASS_MEM_NV50.

f869ef882382a4b Ben Skeggs          2010-11-15  1140  		break;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1141  	default:
141b15e59175aa1 Christian König     2020-08-21  1142  		ret = -EINVAL;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1143  	}
141b15e59175aa1 Christian König     2020-08-21  1144  
141b15e59175aa1 Christian König     2020-08-21  1145  out:
141b15e59175aa1 Christian König     2020-08-21 @1146  	if (ret == -ENOSPC) {
                                                            ^^^^^^^^^^^^^^

141b15e59175aa1 Christian König     2020-08-21  1147  		struct nouveau_bo *nvbo;
141b15e59175aa1 Christian König     2020-08-21  1148  
141b15e59175aa1 Christian König     2020-08-21  1149  		nvbo = list_first_entry_or_null(&drm->ttm.io_reserve_lru,
141b15e59175aa1 Christian König     2020-08-21  1150  						typeof(*nvbo),
141b15e59175aa1 Christian König     2020-08-21  1151  						io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1152  		if (nvbo) {
141b15e59175aa1 Christian König     2020-08-21  1153  			list_del_init(&nvbo->io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1154  			drm_vma_node_unmap(&nvbo->bo.base.vma_node,
141b15e59175aa1 Christian König     2020-08-21  1155  					   bdev->dev_mapping);
141b15e59175aa1 Christian König     2020-08-21  1156  			nouveau_ttm_io_mem_free_locked(drm, &nvbo->bo.mem);
141b15e59175aa1 Christian König     2020-08-21  1157  			goto retry;
141b15e59175aa1 Christian König     2020-08-21  1158  		}
141b15e59175aa1 Christian König     2020-08-21  1159  
141b15e59175aa1 Christian König     2020-08-21  1160  	}
141b15e59175aa1 Christian König     2020-08-21  1161  	mutex_unlock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1162  	return ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1163  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34842 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [drm-drm-misc:drm-misc-next 4/5] drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.
@ 2020-09-04  6:57 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-09-04  6:57 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9068 bytes --]

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   fe662d846c957c8861ade7170115e88f6e6e5fdd
commit: 141b15e59175aa174ca1f7596188bd15a7ca17ba [4/5] drm/nouveau: move io_reserve_lru handling into the driver v5
config: x86_64-randconfig-m001-20200903 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret'.

Old smatch warnings:
drivers/gpu/drm/nouveau/nouveau_bo.c:432 nouveau_bo_pin() warn: should '1 << bo->mem.mem_type' be a 64 bit type?
include/drm/ttm/ttm_bo_driver.h:492 ttm_bo_reserve() warn: inconsistent returns '*bo->base.resv'.

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git fetch --no-tags drm-drm-misc drm-misc-next
git checkout 141b15e59175aa174ca1f7596188bd15a7ca17ba
vim +/ret +1146 drivers/gpu/drm/nouveau/nouveau_bo.c

f32f02fd81f3177 Jerome Glisse       2010-04-09  1066  static int
2966141ad2dda23 Dave Airlie         2020-08-04  1067  nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *reg)
f32f02fd81f3177 Jerome Glisse       2010-04-09  1068  {
ebb945a94bba2ce Ben Skeggs          2012-07-20  1069  	struct nouveau_drm *drm = nouveau_bdev(bdev);
1167c6bc51880cb Ben Skeggs          2016-05-18  1070  	struct nvkm_device *device = nvxx_device(&drm->client.device);
9ce523cc3bf2ac1 Ben Skeggs          2017-11-01  1071  	struct nouveau_mem *mem = nouveau_mem(reg);
141b15e59175aa1 Christian König     2020-08-21  1072  	int ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1073  
141b15e59175aa1 Christian König     2020-08-21  1074  	mutex_lock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1075  retry:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1076  	switch (reg->mem_type) {
f32f02fd81f3177 Jerome Glisse       2010-04-09  1077  	case TTM_PL_SYSTEM:
f32f02fd81f3177 Jerome Glisse       2010-04-09  1078  		/* System memory */
141b15e59175aa1 Christian König     2020-08-21  1079  		ret = 0;
141b15e59175aa1 Christian König     2020-08-21  1080  		goto out;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1081  	case TTM_PL_TT:
a7fb8a23c1afa60 Daniel Vetter       2015-09-09  1082  #if IS_ENABLED(CONFIG_AGP)
340b0e7c500a0ac Ben Skeggs          2015-08-20  1083  		if (drm->agp.bridge) {
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1084  			reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1085  			reg->bus.base = drm->agp.base;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1086  			reg->bus.is_iomem = !drm->agp.cma;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1087  		}
f32f02fd81f3177 Jerome Glisse       2010-04-09  1088  #endif
141b15e59175aa1 Christian König     2020-08-21  1089  		if (drm->client.mem->oclass < NVIF_CLASS_MEM_NV50 ||
141b15e59175aa1 Christian König     2020-08-21  1090  		    !mem->kind) {
a55409066472838 Maarten Lankhorst   2013-11-12  1091  			/* untiled */
141b15e59175aa1 Christian König     2020-08-21  1092  			ret = 0;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1093  			break;
141b15e59175aa1 Christian König     2020-08-21  1094  		}
f6e7393edefada6 Gustavo A. R. Silva 2020-07-07  1095  		fallthrough;	/* tiled memory */
f32f02fd81f3177 Jerome Glisse       2010-04-09  1096  	case TTM_PL_VRAM:
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1097  		reg->bus.offset = reg->start << PAGE_SHIFT;
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1098  		reg->bus.base = device->func->resource_addr(device, 1);
605f9ccd7d0ad60 Ben Skeggs          2016-05-17  1099  		reg->bus.is_iomem = true;
d7722134b8254bc Ben Skeggs          2017-11-01  1100  		if (drm->client.mem->oclass >= NVIF_CLASS_MEM_NV50) {
d7722134b8254bc Ben Skeggs          2017-11-01  1101  			union {
d7722134b8254bc Ben Skeggs          2017-11-01  1102  				struct nv50_mem_map_v0 nv50;
d7722134b8254bc Ben Skeggs          2017-11-01  1103  				struct gf100_mem_map_v0 gf100;
d7722134b8254bc Ben Skeggs          2017-11-01  1104  			} args;
d7722134b8254bc Ben Skeggs          2017-11-01  1105  			u64 handle, length;
d7722134b8254bc Ben Skeggs          2017-11-01  1106  			u32 argc = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1107  
d7722134b8254bc Ben Skeggs          2017-11-01  1108  			switch (mem->mem.object.oclass) {
d7722134b8254bc Ben Skeggs          2017-11-01  1109  			case NVIF_CLASS_MEM_NV50:
d7722134b8254bc Ben Skeggs          2017-11-01  1110  				args.nv50.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1111  				args.nv50.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1112  				args.nv50.kind = mem->kind;
d7722134b8254bc Ben Skeggs          2017-11-01  1113  				args.nv50.comp = mem->comp;
b554b12addf939f Thierry Reding      2018-01-19  1114  				argc = sizeof(args.nv50);
d7722134b8254bc Ben Skeggs          2017-11-01  1115  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1116  			case NVIF_CLASS_MEM_GF100:
d7722134b8254bc Ben Skeggs          2017-11-01  1117  				args.gf100.version = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1118  				args.gf100.ro = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1119  				args.gf100.kind = mem->kind;
b554b12addf939f Thierry Reding      2018-01-19  1120  				argc = sizeof(args.gf100);
d7722134b8254bc Ben Skeggs          2017-11-01  1121  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1122  			default:
d7722134b8254bc Ben Skeggs          2017-11-01  1123  				WARN_ON(1);
d7722134b8254bc Ben Skeggs          2017-11-01  1124  				break;
d7722134b8254bc Ben Skeggs          2017-11-01  1125  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1126  
d7722134b8254bc Ben Skeggs          2017-11-01  1127  			ret = nvif_object_map_handle(&mem->mem.object,
b554b12addf939f Thierry Reding      2018-01-19  1128  						     &args, argc,
d7722134b8254bc Ben Skeggs          2017-11-01  1129  						     &handle, &length);
8a39db76e79ef50 Ben Skeggs          2020-01-06  1130  			if (ret != 1) {
8a39db76e79ef50 Ben Skeggs          2020-01-06  1131  				if (WARN_ON(ret == 0))
141b15e59175aa1 Christian König     2020-08-21  1132  					ret = -EINVAL;
141b15e59175aa1 Christian König     2020-08-21  1133  				goto out;
8a39db76e79ef50 Ben Skeggs          2020-01-06  1134  			}
d7722134b8254bc Ben Skeggs          2017-11-01  1135  
d7722134b8254bc Ben Skeggs          2017-11-01  1136  			reg->bus.base = 0;
d7722134b8254bc Ben Skeggs          2017-11-01  1137  			reg->bus.offset = handle;
141b15e59175aa1 Christian König     2020-08-21  1138  			ret = 0;
f869ef882382a4b Ben Skeggs          2010-11-15  1139  		}


"ret" not set if mem_type is TTM_PL_VRAM and drm->client.mem->oclass
less than NVIF_CLASS_MEM_NV50.

f869ef882382a4b Ben Skeggs          2010-11-15  1140  		break;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1141  	default:
141b15e59175aa1 Christian König     2020-08-21  1142  		ret = -EINVAL;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1143  	}
141b15e59175aa1 Christian König     2020-08-21  1144  
141b15e59175aa1 Christian König     2020-08-21  1145  out:
141b15e59175aa1 Christian König     2020-08-21 @1146  	if (ret == -ENOSPC) {
                                                            ^^^^^^^^^^^^^^

141b15e59175aa1 Christian König     2020-08-21  1147  		struct nouveau_bo *nvbo;
141b15e59175aa1 Christian König     2020-08-21  1148  
141b15e59175aa1 Christian König     2020-08-21  1149  		nvbo = list_first_entry_or_null(&drm->ttm.io_reserve_lru,
141b15e59175aa1 Christian König     2020-08-21  1150  						typeof(*nvbo),
141b15e59175aa1 Christian König     2020-08-21  1151  						io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1152  		if (nvbo) {
141b15e59175aa1 Christian König     2020-08-21  1153  			list_del_init(&nvbo->io_reserve_lru);
141b15e59175aa1 Christian König     2020-08-21  1154  			drm_vma_node_unmap(&nvbo->bo.base.vma_node,
141b15e59175aa1 Christian König     2020-08-21  1155  					   bdev->dev_mapping);
141b15e59175aa1 Christian König     2020-08-21  1156  			nouveau_ttm_io_mem_free_locked(drm, &nvbo->bo.mem);
141b15e59175aa1 Christian König     2020-08-21  1157  			goto retry;
141b15e59175aa1 Christian König     2020-08-21  1158  		}
141b15e59175aa1 Christian König     2020-08-21  1159  
141b15e59175aa1 Christian König     2020-08-21  1160  	}
141b15e59175aa1 Christian König     2020-08-21  1161  	mutex_unlock(&drm->ttm.io_reserve_mutex);
141b15e59175aa1 Christian König     2020-08-21  1162  	return ret;
f32f02fd81f3177 Jerome Glisse       2010-04-09  1163  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34842 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-09-04  6:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-04  6:57 [drm-drm-misc:drm-misc-next 4/5] drivers/gpu/drm/nouveau/nouveau_bo.c:1146 nouveau_ttm_io_mem_reserve() error: uninitialized symbol 'ret' Dan Carpenter
2020-09-04  6:57 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-09-03 21:22 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.