Hi Mario,

kernel test robot noticed the following build errors:

[auto build test ERROR on rafael-pm/linux-next]
[also build test ERROR on rafael-pm/bleeding-edge linus/master v6.18-rc2 
next-20251023]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/PM-Allow-device-drivers-to-manage-the-frozen-state-of-a-device/20251022-235319
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git 
linux-next
patch link:    
https://lore.kernel.org/r/20251022155114.48418-2-mario.limonciello%40amd.com
patch subject: [PATCH 1/2] PM: Allow device drivers to manage the frozen state 
of a device
config: x86_64-randconfig-003-20251023 
(https://download.01.org/0day-ci/archive/20251023/[email protected]/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 
87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20251023/[email protected]/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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

>> drivers/base/power/main.c:1114:26: error: no member named 'is_frozen' in 
>> 'struct dev_pm_info'
    1114 |         if (error && dev->power.is_frozen) {
         |                      ~~~~~~~~~~ ^
   1 error generated.


vim +1114 drivers/base/power/main.c

  1026  
  1027  /**
  1028   * device_resume - Execute "resume" callbacks for given device.
  1029   * @dev: Device to handle.
  1030   * @state: PM transition of the system being carried out.
  1031   * @async: If true, the device is being resumed asynchronously.
  1032   */
  1033  static void device_resume(struct device *dev, pm_message_t state, bool 
async)
  1034  {
  1035          pm_callback_t callback = NULL;
  1036          const char *info = NULL;
  1037          int error = 0;
  1038          DECLARE_DPM_WATCHDOG_ON_STACK(wd);
  1039  
  1040          TRACE_DEVICE(dev);
  1041          TRACE_RESUME(0);
  1042  
  1043          if (dev->power.syscore)
  1044                  goto Complete;
  1045  
  1046          if (!dev->power.is_suspended)
  1047                  goto Complete;
  1048  
  1049          dev->power.is_suspended = false;
  1050  
  1051          if (dev->power.direct_complete) {
  1052                  /*
  1053                   * Allow new children to be added under the device 
after this
  1054                   * point if it has no PM callbacks.
  1055                   */
  1056                  if (dev->power.no_pm_callbacks)
  1057                          dev->power.is_prepared = false;
  1058  
  1059                  /* Match the pm_runtime_disable() in device_suspend(). 
*/
  1060                  pm_runtime_enable(dev);
  1061                  goto Complete;
  1062          }
  1063  
  1064          if (!dpm_wait_for_superior(dev, async))
  1065                  goto Complete;
  1066  
  1067          dpm_watchdog_set(&wd, dev);
  1068          device_lock(dev);
  1069  
  1070          /*
  1071           * This is a fib.  But we'll allow new children to be added 
below
  1072           * a resumed device, even if the device hasn't been completed 
yet.
  1073           */
  1074          dev->power.is_prepared = false;
  1075  
  1076          if (dev->pm_domain) {
  1077                  info = "power domain ";
  1078                  callback = pm_op(&dev->pm_domain->ops, state);
  1079                  goto Driver;
  1080          }
  1081  
  1082          if (dev->type && dev->type->pm) {
  1083                  info = "type ";
  1084                  callback = pm_op(dev->type->pm, state);
  1085                  goto Driver;
  1086          }
  1087  
  1088          if (dev->class && dev->class->pm) {
  1089                  info = "class ";
  1090                  callback = pm_op(dev->class->pm, state);
  1091                  goto Driver;
  1092          }
  1093  
  1094          if (dev->bus) {
  1095                  if (dev->bus->pm) {
  1096                          info = "bus ";
  1097                          callback = pm_op(dev->bus->pm, state);
  1098                  } else if (dev->bus->resume) {
  1099                          info = "legacy bus ";
  1100                          callback = dev->bus->resume;
  1101                          goto End;
  1102                  }
  1103          }
  1104  
  1105   Driver:
  1106          if (!callback && dev->driver && dev->driver->pm) {
  1107                  info = "driver ";
  1108                  callback = pm_op(dev->driver->pm, state);
  1109          }
  1110  
  1111   End:
  1112          error = dpm_run_callback(callback, dev, state, info);
  1113          /* device manages frozen state */
> 1114          if (error && dev->power.is_frozen) {
  1115                  dev->power.is_suspended = true;
  1116                  error = 0;
  1117          }
  1118  
  1119          device_unlock(dev);
  1120          dpm_watchdog_clear(&wd);
  1121  
  1122   Complete:
  1123          complete_all(&dev->power.completion);
  1124  
  1125          TRACE_RESUME(error);
  1126  
  1127          if (error) {
  1128                  WRITE_ONCE(async_error, error);
  1129                  dpm_save_failed_dev(dev_name(dev));
  1130                  pm_dev_err(dev, state, async ? " async" : "", error);
  1131          }
  1132  
  1133          dpm_async_resume_subordinate(dev, async_resume);
  1134  }
  1135  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to