Hi Mario, kernel test robot noticed the following build warnings: [auto build test WARNING on 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab] url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/rtc-mc146818-lib-Adjust-failure-return-code-for-mc146818_get_time/20231128-032825 base: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab patch link: https://lore.kernel.org/r/20231127192553.9734-4-mario.limonciello%40amd.com patch subject: [PATCH v3 3/4] rtc: Add support for configuring the UIP timeout for RTC reads config: i386-randconfig-141-20231128 (https://download.01.org/0day-ci/archive/20231128/202311280845.YrtuJ0eq-lkp@xxxxxxxxx/config) compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231128/202311280845.YrtuJ0eq-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202311280845.YrtuJ0eq-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/rtc/rtc-mc146818-lib.c:82:5: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] UIP_RECHECK_TIMEOUT_MS(i)); ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/printk.h:508:37: note: expanded from macro 'pr_warn' printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ~~~ ^~~~~~~~~~~ include/linux/printk.h:455:60: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ~~~ ^~~~~~~~~~~ include/linux/printk.h:427:19: note: expanded from macro 'printk_index_wrap' _p_func(_fmt, ##__VA_ARGS__); \ ~~~~ ^~~~~~~~~~~ drivers/rtc/rtc-mc146818-lib.c:13:35: note: expanded from macro 'UIP_RECHECK_TIMEOUT_MS' #define UIP_RECHECK_TIMEOUT_MS(x) (x / UIP_RECHECK_DELAY_MS) ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +82 drivers/rtc/rtc-mc146818-lib.c 14 15 /* 16 * Execute a function while the UIP (Update-in-progress) bit of the RTC is 17 * unset. The timeout is configurable by the caller in ms. 18 * 19 * Warning: callback may be executed more then once. 20 */ 21 bool mc146818_avoid_UIP(void (*callback)(unsigned char seconds, void *param), 22 int timeout, 23 void *param) 24 { 25 int i; 26 unsigned long flags; 27 unsigned char seconds; 28 29 for (i = 0; i < UIP_RECHECK_TIMEOUT_MS(timeout); i++) { 30 spin_lock_irqsave(&rtc_lock, flags); 31 32 /* 33 * Check whether there is an update in progress during which the 34 * readout is unspecified. The maximum update time is ~2ms. Poll 35 * for completion. 36 * 37 * Store the second value before checking UIP so a long lasting 38 * NMI which happens to hit after the UIP check cannot make 39 * an update cycle invisible. 40 */ 41 seconds = CMOS_READ(RTC_SECONDS); 42 43 if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) { 44 spin_unlock_irqrestore(&rtc_lock, flags); 45 udelay(UIP_RECHECK_DELAY); 46 continue; 47 } 48 49 /* Revalidate the above readout */ 50 if (seconds != CMOS_READ(RTC_SECONDS)) { 51 spin_unlock_irqrestore(&rtc_lock, flags); 52 continue; 53 } 54 55 if (callback) 56 callback(seconds, param); 57 58 /* 59 * Check for the UIP bit again. If it is set now then 60 * the above values may contain garbage. 61 */ 62 if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) { 63 spin_unlock_irqrestore(&rtc_lock, flags); 64 udelay(UIP_RECHECK_DELAY); 65 continue; 66 } 67 68 /* 69 * A NMI might have interrupted the above sequence so check 70 * whether the seconds value has changed which indicates that 71 * the NMI took longer than the UIP bit was set. Unlikely, but 72 * possible and there is also virt... 73 */ 74 if (seconds != CMOS_READ(RTC_SECONDS)) { 75 spin_unlock_irqrestore(&rtc_lock, flags); 76 continue; 77 } 78 spin_unlock_irqrestore(&rtc_lock, flags); 79 80 if (i >= UIP_RECHECK_TIMEOUT_MS(100)) 81 pr_warn("Reading current time from RTC took around %d ms\n", > 82 UIP_RECHECK_TIMEOUT_MS(i)); 83 84 return true; 85 } 86 return false; 87 } 88 EXPORT_SYMBOL_GPL(mc146818_avoid_UIP); 89 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki