Hi Andy,

kernel test robot noticed the following build errors:

[auto build test ERROR on ceph-client/testing]
[also build test ERROR on ceph-client/for-linus cminyard-ipmi/for-next 
mkp-scsi/for-next jejb-scsi/for-next linus/master v6.18-rc5 next-20251112]
[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/Andy-Shevchenko/lib-vsprintf-Add-specifier-for-printing-struct-timespec64/20251111-203105
base:   https://github.com/ceph/ceph-client.git testing
patch link:    
https://lore.kernel.org/r/20251111122735.880607-20-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v2 19/21] scsi: fnic: Switch to use %ptS
config: x86_64-kexec 
(https://download.01.org/0day-ci/archive/20251113/[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/20251113/[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/scsi/fnic/fnic_trace.c:234:2: error: cannot take the address of an 
>> rvalue of type 'struct timespec64'
     234 |         &timespec64_sub(val1, 
stats->stats_timestamps.last_reset_time),
         |         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/fnic/fnic_trace.c:235:2: error: cannot take the address of an 
rvalue of type 'struct timespec64'
     235 |         &timespec64_sub(val1, 
stats->stats_timestamps.last_read_time));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   2 errors generated.


vim +234 drivers/scsi/fnic/fnic_trace.c

   198  
   199  /*
   200   * fnic_get_stats_data - Copy fnic stats buffer to a memory file
   201   * @fnic_dbgfs_t: pointer to debugfs fnic stats buffer
   202   *
   203   * Description:
   204   * This routine gathers the fnic stats debugfs data from the fnic_stats 
struct
   205   * and dumps it to stats_debug_info.
   206   *
   207   * Return Value:
   208   * This routine returns the amount of bytes that were dumped into
   209   * stats_debug_info
   210   */
   211  int fnic_get_stats_data(struct stats_debug_info *debug,
   212                          struct fnic_stats *stats)
   213  {
   214          int len = 0;
   215          int buf_size = debug->buf_size;
   216          struct timespec64 val1, val2;
   217          int i = 0;
   218  
   219          ktime_get_real_ts64(&val1);
   220          len = scnprintf(debug->debug_buffer + len, buf_size - len,
   221                  "------------------------------------------\n"
   222                   "\t\tTime\n"
   223                  "------------------------------------------\n");
   224  
   225          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   226                  "Current time :          [%ptSp]\n"
   227                  "Last stats reset time:  [%ptSp]\n"
   228                  "Last stats read time:   [%ptSp]\n"
   229                  "delta since last reset: [%ptSp]\n"
   230                  "delta since last read:  [%ptSp]\n",
   231          &val1,
   232          &stats->stats_timestamps.last_reset_time,
   233          &stats->stats_timestamps.last_read_time,
 > 234          &timespec64_sub(val1, stats->stats_timestamps.last_reset_time),
   235          &timespec64_sub(val1, stats->stats_timestamps.last_read_time));
   236  
   237          stats->stats_timestamps.last_read_time = val1;
   238  
   239          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   240                    "------------------------------------------\n"
   241                    "\t\tIO Statistics\n"
   242                    "------------------------------------------\n");
   243          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   244                    "Number of Active IOs: %lld\nMaximum Active IOs: 
%lld\n"
   245                    "Number of IOs: %lld\nNumber of IO Completions: 
%lld\n"
   246                    "Number of IO Failures: %lld\nNumber of IO NOT Found: 
