[PATCH 4/6] powerpc/pseries: Add ibm,set-dynamic-indicator RTAS call support
Dan Carpenter
dan.carpenter at linaro.org
Thu Jan 9 18:38:31 AEDT 2025
Hi Haren,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Haren-Myneni/powerpc-pseries-Define-common-functions-for-RTAS-sequence-HCALLs/20250105-045010
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
patch link: https://lore.kernel.org/r/20250104204652.388720-5-haren%40linux.ibm.com
patch subject: [PATCH 4/6] powerpc/pseries: Add ibm,set-dynamic-indicator RTAS call support
config: powerpc64-randconfig-r071-20250108 (https://download.01.org/0day-ci/archive/20250109/202501090337.xKCGrblc-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 096551537b2a747a3387726ca618ceeb3950e9bc)
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 at intel.com>
| Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
| Closes: https://lore.kernel.org/r/202501090337.xKCGrblc-lkp@intel.com/
smatch warnings:
arch/powerpc/platforms/pseries/papr-indices.c:438 papr_dynamic_indicator_ioc_set() warn: inconsistent returns 'global &rtas_ibm_set_dynamic_indicator_lock'.
vim +438 arch/powerpc/platforms/pseries/papr-indices.c
3f48afd07934e4 Haren Myneni 2025-01-04 397 static long papr_dynamic_indicator_ioc_set(struct papr_indices_io_block __user *ubuf)
3f48afd07934e4 Haren Myneni 2025-01-04 398 {
3f48afd07934e4 Haren Myneni 2025-01-04 399 struct papr_indices_io_block kbuf;
3f48afd07934e4 Haren Myneni 2025-01-04 400 struct rtas_work_area *work_area;
3f48afd07934e4 Haren Myneni 2025-01-04 401 s32 fwrc, token, ret;
3f48afd07934e4 Haren Myneni 2025-01-04 402
3f48afd07934e4 Haren Myneni 2025-01-04 403 token = rtas_function_token(RTAS_FN_IBM_SET_DYNAMIC_INDICATOR);
3f48afd07934e4 Haren Myneni 2025-01-04 404 if (token == RTAS_UNKNOWN_SERVICE)
3f48afd07934e4 Haren Myneni 2025-01-04 405 return -ENOENT;
3f48afd07934e4 Haren Myneni 2025-01-04 406
3f48afd07934e4 Haren Myneni 2025-01-04 407 mutex_lock(&rtas_ibm_set_dynamic_indicator_lock);
3f48afd07934e4 Haren Myneni 2025-01-04 408 work_area = papr_dynamic_indice_buf_from_user(ubuf, &kbuf);
3f48afd07934e4 Haren Myneni 2025-01-04 409 if (IS_ERR(work_area))
3f48afd07934e4 Haren Myneni 2025-01-04 410 return PTR_ERR(work_area);
mutex_unlock(&rtas_ibm_set_dynamic_indicator_lock); before returning
3f48afd07934e4 Haren Myneni 2025-01-04 411
3f48afd07934e4 Haren Myneni 2025-01-04 412 do {
3f48afd07934e4 Haren Myneni 2025-01-04 413 fwrc = rtas_call(token, 3, 1, NULL,
3f48afd07934e4 Haren Myneni 2025-01-04 414 kbuf.dynamic_param.token,
3f48afd07934e4 Haren Myneni 2025-01-04 415 kbuf.dynamic_param.state,
3f48afd07934e4 Haren Myneni 2025-01-04 416 rtas_work_area_phys(work_area));
3f48afd07934e4 Haren Myneni 2025-01-04 417 } while (rtas_busy_delay(fwrc));
3f48afd07934e4 Haren Myneni 2025-01-04 418
3f48afd07934e4 Haren Myneni 2025-01-04 419 rtas_work_area_free(work_area);
3f48afd07934e4 Haren Myneni 2025-01-04 420 mutex_unlock(&rtas_ibm_set_dynamic_indicator_lock);
3f48afd07934e4 Haren Myneni 2025-01-04 421
3f48afd07934e4 Haren Myneni 2025-01-04 422 switch (fwrc) {
3f48afd07934e4 Haren Myneni 2025-01-04 423 case RTAS_IBM_DYNAMIC_INDICE_SUCCESS:
3f48afd07934e4 Haren Myneni 2025-01-04 424 ret = 0;
3f48afd07934e4 Haren Myneni 2025-01-04 425 break;
3f48afd07934e4 Haren Myneni 2025-01-04 426 case RTAS_IBM_DYNAMIC_INDICE_NO_INDICATOR: /* No such indicator */
3f48afd07934e4 Haren Myneni 2025-01-04 427 ret = -EOPNOTSUPP;
3f48afd07934e4 Haren Myneni 2025-01-04 428 break;
3f48afd07934e4 Haren Myneni 2025-01-04 429 default:
3f48afd07934e4 Haren Myneni 2025-01-04 430 pr_err("unexpected ibm,set-dynamic-indicator result %d\n",
3f48afd07934e4 Haren Myneni 2025-01-04 431 fwrc);
3f48afd07934e4 Haren Myneni 2025-01-04 432 fallthrough;
3f48afd07934e4 Haren Myneni 2025-01-04 433 case RTAS_IBM_DYNAMIC_INDICE_HW_ERROR: /* Hardware/platform error */
3f48afd07934e4 Haren Myneni 2025-01-04 434 ret = -EIO;
3f48afd07934e4 Haren Myneni 2025-01-04 435 break;
3f48afd07934e4 Haren Myneni 2025-01-04 436 }
3f48afd07934e4 Haren Myneni 2025-01-04 437
3f48afd07934e4 Haren Myneni 2025-01-04 @438 return ret;
3f48afd07934e4 Haren Myneni 2025-01-04 439 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Linuxppc-dev
mailing list