Hi Florian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
url:
https://github.com/0day-ci/linux/commits/Florian-Westphal/fib-remove-supp...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
97884b07122aabb2d6891ce17f54e0e8e94d0bc5
config: i386-randconfig-a015-20211213
(
https://download.01.org/0day-ci/archive/20211214/202112140516.lS6zCrEh-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/585507534b121a41b45edaec79fe6c3d9...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Florian-Westphal/fib-remove-suppress-indirection-merge-nl-policies/20211213-233429
git checkout 585507534b121a41b45edaec79fe6c3d94a50b5f
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash net/core/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
net/core/fib_rules.c: In function 'fib4_rule_suppress':
net/core/fib_rules.c:300:31: error: implicit declaration of function
'fib_info_nhc'; did you mean 'fib_info_put'?
[-Werror=implicit-function-declaration]
300 | struct fib_nh_common *nhc = fib_info_nhc(result->fi, 0);
| ^~~~~~~~~~~~
| fib_info_put
> net/core/fib_rules.c:300:31: warning: initialization of
'struct fib_nh_common *' from 'int' makes pointer from integer without a
cast [-Wint-conversion]
net/core/fib_rules.c: In function
'fib6_rule_suppress':
net/core/fib_rules.c:330:27: error: dereferencing pointer to incomplete type
'struct fib6_result'
330 | struct rt6_info *rt = res->rt6;
| ^~
net/core/fib_rules.c:336:8: error: dereferencing pointer to incomplete type 'struct
rt6_info'
336 | if (rt->rt6i_idev)
| ^~
net/core/fib_rules.c:354:2: error: implicit declaration of function
'ip6_rt_put_flags' [-Werror=implicit-function-declaration]
354 | ip6_rt_put_flags(rt, flags);
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +300 net/core/fib_rules.c
291
292 static bool fib4_rule_suppress(struct fib_rule *rule,
293 int flags,
294 struct fib_lookup_arg *arg)
295 {
296 struct fib_result *result = (struct fib_result *)arg->result;
297 struct net_device *dev = NULL;
298
299 if (result->fi) {
300 struct fib_nh_common *nhc = fib_info_nhc(result->fi, 0);
301
302 dev = nhc->nhc_dev;
303 }
304
305 /* do not accept result if the route does
306 * not meet the required prefix length
307 */
308 if (result->prefixlen <= rule->suppress_prefixlen)
309 goto suppress_route;
310
311 /* do not accept result if the route uses a device
312 * belonging to a forbidden interface group
313 */
314 if (rule->suppress_ifgroup != -1 && dev && dev->group ==
rule->suppress_ifgroup)
315 goto suppress_route;
316
317 return false;
318
319 suppress_route:
320 if (!(arg->flags & FIB_LOOKUP_NOREF))
321 fib_info_put(result->fi);
322 return true;
323 }
324
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org