tree:
https://github.com/cminyard/linux-ipmi ipmi-wdt-rework
head: a22010ce71ef67492980e4c55ad7864679826b53
commit: e51fbadc1895c1b020a8121bf2f37cf207acb39a [6/10] ipmi:watchdog: Convert over to the
watchdog framework
config: mips-randconfig-r006-20200619 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout e51fbadc1895c1b020a8121bf2f37cf207acb39a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.o: in function
`set_param_timeout':
> drivers/char/ipmi/ipmi_watchdog.c:193: undefined reference to
`watchdog_set_pretimeout'
> mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.c:195: undefined reference to
`watchdog_set_timeout'
mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.o:
in function `set_param_str':
> drivers/char/ipmi/ipmi_watchdog.c:232: undefined reference to
`watchdog_set_timeout'
mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.o:
in function `ipmi_unregister_watchdog':
> drivers/char/ipmi/ipmi_watchdog.c:1000: undefined reference to
`watchdog_unregister_device'
mips64el-linux-ld:
drivers/char/ipmi/ipmi_watchdog.o: in function `ipmi_register_watchdog':
> drivers/char/ipmi/ipmi_watchdog.c:922: undefined reference to
`watchdog_init_timeout'
> mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.c:930: undefined reference to
`watchdog_register_device'
> mips64el-linux-ld: drivers/char/ipmi/ipmi_watchdog.c:979: undefined reference to
`watchdog_start'
vim +193 drivers/char/ipmi/ipmi_watchdog.c
176
177 static int set_param_timeout(const char *val, const struct kernel_param *kp)
178 {
179 unsigned long l;
180 int rv = 0;
181 int *ptr;
182
183 if (!val)
184 return -EINVAL;
185 rv = kstrtoul(val, 0, &l);
186 if (rv)
187 return rv;
188
189 ptr = (int *) kp->arg;
190 *ptr = l;
191 if (watchdog_user) {
192 if (ptr == &pretimeout)
193 rv = watchdog_set_pretimeout(&ipmi_wdd, l);
194 else if (ptr == &timeout)
195 rv = watchdog_set_timeout(&ipmi_wdd, l);
196 }
197
198 return rv;
199 }
200
201 static const struct kernel_param_ops param_ops_timeout = {
202 .set = set_param_timeout,
203 .get = param_get_int,
204 };
205 #define param_check_timeout param_check_int
206
207 typedef int (*action_fn)(const char *intval, char *outval);
208
209 static int action_op(const char *inval, char *outval);
210 static int preaction_op(const char *inval, char *outval);
211 static int preop_op(const char *inval, char *outval);
212 static void check_parms(void);
213
214 static int set_param_str(const char *val, const struct kernel_param *kp)
215 {
216 action_fn fn = (action_fn) kp->arg;
217 int rv = 0;
218 char valcp[16];
219 char *s;
220
221 strncpy(valcp, val, 15);
222 valcp[15] = '\0';
223
224 s = strstrip(valcp);
225
226 rv = fn(s, NULL);
227 if (rv)
228 goto out;
229
230 check_parms();
231 if (watchdog_user)
232 rv = watchdog_set_timeout(&ipmi_wdd, ipmi_wdd.timeout);
233
234 out:
235 return rv;
236 }
237
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org