%lld\n"
   247                    "Number of Memory alloc Failures: %lld\n"
   248                    "Number of IOREQ Null: %lld\n"
   249                    "Number of SCSI cmd pointer Null: %lld\n"
   250  
   251                    "\nIO completion times: \n"
   252                    "            < 10 ms : %lld\n"
   253                    "     10 ms - 100 ms : %lld\n"
   254                    "    100 ms - 500 ms : %lld\n"
   255                    "    500 ms -   5 sec: %lld\n"
   256                    "     5 sec -  10 sec: %lld\n"
   257                    "    10 sec -  30 sec: %lld\n"
   258                    "            > 30 sec: %lld\n",
   259                    (u64)atomic64_read(&stats->io_stats.active_ios),
   260                    (u64)atomic64_read(&stats->io_stats.max_active_ios),
   261                    (u64)atomic64_read(&stats->io_stats.num_ios),
   262                    (u64)atomic64_read(&stats->io_stats.io_completions),
   263                    (u64)atomic64_read(&stats->io_stats.io_failures),
   264                    (u64)atomic64_read(&stats->io_stats.io_not_found),
   265                    (u64)atomic64_read(&stats->io_stats.alloc_failures),
   266                    (u64)atomic64_read(&stats->io_stats.ioreq_null),
   267                    (u64)atomic64_read(&stats->io_stats.sc_null),
   268                    
(u64)atomic64_read(&stats->io_stats.io_btw_0_to_10_msec),
   269                    
(u64)atomic64_read(&stats->io_stats.io_btw_10_to_100_msec),
   270                    
(u64)atomic64_read(&stats->io_stats.io_btw_100_to_500_msec),
   271                    
(u64)atomic64_read(&stats->io_stats.io_btw_500_to_5000_msec),
   272                    
(u64)atomic64_read(&stats->io_stats.io_btw_5000_to_10000_msec),
   273                    
(u64)atomic64_read(&stats->io_stats.io_btw_10000_to_30000_msec),
   274                    
(u64)atomic64_read(&stats->io_stats.io_greater_than_30000_msec));
   275  
   276          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   277                          "------------------------------------------\n"
   278                          "\t\tIO Queues and cumulative IOs\n"
   279                          "------------------------------------------\n");
   280  
   281          for (i = 0; i < FNIC_MQ_MAX_QUEUES; i++) {
   282                  len += scnprintf(debug->debug_buffer + len, buf_size - 
len,
   283                                  "Q:%d -> %lld\n", i, 
(u64)atomic64_read(&stats->io_stats.ios[i]));
   284          }
   285  
   286          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   287                    "\nCurrent Max IO time : %lld\n",
   288                    
(u64)atomic64_read(&stats->io_stats.current_max_io_time));
   289  
   290          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   291                    "\n------------------------------------------\n"
   292                    "\t\tAbort Statistics\n"
   293                    "------------------------------------------\n");
   294  
   295          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   296                    "Number of Aborts: %lld\n"
   297                    "Number of Abort Failures: %lld\n"
   298                    "Number of Abort Driver Timeouts: %lld\n"
   299                    "Number of Abort FW Timeouts: %lld\n"
   300                    "Number of Abort IO NOT Found: %lld\n"
   301  
   302                    "Abort issued times: \n"
   303                    "            < 6 sec : %lld\n"
   304                    "     6 sec - 20 sec : %lld\n"
   305                    "    20 sec - 30 sec : %lld\n"
   306                    "    30 sec - 40 sec : %lld\n"
   307                    "    40 sec - 50 sec : %lld\n"
   308                    "    50 sec - 60 sec : %lld\n"
   309                    "            > 60 sec: %lld\n",
   310  
   311                    (u64)atomic64_read(&stats->abts_stats.aborts),
   312                    (u64)atomic64_read(&stats->abts_stats.abort_failures),
   313                    
(u64)atomic64_read(&stats->abts_stats.abort_drv_timeouts),
   314                    
(u64)atomic64_read(&stats->abts_stats.abort_fw_timeouts),
   315                    
(u64)atomic64_read(&stats->abts_stats.abort_io_not_found),
   316                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_0_to_6_sec),
   317                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_6_to_20_sec),
   318                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_20_to_30_sec),
   319                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_30_to_40_sec),
   320                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_40_to_50_sec),
   321                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_btw_50_to_60_sec),
   322                    
