tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: b992b79ca8bc336fa8e2c80990b5af80ed8f36fd commit: cdf02fe1a94a768cbcd20f5c4e1a1d805f4a06c0 [6327/7397] drm/xe/oa/uapi: Add/remove OA config perf ops config: i386-randconfig-062-20240621 (https://download.01.org/0day-ci/archive/20240621/202406210435.gX0OJVFq-lkp@xxxxxxxxx/config) compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240621/202406210435.gX0OJVFq-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406210435.gX0OJVFq-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) drivers/gpu/drm/xe/xe_oa.c:388:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long long [usertype] *ptr @@ got void [noderef] __user * @@ drivers/gpu/drm/xe/xe_oa.c:388:25: sparse: expected unsigned long long [usertype] *ptr drivers/gpu/drm/xe/xe_oa.c:388:25: sparse: got void [noderef] __user * >> drivers/gpu/drm/xe/xe_oa.c:401:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long long [usertype] *ptr @@ drivers/gpu/drm/xe/xe_oa.c:401:15: sparse: expected void const volatile [noderef] __user *ptr drivers/gpu/drm/xe/xe_oa.c:401:15: sparse: got unsigned long long [usertype] *ptr drivers/gpu/drm/xe/xe_oa.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/drm/drm_managed.h): include/linux/page-flags.h:240:46: sparse: sparse: self-comparison always evaluates to false include/linux/page-flags.h:240:46: sparse: sparse: self-comparison always evaluates to false vim +401 drivers/gpu/drm/xe/xe_oa.c 377 378 /** 379 * xe_oa_remove_config_ioctl - Removes one OA config 380 * @dev: @drm_device 381 * @data: pointer to struct @drm_xe_perf_param 382 * @file: @drm_file 383 */ 384 int xe_oa_remove_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file) 385 { 386 struct xe_oa *oa = &to_xe_device(dev)->oa; 387 struct xe_oa_config *oa_config; 388 u64 arg, *ptr = u64_to_user_ptr(data); 389 int ret; 390 391 if (!oa->xe) { 392 drm_dbg(&oa->xe->drm, "xe oa interface not available for this system\n"); 393 return -ENODEV; 394 } 395 396 if (xe_perf_stream_paranoid && !perfmon_capable()) { 397 drm_dbg(&oa->xe->drm, "Insufficient privileges to remove xe OA config\n"); 398 return -EACCES; 399 } 400 > 401 ret = get_user(arg, ptr); 402 if (XE_IOCTL_DBG(oa->xe, ret)) 403 return ret; 404 405 ret = mutex_lock_interruptible(&oa->metrics_lock); 406 if (ret) 407 return ret; 408 409 oa_config = idr_find(&oa->metrics_idr, arg); 410 if (!oa_config) { 411 drm_dbg(&oa->xe->drm, "Failed to remove unknown OA config\n"); 412 ret = -ENOENT; 413 goto err_unlock; 414 } 415 416 WARN_ON(arg != oa_config->id); 417 418 sysfs_remove_group(oa->metrics_kobj, &oa_config->sysfs_metric); 419 idr_remove(&oa->metrics_idr, arg); 420 421 mutex_unlock(&oa->metrics_lock); 422 423 drm_dbg(&oa->xe->drm, "Removed config %s id=%i\n", oa_config->uuid, oa_config->id); 424 425 xe_oa_config_put(oa_config); 426 427 return 0; 428 429 err_unlock: 430 mutex_unlock(&oa->metrics_lock); 431 return ret; 432 } 433 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki