Hi Souvik,

I love your patch! Perhaps something to improve:

[auto build test WARNING on platform-drivers-x86/for-next]
[also build test WARNING on v4.14 next-20171122]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Souvik-Kumar-Chakravarty/platform-x86-intel_telemetry-Fix-logs-and-formatting/20171123-052155
base:   git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git 
for-next
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   drivers/platform/x86/intel_telemetry_debugfs.c: In function 
'pm_suspend_exit_cb':
>> drivers/platform/x86/intel_telemetry_debugfs.c:915:25: warning: 
>> 'suspend_deep_ctr_exit' may be used uninitialized in this function 
>> [-Wmaybe-uninitialized]
       suspend_deep_ctr_exit++;
       ~~~~~~~~~~~~~~~~~~~~~^~
>> drivers/platform/x86/intel_telemetry_debugfs.c:912:25: warning: 
>> 'suspend_shlw_ctr_exit' may be used uninitialized in this function 
>> [-Wmaybe-uninitialized]
       suspend_shlw_ctr_exit++;
       ~~~~~~~~~~~~~~~~~~~~~^~

vim +/suspend_deep_ctr_exit +915 drivers/platform/x86/intel_telemetry_debugfs.c

   854  
   855  static int pm_suspend_exit_cb(void)
   856  {
   857          struct telemetry_evtlog evtlog[TELEM_MAX_OS_ALLOCATED_EVENTS];
   858          struct telemetry_debugfs_conf *conf = debugfs_conf;
   859          u32 suspend_shlw_ctr_exit, suspend_deep_ctr_exit;
   860          u64 suspend_shlw_res_exit, suspend_deep_res_exit;
   861          int ret, index;
   862  
   863          if (!suspend_prep_ok)
   864                  goto out;
   865  
   866          ret = telemetry_raw_read_eventlog(TELEM_IOSS, evtlog,
   867                                            
TELEM_MAX_OS_ALLOCATED_EVENTS);
   868          if (ret < 0)
   869                  goto out;
   870  
   871          for (index = 0; index < ret; index++) {
   872                  TELEM_CHECK_AND_PARSE_CTRS(conf->s0ix_shlw_occ_id,
   873                                             suspend_shlw_ctr_exit);
   874  
   875                  TELEM_CHECK_AND_PARSE_CTRS(conf->s0ix_deep_occ_id,
   876                                             suspend_deep_ctr_exit);
   877  
   878                  TELEM_CHECK_AND_PARSE_CTRS(conf->s0ix_shlw_res_id,
   879                                             suspend_shlw_res_exit);
   880  
   881                  TELEM_CHECK_AND_PARSE_CTRS(conf->s0ix_deep_res_id,
   882                                             suspend_deep_res_exit);
   883          }
   884  
   885          if ((suspend_shlw_ctr_exit < suspend_shlw_ctr_temp) ||
   886              (suspend_deep_ctr_exit < suspend_deep_ctr_temp) ||
   887              (suspend_shlw_res_exit < suspend_shlw_res_temp) ||
   888              (suspend_deep_res_exit < suspend_deep_res_temp)) {
   889                  pr_err("Wrong s0ix counters detected\n");
   890                  goto out;
   891          }
   892  
   893          /*
   894           * Due to some design limitations in the firmware, sometimes the
   895           * counters do not get updated by the time we reach here. As a
   896           * workaround, we try to see if this was a genuine case of sleep
   897           * failure or not by cross-checking from PMC GCR registers 
directly.
   898           */
   899          if (suspend_shlw_ctr_exit == suspend_shlw_ctr_temp &&
   900              suspend_deep_ctr_exit == suspend_deep_ctr_temp) {
   901                  ret = intel_pmc_gcr_readq(PMC_GCR_TELEM_SHLW_S0IX_REG,
   902                                            &suspend_shlw_res_exit);
   903                  if (ret < 0)
   904                          goto out;
   905  
   906                  ret = intel_pmc_gcr_readq(PMC_GCR_TELEM_DEEP_S0IX_REG,
   907                                            &suspend_deep_res_exit);
   908                  if (ret < 0)
   909                          goto out;
   910  
   911                  if (suspend_shlw_res_exit > suspend_shlw_res_temp)
 > 912                          suspend_shlw_ctr_exit++;
   913  
   914                  if (suspend_deep_res_exit > suspend_deep_res_temp)
 > 915                          suspend_deep_ctr_exit++;
   916          }
   917  
   918          suspend_shlw_ctr_exit -= suspend_shlw_ctr_temp;
   919          suspend_deep_ctr_exit -= suspend_deep_ctr_temp;
   920          suspend_shlw_res_exit -= suspend_shlw_res_temp;
   921          suspend_deep_res_exit -= suspend_deep_res_temp;
   922  
   923          if (suspend_shlw_ctr_exit == 1) {
   924                  conf->suspend_stats.shlw_ctr +=
   925                  suspend_shlw_ctr_exit;
   926  
   927                  conf->suspend_stats.shlw_res +=
   928                  suspend_shlw_res_exit;
   929          }
   930          /* Shallow Wakes Case */
   931          else if (suspend_shlw_ctr_exit > 1) {
   932                  conf->suspend_stats.shlw_swake_ctr +=
   933                  suspend_shlw_ctr_exit;
   934  
   935                  conf->suspend_stats.shlw_swake_res +=
   936                  suspend_shlw_res_exit;
   937          }
   938  
   939          if (suspend_deep_ctr_exit == 1) {
   940                  conf->suspend_stats.deep_ctr +=
   941                  suspend_deep_ctr_exit;
   942  
   943                  conf->suspend_stats.deep_res +=
   944                  suspend_deep_res_exit;
   945          }
   946  
   947          /* Shallow Wakes Case */
   948          else if (suspend_deep_ctr_exit > 1) {
   949                  conf->suspend_stats.deep_swake_ctr +=
   950                  suspend_deep_ctr_exit;
   951  
   952                  conf->suspend_stats.deep_swake_res +=
   953                  suspend_deep_res_exit;
   954          }
   955  
   956  out:
   957          suspend_prep_ok = 0;
   958          return NOTIFY_OK;
   959  }
   960  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to