Re: [PATCH v24 01/12] Linux Random Number Generator

From: kbuild test robot
Date: Tue Nov 12 2019 - 19:14:49 EST


Hi "Stephan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on v5.4-rc7 next-20191112]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Stephan-M-ller/dev-random-a-new-approach-with-full-SP800-90B-compliance/20191113-040847
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 01b59c763fe2de845b65900485b141fdd7bbf93e
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=mips

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/char/lrng/lrng_sw_noise.c: In function 'add_interrupt_randomness':
>> drivers/char/lrng/lrng_sw_noise.c:145:23: error: invalid application of 'sizeof' to incomplete type 'struct pt_regs'
size_t n = (sizeof(struct pt_regs) / sizeof(u32));
^~~~~~
>> drivers/char/lrng/lrng_sw_noise.c:147:9: error: implicit declaration of function 'instruction_pointer'; did you mean 'instruction_hazard'? [-Werror=implicit-function-declaration]
ip = instruction_pointer(regs);
^~~~~~~~~~~~~~~~~~~
instruction_hazard
cc1: some warnings being treated as errors

vim +145 drivers/char/lrng/lrng_sw_noise.c

125
126 /**
127 * Hot code path - Callback for interrupt handler
128 */
129 void add_interrupt_randomness(int irq, int irq_flags)
130 {
131 lrng_time_process();
132
133 if (!lrng_pool_highres_timer()) {
134 struct pt_regs *regs = get_irq_regs();
135 static atomic_t reg_idx = ATOMIC_INIT(0);
136 u64 ip;
137
138 lrng_pool_lfsr_u32(jiffies);
139 lrng_pool_lfsr_u32(irq);
140 lrng_pool_lfsr_u32(irq_flags);
141
142 if (regs) {
143 u32 *ptr = (u32 *)regs;
144 int reg_ptr = atomic_add_return_relaxed(1, &reg_idx);
> 145 size_t n = (sizeof(struct pt_regs) / sizeof(u32));
146
> 147 ip = instruction_pointer(regs);

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

Attachment: .config.gz
Description: application/gzip