Hi Ashutosh, > @@ -839,16 +837,38 @@ void i915_hwmon_register(struct drm_i915_private *i915) > if (!hwm_gt_is_visible(ddat_gt, hwmon_energy, hwmon_energy_input, 0)) > continue; > > - hwmon_dev = devm_hwmon_device_register_with_info(dev, ddat_gt->name, > - ddat_gt, > - &hwm_gt_chip_info, > - NULL); > - if (!IS_ERR(hwmon_dev)) > - ddat_gt->hwmon_dev = hwmon_dev; > + hwmon_dev = hwmon_device_register_with_info(dev, ddat_gt->name, > + ddat_gt, > + &hwm_gt_chip_info, > + NULL); > + if (IS_ERR(hwmon_dev)) > + goto err; here the logic is changing, though. Before we were not leaving if hwmon_device_register_with_info() was returning error. Is this wanted? And why isn't it described in the log? Thanks, Andi > + > + ddat_gt->hwmon_dev = hwmon_dev; > }