[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202209020320.DEOLa6AV-lkp@intel.com>
Date: Fri, 2 Sep 2022 03:49:50 +0800
From: kernel test robot <lkp@...el.com>
To: Daniel Vetter <daniel.vetter@...ll.ch>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
Sean Paul <seanpaul@...omium.org>,
Stéphane Marchesin <marcheu@...omium.org>,
"Kristian H. Kristensen" <hoegsberg@...omium.org>
Subject: [jsarha:topic/cros-sof-v4.19 1155/6555]
drivers/gpu/drm/drm_atomic_uapi.c:1297: Error: unrecognized opcode `csrs
sstatus,s8'
tree: https://github.com/jsarha/linux topic/cros-sof-v4.19
head: d7a3e91d8d16d1ef8653deec5a1fffc4de034a0c
commit: dfdec43d0411076dc70591a0496a0824a8620695 [1155/6555] UPSTREAM: drm: extract drm_atomic_uapi.c
config: riscv-randconfig-r042-20220901 (https://download.01.org/0day-ci/archive/20220902/202209020320.DEOLa6AV-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/jsarha/linux/commit/dfdec43d0411076dc70591a0496a0824a8620695
git remote add jsarha https://github.com/jsarha/linux
git fetch --no-tags jsarha topic/cros-sof-v4.19
git checkout dfdec43d0411076dc70591a0496a0824a8620695
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash M=drivers/gpu/drm
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/drm_atomic_uapi.c: In function 'complete_signaling':
drivers/gpu/drm/drm_atomic_uapi.c:1193:26: warning: variable 'crtc' set but not used [-Wunused-but-set-variable]
1193 | struct drm_crtc *crtc;
| ^~~~
drivers/gpu/drm/drm_atomic_uapi.c: Assembler messages:
drivers/gpu/drm/drm_atomic_uapi.c:1230: Error: unrecognized opcode `csrs sstatus,s7'
drivers/gpu/drm/drm_atomic_uapi.c:1230: Error: unrecognized opcode `csrc sstatus,s7'
drivers/gpu/drm/drm_atomic_uapi.c:1052: Error: unrecognized opcode `csrs sstatus,a3'
drivers/gpu/drm/drm_atomic_uapi.c:1052: Error: unrecognized opcode `csrc sstatus,a3'
drivers/gpu/drm/drm_atomic_uapi.c:466: Error: unrecognized opcode `csrs sstatus,a3'
drivers/gpu/drm/drm_atomic_uapi.c:466: Error: unrecognized opcode `csrc sstatus,a3'
drivers/gpu/drm/drm_atomic_uapi.c:366: Error: unrecognized opcode `csrs sstatus,a3'
drivers/gpu/drm/drm_atomic_uapi.c:366: Error: unrecognized opcode `csrc sstatus,a3'
>> drivers/gpu/drm/drm_atomic_uapi.c:1297: Error: unrecognized opcode `csrs sstatus,s8'
>> drivers/gpu/drm/drm_atomic_uapi.c:1297: Error: unrecognized opcode `csrc sstatus,s8'
drivers/gpu/drm/drm_atomic_uapi.c:1314: Error: unrecognized opcode `csrs sstatus,s8'
drivers/gpu/drm/drm_atomic_uapi.c:1314: Error: unrecognized opcode `csrc sstatus,s8'
drivers/gpu/drm/drm_atomic_uapi.c:1327: Error: unrecognized opcode `csrs sstatus,s4'
drivers/gpu/drm/drm_atomic_uapi.c:1327: Error: unrecognized opcode `csrc sstatus,s4'
vim +1297 drivers/gpu/drm/drm_atomic_uapi.c
1186
1187 static void complete_signaling(struct drm_device *dev,
1188 struct drm_atomic_state *state,
1189 struct drm_out_fence_state *fence_state,
1190 unsigned int num_fences,
1191 bool install_fds)
1192 {
1193 struct drm_crtc *crtc;
1194 struct drm_crtc_state *crtc_state;
1195 int i;
1196
1197 if (install_fds) {
1198 for (i = 0; i < num_fences; i++)
1199 fd_install(fence_state[i].fd,
1200 fence_state[i].sync_file->file);
1201
1202 kfree(fence_state);
1203 return;
1204 }
1205
1206 for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
1207 struct drm_pending_vblank_event *event = crtc_state->event;
1208 /*
1209 * Free the allocated event. drm_atomic_helper_setup_commit
1210 * can allocate an event too, so only free it if it's ours
1211 * to prevent a double free in drm_atomic_state_clear.
1212 */
1213 if (event && (event->base.fence || event->base.file_priv)) {
1214 drm_event_cancel_free(dev, &event->base);
1215 crtc_state->event = NULL;
1216 }
1217 }
1218
1219 if (!fence_state)
1220 return;
1221
1222 for (i = 0; i < num_fences; i++) {
1223 if (fence_state[i].sync_file)
1224 fput(fence_state[i].sync_file->file);
1225 if (fence_state[i].fd >= 0)
1226 put_unused_fd(fence_state[i].fd);
1227
1228 /* If this fails log error to the user */
1229 if (fence_state[i].out_fence_ptr &&
> 1230 put_user(-1, fence_state[i].out_fence_ptr))
1231 DRM_DEBUG_ATOMIC("Couldn't clear out_fence_ptr\n");
1232 }
1233
1234 kfree(fence_state);
1235 }
1236
1237 int drm_mode_atomic_ioctl(struct drm_device *dev,
1238 void *data, struct drm_file *file_priv)
1239 {
1240 struct drm_mode_atomic *arg = data;
1241 uint32_t __user *objs_ptr = (uint32_t __user *)(unsigned long)(arg->objs_ptr);
1242 uint32_t __user *count_props_ptr = (uint32_t __user *)(unsigned long)(arg->count_props_ptr);
1243 uint32_t __user *props_ptr = (uint32_t __user *)(unsigned long)(arg->props_ptr);
1244 uint64_t __user *prop_values_ptr = (uint64_t __user *)(unsigned long)(arg->prop_values_ptr);
1245 unsigned int copied_objs, copied_props;
1246 struct drm_atomic_state *state;
1247 struct drm_modeset_acquire_ctx ctx;
1248 struct drm_out_fence_state *fence_state;
1249 int ret = 0;
1250 unsigned int i, j, num_fences;
1251
1252 /* disallow for drivers not supporting atomic: */
1253 if (!drm_core_check_feature(dev, DRIVER_ATOMIC))
1254 return -EINVAL;
1255
1256 /* disallow for userspace that has not enabled atomic cap (even
1257 * though this may be a bit overkill, since legacy userspace
1258 * wouldn't know how to call this ioctl)
1259 */
1260 if (!file_priv->atomic)
1261 return -EINVAL;
1262
1263 if (arg->flags & ~DRM_MODE_ATOMIC_FLAGS)
1264 return -EINVAL;
1265
1266 if (arg->reserved)
1267 return -EINVAL;
1268
1269 if ((arg->flags & DRM_MODE_PAGE_FLIP_ASYNC) &&
1270 !dev->mode_config.async_page_flip)
1271 return -EINVAL;
1272
1273 /* can't test and expect an event at the same time. */
1274 if ((arg->flags & DRM_MODE_ATOMIC_TEST_ONLY) &&
1275 (arg->flags & DRM_MODE_PAGE_FLIP_EVENT))
1276 return -EINVAL;
1277
1278 drm_modeset_acquire_init(&ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE);
1279
1280 state = drm_atomic_state_alloc(dev);
1281 if (!state)
1282 return -ENOMEM;
1283
1284 state->acquire_ctx = &ctx;
1285 state->allow_modeset = !!(arg->flags & DRM_MODE_ATOMIC_ALLOW_MODESET);
1286
1287 retry:
1288 copied_objs = 0;
1289 copied_props = 0;
1290 fence_state = NULL;
1291 num_fences = 0;
1292
1293 for (i = 0; i < arg->count_objs; i++) {
1294 uint32_t obj_id, count_props;
1295 struct drm_mode_object *obj;
1296
> 1297 if (get_user(obj_id, objs_ptr + copied_objs)) {
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Powered by blists - more mailing lists