(u64)atomic64_read(&stats->abts_stats.abort_issued_greater_than_60_sec));
   323  
   324          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   325                    "\n------------------------------------------\n"
   326                    "\t\tTerminate Statistics\n"
   327                    "------------------------------------------\n");
   328  
   329          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   330                    "Number of Terminates: %lld\n"
   331                    "Maximum Terminates: %lld\n"
   332                    "Number of Terminate Driver Timeouts: %lld\n"
   333                    "Number of Terminate FW Timeouts: %lld\n"
   334                    "Number of Terminate IO NOT Found: %lld\n"
   335                    "Number of Terminate Failures: %lld\n",
   336                    (u64)atomic64_read(&stats->term_stats.terminates),
   337                    (u64)atomic64_read(&stats->term_stats.max_terminates),
   338                    
(u64)atomic64_read(&stats->term_stats.terminate_drv_timeouts),
   339                    
(u64)atomic64_read(&stats->term_stats.terminate_fw_timeouts),
   340                    
(u64)atomic64_read(&stats->term_stats.terminate_io_not_found),
   341                    
(u64)atomic64_read(&stats->term_stats.terminate_failures));
   342  
   343          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   344                    "\n------------------------------------------\n"
   345                    "\t\tReset Statistics\n"
   346                    "------------------------------------------\n");
   347  
   348          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   349                    "Number of Device Resets: %lld\n"
   350                    "Number of Device Reset Failures: %lld\n"
   351                    "Number of Device Reset Aborts: %lld\n"
   352                    "Number of Device Reset Timeouts: %lld\n"
   353                    "Number of Device Reset Terminates: %lld\n"
   354                    "Number of FW Resets: %lld\n"
   355                    "Number of FW Reset Completions: %lld\n"
   356                    "Number of FW Reset Failures: %lld\n"
   357                    "Number of Fnic Reset: %lld\n"
   358                    "Number of Fnic Reset Completions: %lld\n"
   359                    "Number of Fnic Reset Failures: %lld\n",
   360                    (u64)atomic64_read(&stats->reset_stats.device_resets),
   361                    
(u64)atomic64_read(&stats->reset_stats.device_reset_failures),
   362                    
(u64)atomic64_read(&stats->reset_stats.device_reset_aborts),
   363                    
(u64)atomic64_read(&stats->reset_stats.device_reset_timeouts),
   364                    (u64)atomic64_read(
   365                            &stats->reset_stats.device_reset_terminates),
   366                    (u64)atomic64_read(&stats->reset_stats.fw_resets),
   367                    
(u64)atomic64_read(&stats->reset_stats.fw_reset_completions),
   368                    
(u64)atomic64_read(&stats->reset_stats.fw_reset_failures),
   369                    (u64)atomic64_read(&stats->reset_stats.fnic_resets),
   370                    (u64)atomic64_read(
   371                            &stats->reset_stats.fnic_reset_completions),
   372                    
(u64)atomic64_read(&stats->reset_stats.fnic_reset_failures));
   373  
   374          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   375                    "\n------------------------------------------\n"
   376                    "\t\tFirmware Statistics\n"
   377                    "------------------------------------------\n");
   378  
   379          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   380                    "Number of Active FW Requests %lld\n"
   381                    "Maximum FW Requests: %lld\n"
   382                    "Number of FW out of resources: %lld\n"
   383                    "Number of FW IO errors: %lld\n",
   384                    (u64)atomic64_read(&stats->fw_stats.active_fw_reqs),
   385                    (u64)atomic64_read(&stats->fw_stats.max_fw_reqs),
   386                    
(u64)atomic64_read(&stats->fw_stats.fw_out_of_resources),
   387                    (u64)atomic64_read(&stats->fw_stats.io_fw_errs));
   388  
   389          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   390                    "\n------------------------------------------\n"
   391                    "\t\tVlan Discovery Statistics\n"
   392                    "------------------------------------------\n");
   393  
   394          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   395                    "Number of Vlan Discovery Requests Sent %lld\n"
   396                    "Vlan Response Received with no FCF VLAN ID: %lld\n"
   397                    "No solicitations recvd after vlan set, expiry count: 
%lld\n"
   398                    "Flogi rejects count: %lld\n",
   399                    (u64)atomic64_read(&stats->vlan_stats.vlan_disc_reqs),
   400                    
