tree: https://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git inet-rework head: 749825bc60f7224225ced1dbed77d3cc2b0bd72f commit: a36b30653769d1e20ff0df41533a2766453ced1a [1/6] inet: collapse ipv4/v6 rcv_saddr_equal functions into one config: i386-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout a36b30653769d1e20ff0df41533a2766453ced1a # save the attached .config to linux build tree make ARCH=i386
All error/warnings (new ones prefixed by >>):
>> net/ipv4/inet_hashtables.c:461:5: error: conflicting types for '__inet_hash'
int __inet_hash(struct sock *sk, struct sock *osk)
^~~~~~~~~~~
In file included from net/ipv4/inet_hashtables.c:25:0:
include/net/inet_hashtables.h:206:5: note: previous declaration of
'__inet_hash' was here
int __inet_hash(struct sock *sk, struct sock *osk,
^~~~~~~~~~~
In file included from include/linux/linkage.h:6:0,
from include/linux/kernel.h:6,
from include/linux/list.h:8,
from include/linux/module.h:9,
from net/ipv4/inet_hashtables.c:16:
net/ipv4/inet_hashtables.c:492:15: error: conflicting types for '__inet_hash'
EXPORT_SYMBOL(__inet_hash);
^
include/linux/export.h:58:21: note: in definition of macro '___EXPORT_SYMBOL'
extern typeof(sym) sym; \
^~~
>> net/ipv4/inet_hashtables.c:492:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(__inet_hash);
^~~~~~~~~~~~~
In file included from net/ipv4/inet_hashtables.c:25:0:
include/net/inet_hashtables.h:206:5: note: previous declaration of
'__inet_hash' was here
int __inet_hash(struct sock *sk, struct sock *osk,
^~~~~~~~~~~
--
>> net/ipv4/udp.c:229:5: error: conflicting types for 'udp_lib_get_port'
int udp_lib_get_port(struct sock *sk, unsigned short snum,
^~~~~~~~~~~~~~~~
In file included from net/ipv4/udp_impl.h:3:0,
from net/ipv4/udp.c:115:
include/net/udp.h:206:5: note: previous declaration of 'udp_lib_get_port'
was here
int udp_lib_get_port(struct sock *sk, unsigned short snum,
^~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:6:0,
from include/linux/kernel.h:6,
from include/asm-generic/bug.h:13,
from arch/x86/include/asm/bug.h:35,
from include/linux/bug.h:4,
from include/linux/thread_info.h:11,
from arch/x86/include/asm/uaccess.h:9,
from net/ipv4/udp.c:82:
net/ipv4/udp.c:341:15: error: conflicting types for 'udp_lib_get_port'
EXPORT_SYMBOL(udp_lib_get_port);
^
include/linux/export.h:58:21: note: in definition of macro '___EXPORT_SYMBOL'
extern typeof(sym) sym; \
^~~
>> net/ipv4/udp.c:341:1: note: in expansion of macro 'EXPORT_SYMBOL'
EXPORT_SYMBOL(udp_lib_get_port);
^~~~~~~~~~~~~
In file included from net/ipv4/udp_impl.h:3:0,
from net/ipv4/udp.c:115:
include/net/udp.h:206:5: note: previous declaration of 'udp_lib_get_port'
was here
int udp_lib_get_port(struct sock *sk, unsigned short snum,
^~~~~~~~~~~~~~~~
--
net/ipv6/inet6_hashtables.c: In function 'inet6_hash':
>> net/ipv6/inet6_hashtables.c:271:9: error: too few arguments to function
>> '__inet_hash'
err = __inet_hash(sk, NULL);
^~~~~~~~~~~
In file included from net/ipv6/inet6_hashtables.c:22:0:
include/net/inet_hashtables.h:206:5: note: declared here
int __inet_hash(struct sock *sk, struct sock *osk,
^~~~~~~~~~~
--
net/ipv6/udp.c: In function 'udp_v6_get_port':
>> net/ipv6/udp.c:106:36: warning: passing argument 3 of 'udp_lib_get_port'
>> makes pointer from integer without a cast [-Wint-conversion]
return udp_lib_get_port(sk, snum, hash2_nulladdr);
^~~~~~~~~~~~~~
In file included from net/ipv6/udp_impl.h:3:0,
from net/ipv6/udp.c:56:
include/net/udp.h:206:5: note: expected 'int (*)(const struct sock *, const
struct sock *, bool) {aka int (*)(const struct sock *, const struct sock *,
_Bool)}' but argument is of type 'unsigned int'
int udp_lib_get_port(struct sock *sk, unsigned short snum,
^~~~~~~~~~~~~~~~
>> net/ipv6/udp.c:106:9: error: too few arguments to function 'udp_lib_get_port'
return udp_lib_get_port(sk, snum, hash2_nulladdr);
^~~~~~~~~~~~~~~~
In file included from net/ipv6/udp_impl.h:3:0,
from net/ipv6/udp.c:56:
include/net/udp.h:206:5: note: declared here
int udp_lib_get_port(struct sock *sk, unsigned short snum,
^~~~~~~~~~~~~~~~
>> net/ipv6/udp.c:107:1: warning: control reaches end of non-void function
>> [-Wreturn-type]
}
^
vim +/__inet_hash +461 net/ipv4/inet_hashtables.c
455 /* Initial allocation may have already happened via setsockopt
*/
456 if (!rcu_access_pointer(sk->sk_reuseport_cb))
457 return reuseport_alloc(sk);
458 return 0;
459 }
460
> 461 int __inet_hash(struct sock *sk, struct sock *osk)
462 {
463 struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo;
464 struct inet_listen_hashbucket *ilb;
465 int err = 0;
466
467 if (sk->sk_state != TCP_LISTEN) {
468 inet_ehash_nolisten(sk, osk);
469 return 0;
470 }
471 WARN_ON(!sk_unhashed(sk));
472 ilb = &hashinfo->listening_hash[inet_sk_listen_hashfn(sk)];
473
474 spin_lock(&ilb->lock);
475 if (sk->sk_reuseport) {
476 err = inet_reuseport_add_sock(sk, ilb);
477 if (err)
478 goto unlock;
479 }
480 if (IS_ENABLED(CONFIG_IPV6) && sk->sk_reuseport &&
481 sk->sk_family == AF_INET6)
482 hlist_add_tail_rcu(&sk->sk_node, &ilb->head);
483 else
484 hlist_add_head_rcu(&sk->sk_node, &ilb->head);
485 sock_set_flag(sk, SOCK_RCU_FREE);
486 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
487 unlock:
488 spin_unlock(&ilb->lock);
489
490 return err;
491 }
> 492 EXPORT_SYMBOL(__inet_hash);
493
494 int inet_hash(struct sock *sk)
495 {
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
