tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 591cd61541b9b95401e17dca24be486e32104cb8 commit: 41f425adbce9013a0e91a9670bf43fa141ab9414 [9158/13707] drm/i915/gt: Manage uncore->lock while waiting on MCR register config: x86_64-defconfig compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=41f425adbce9013a0e91a9670bf43fa141ab9414 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 41f425adbce9013a0e91a9670bf43fa141ab9414 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/i915/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/gpu/drm/i915/gt/intel_gt_mcr.c:739: warning: expecting prototype for intel_gt_mcr_wait_for_reg_fw(). Prototype was for intel_gt_mcr_wait_for_reg() instead vim +739 drivers/gpu/drm/i915/gt/intel_gt_mcr.c 3068bec83eea32 Matt Roper 2022-10-14 703 3068bec83eea32 Matt Roper 2022-10-14 704 /** 3068bec83eea32 Matt Roper 2022-10-14 705 * intel_gt_mcr_wait_for_reg_fw - wait until MCR register matches expected state 3068bec83eea32 Matt Roper 2022-10-14 706 * @gt: GT structure 3068bec83eea32 Matt Roper 2022-10-14 707 * @reg: the register to read 3068bec83eea32 Matt Roper 2022-10-14 708 * @mask: mask to apply to register value 3068bec83eea32 Matt Roper 2022-10-14 709 * @value: value to wait for 3068bec83eea32 Matt Roper 2022-10-14 710 * @fast_timeout_us: fast timeout in microsecond for atomic/tight wait 3068bec83eea32 Matt Roper 2022-10-14 711 * @slow_timeout_ms: slow timeout in millisecond 3068bec83eea32 Matt Roper 2022-10-14 712 * 3068bec83eea32 Matt Roper 2022-10-14 713 * This routine waits until the target register @reg contains the expected 3068bec83eea32 Matt Roper 2022-10-14 714 * @value after applying the @mask, i.e. it waits until :: 3068bec83eea32 Matt Roper 2022-10-14 715 * 3068bec83eea32 Matt Roper 2022-10-14 716 * (intel_gt_mcr_read_any_fw(gt, reg) & mask) == value 3068bec83eea32 Matt Roper 2022-10-14 717 * 3068bec83eea32 Matt Roper 2022-10-14 718 * Otherwise, the wait will timeout after @slow_timeout_ms milliseconds. 3068bec83eea32 Matt Roper 2022-10-14 719 * For atomic context @slow_timeout_ms must be zero and @fast_timeout_us 3068bec83eea32 Matt Roper 2022-10-14 720 * must be not larger than 20,0000 microseconds. 3068bec83eea32 Matt Roper 2022-10-14 721 * 3068bec83eea32 Matt Roper 2022-10-14 722 * This function is basically an MCR-friendly version of 3068bec83eea32 Matt Roper 2022-10-14 723 * __intel_wait_for_register_fw(). Generally this function will only be used 3068bec83eea32 Matt Roper 2022-10-14 724 * on GAM registers which are a bit special --- although they're MCR registers, 3068bec83eea32 Matt Roper 2022-10-14 725 * reads (e.g., waiting for status updates) are always directed to the primary 3068bec83eea32 Matt Roper 2022-10-14 726 * instance. 3068bec83eea32 Matt Roper 2022-10-14 727 * 3068bec83eea32 Matt Roper 2022-10-14 728 * Note that this routine assumes the caller holds forcewake asserted, it is 3068bec83eea32 Matt Roper 2022-10-14 729 * not suitable for very long waits. 3068bec83eea32 Matt Roper 2022-10-14 730 * 3068bec83eea32 Matt Roper 2022-10-14 731 * Return: 0 if the register matches the desired condition, or -ETIMEDOUT. 3068bec83eea32 Matt Roper 2022-10-14 732 */ 41f425adbce901 Matt Roper 2022-11-17 733 int intel_gt_mcr_wait_for_reg(struct intel_gt *gt, 58bc2453ab8a4b Matt Roper 2022-10-14 734 i915_mcr_reg_t reg, 3068bec83eea32 Matt Roper 2022-10-14 735 u32 mask, 3068bec83eea32 Matt Roper 2022-10-14 736 u32 value, 3068bec83eea32 Matt Roper 2022-10-14 737 unsigned int fast_timeout_us, 3068bec83eea32 Matt Roper 2022-10-14 738 unsigned int slow_timeout_ms) 3068bec83eea32 Matt Roper 2022-10-14 @739 { 3068bec83eea32 Matt Roper 2022-10-14 740 int ret; 3068bec83eea32 Matt Roper 2022-10-14 741 41f425adbce901 Matt Roper 2022-11-17 742 lockdep_assert_not_held(>->uncore->lock); 41f425adbce901 Matt Roper 2022-11-17 743 :::::: The code at line 739 was first introduced by commit :::::: 3068bec83eea324b299105ec69a3f42c7968c6c0 drm/i915/gt: Add intel_gt_mcr_wait_for_reg_fw() :::::: TO: Matt Roper :::::: CC: Matt Roper -- 0-DAY CI Kernel Test Service https://01.org/lkp