Re: [PATCH] timekeeping: contribute wall clock to rng on time change
From: kernel test robot
Date: Thu Jun 23 2022 - 15:00:39 EST
Hi "Jason,
I love your patch! Yet something to improve:
[auto build test ERROR on tip/timers/core]
[also build test ERROR on linus/master v5.19-rc3 next-20220623]
[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]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-A-Donenfeld/timekeeping-contribute-wall-clock-to-rng-on-time-change/20220624-010017
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 57963a92a70b037aa22544fbc34742e5be689c04
config: i386-tinyconfig (https://download.01.org/0day-ci/archive/20220624/202206240128.jVs1F5jD-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/f2f11bc49b9a71c5663e44d46c8265f9b4fc8011
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Jason-A-Donenfeld/timekeeping-contribute-wall-clock-to-rng-on-time-change/20220624-010017
git checkout f2f11bc49b9a71c5663e44d46c8265f9b4fc8011
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/time/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
kernel/time/timekeeping.c: In function 'do_settimeofday64':
>> kernel/time/timekeeping.c:1349:9: error: implicit declaration of function 'add_device_randomness' [-Werror=implicit-function-declaration]
1349 | add_device_randomness(&xt, sizeof(xt));
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/add_device_randomness +1349 kernel/time/timekeeping.c
1303
1304 /**
1305 * do_settimeofday64 - Sets the time of day.
1306 * @ts: pointer to the timespec64 variable containing the new time
1307 *
1308 * Sets the time of day to the new time and update NTP and notify hrtimers
1309 */
1310 int do_settimeofday64(const struct timespec64 *ts)
1311 {
1312 struct timekeeper *tk = &tk_core.timekeeper;
1313 struct timespec64 ts_delta, xt;
1314 unsigned long flags;
1315 int ret = 0;
1316
1317 if (!timespec64_valid_settod(ts))
1318 return -EINVAL;
1319
1320 raw_spin_lock_irqsave(&timekeeper_lock, flags);
1321 write_seqcount_begin(&tk_core.seq);
1322
1323 timekeeping_forward_now(tk);
1324
1325 xt = tk_xtime(tk);
1326 ts_delta = timespec64_sub(*ts, xt);
1327
1328 if (timespec64_compare(&tk->wall_to_monotonic, &ts_delta) > 0) {
1329 ret = -EINVAL;
1330 goto out;
1331 }
1332
1333 tk_set_wall_to_mono(tk, timespec64_sub(tk->wall_to_monotonic, ts_delta));
1334
1335 tk_set_xtime(tk, ts);
1336 out:
1337 timekeeping_update(tk, TK_CLEAR_NTP | TK_MIRROR | TK_CLOCK_WAS_SET);
1338
1339 write_seqcount_end(&tk_core.seq);
1340 raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
1341
1342 /* Signal hrtimers about time change */
1343 clock_was_set(CLOCK_SET_WALL);
1344
1345 if (!ret)
1346 audit_tk_injoffset(ts_delta);
1347
1348 ktime_get_real_ts64(&xt);
> 1349 add_device_randomness(&xt, sizeof(xt));
1350
1351 return ret;
1352 }
1353 EXPORT_SYMBOL(do_settimeofday64);
1354
--
0-DAY CI Kernel Test Service
https://01.org/lkp