(u64)atomic64_read(&stats->vlan_stats.resp_withno_vlanID),
   401                    
(u64)atomic64_read(&stats->vlan_stats.sol_expiry_count),
   402                    (u64)atomic64_read(&stats->vlan_stats.flogi_rejects));
   403  
   404          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   405                    "\n------------------------------------------\n"
   406                    "\t\tOther Important Statistics\n"
   407                    "------------------------------------------\n");
   408  
   409          jiffies_to_timespec64(stats->misc_stats.last_isr_time, &val1);
   410          jiffies_to_timespec64(stats->misc_stats.last_ack_time, &val2);
   411  
   412          len += scnprintf(debug->debug_buffer + len, buf_size - len,
   413                    "Last ISR time: %llu (%ptSp)\n"
   414                    "Last ACK time: %llu (%ptSp)\n"
   415                    "Max ISR jiffies: %llu\n"
   416                    "Max ISR time (ms) (0 denotes < 1 ms): %llu\n"
   417                    "Corr. work done: %llu\n"
   418                    "Number of ISRs: %lld\n"
   419                    "Maximum CQ Entries: %lld\n"
   420                    "Number of ACK index out of range: %lld\n"
   421                    "Number of data count mismatch: %lld\n"
   422                    "Number of FCPIO Timeouts: %lld\n"
   423                    "Number of FCPIO Aborted: %lld\n"
   424                    "Number of SGL Invalid: %lld\n"
   425                    "Number of Copy WQ Alloc Failures for ABTs: %lld\n"
   426                    "Number of Copy WQ Alloc Failures for Device Reset: 
%lld\n"
   427                    "Number of Copy WQ Alloc Failures for IOs: %lld\n"
   428                    "Number of no icmnd itmf Completions: %lld\n"
   429                    "Number of Check Conditions encountered: %lld\n"
   430                    "Number of QUEUE Fulls: %lld\n"
   431                    "Number of rport not ready: %lld\n"
   432                   "Number of receive frame errors: %lld\n"
   433                   "Port speed (in Mbps): %lld\n",
   434                    (u64)stats->misc_stats.last_isr_time,
   435                    &val1,
   436                    (u64)stats->misc_stats.last_ack_time,
   437                    &val2,
   438                    
(u64)atomic64_read(&stats->misc_stats.max_isr_jiffies),
   439                    
(u64)atomic64_read(&stats->misc_stats.max_isr_time_ms),
   440                    (u64)atomic64_read(&stats->misc_stats.corr_work_done),
   441                    (u64)atomic64_read(&stats->misc_stats.isr_count),
   442                    (u64)atomic64_read(&stats->misc_stats.max_cq_entries),
   443                    
(u64)atomic64_read(&stats->misc_stats.ack_index_out_of_range),
   444                    
(u64)atomic64_read(&stats->misc_stats.data_count_mismatch),
   445                    (u64)atomic64_read(&stats->misc_stats.fcpio_timeout),
   446                    (u64)atomic64_read(&stats->misc_stats.fcpio_aborted),
   447                    (u64)atomic64_read(&stats->misc_stats.sgl_invalid),
   448                    (u64)atomic64_read(
   449                            &stats->misc_stats.abts_cpwq_alloc_failures),
   450                    (u64)atomic64_read(
   451                            
&stats->misc_stats.devrst_cpwq_alloc_failures),
   452                    
(u64)atomic64_read(&stats->misc_stats.io_cpwq_alloc_failures),
   453                    
(u64)atomic64_read(&stats->misc_stats.no_icmnd_itmf_cmpls),
   454                    
(u64)atomic64_read(&stats->misc_stats.check_condition),
   455                    (u64)atomic64_read(&stats->misc_stats.queue_fulls),
   456                    
(u64)atomic64_read(&stats->misc_stats.tport_not_ready),
   457                    (u64)atomic64_read(&stats->misc_stats.frame_errors),
   458                    
(u64)atomic64_read(&stats->misc_stats.port_speed_in_mbps));
   459  
   460          return len;
   461  

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

Reply via email to