Hi Karsten, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Ursula-Braun/net-smc-periodic-testlink-support/20180501-045940 config: x86_64-randconfig-x016-201817 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): In file included from include/linux/sock_diag.h:8:0, from net/smc/smc_diag.c:15: net/smc/smc_diag.c: In function 'smc_diag_msg_common_fill': >> include/net/sock.h:350:37: error: 'struct sock_common' has no member named 'skc_v6_rcv_saddr'; did you mean 'skc_rcv_saddr'? #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr ^ >> net/smc/smc_diag.c:49:47: note: in expansion of macro 'sk_v6_rcv_saddr' memcpy(&r->id.idiag_src, &smc->clcsock->sk->sk_v6_rcv_saddr, ^~~~~~~~~~~~~~~ >> include/net/sock.h:350:37: error: 'struct sock_common' has no member named 'skc_v6_rcv_saddr'; did you mean 'skc_rcv_saddr'? #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr ^ net/smc/smc_diag.c:50:35: note: in expansion of macro 'sk_v6_rcv_saddr' sizeof(smc->clcsock->sk->sk_v6_rcv_saddr)); ^~~~~~~~~~~~~~~ >> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'? #define sk_v6_daddr __sk_common.skc_v6_daddr ^ >> net/smc/smc_diag.c:51:47: note: in expansion of macro 'sk_v6_daddr' memcpy(&r->id.idiag_dst, &smc->clcsock->sk->sk_v6_daddr, ^~~~~~~~~~~ >> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'? #define sk_v6_daddr __sk_common.skc_v6_daddr ^ net/smc/smc_diag.c:52:35: note: in expansion of macro 'sk_v6_daddr' sizeof(smc->clcsock->sk->sk_v6_daddr)); ^~~~~~~~~~~ -- In file included from include/linux/sock_diag.h:8:0, from net//smc/smc_diag.c:15: net//smc/smc_diag.c: In function 'smc_diag_msg_common_fill': >> include/net/sock.h:350:37: error: 'struct sock_common' has no member named 'skc_v6_rcv_saddr'; did you mean 'skc_rcv_saddr'? #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr ^ net//smc/smc_diag.c:49:47: note: in expansion of macro 'sk_v6_rcv_saddr' memcpy(&r->id.idiag_src, &smc->clcsock->sk->sk_v6_rcv_saddr, ^~~~~~~~~~~~~~~ >> include/net/sock.h:350:37: error: 'struct sock_common' has no member named 'skc_v6_rcv_saddr'; did you mean 'skc_rcv_saddr'? #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr ^ net//smc/smc_diag.c:50:35: note: in expansion of macro 'sk_v6_rcv_saddr' sizeof(smc->clcsock->sk->sk_v6_rcv_saddr)); ^~~~~~~~~~~~~~~ >> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'? #define sk_v6_daddr __sk_common.skc_v6_daddr ^ net//smc/smc_diag.c:51:47: note: in expansion of macro 'sk_v6_daddr' memcpy(&r->id.idiag_dst, &smc->clcsock->sk->sk_v6_daddr, ^~~~~~~~~~~ >> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'? #define sk_v6_daddr __sk_common.skc_v6_daddr ^ net//smc/smc_diag.c:52:35: note: in expansion of macro 'sk_v6_daddr' sizeof(smc->clcsock->sk->sk_v6_daddr)); ^~~~~~~~~~~ vim +/sk_v6_rcv_saddr +49 net/smc/smc_diag.c > 15 #include <linux/sock_diag.h> 16 #include <linux/inet_diag.h> 17 #include <linux/smc_diag.h> 18 #include <net/netlink.h> 19 #include <net/smc.h> 20 21 #include "smc.h" 22 #include "smc_core.h" 23 24 static void smc_gid_be16_convert(__u8 *buf, u8 *gid_raw) 25 { 26 sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x", 27 be16_to_cpu(((__be16 *)gid_raw)[0]), 28 be16_to_cpu(((__be16 *)gid_raw)[1]), 29 be16_to_cpu(((__be16 *)gid_raw)[2]), 30 be16_to_cpu(((__be16 *)gid_raw)[3]), 31 be16_to_cpu(((__be16 *)gid_raw)[4]), 32 be16_to_cpu(((__be16 *)gid_raw)[5]), 33 be16_to_cpu(((__be16 *)gid_raw)[6]), 34 be16_to_cpu(((__be16 *)gid_raw)[7])); 35 } 36 37 static void smc_diag_msg_common_fill(struct smc_diag_msg *r, struct sock *sk) 38 { 39 struct smc_sock *smc = smc_sk(sk); 40 41 if (!smc->clcsock) 42 return; 43 r->id.idiag_sport = htons(smc->clcsock->sk->sk_num); 44 r->id.idiag_dport = smc->clcsock->sk->sk_dport; 45 r->id.idiag_if = smc->clcsock->sk->sk_bound_dev_if; 46 sock_diag_save_cookie(sk, r->id.idiag_cookie); 47 if (sk->sk_protocol == SMCPROTO_SMC6) { 48 r->diag_family = PF_INET6; > 49 memcpy(&r->id.idiag_src, &smc->clcsock->sk->sk_v6_rcv_saddr, > 50 sizeof(smc->clcsock->sk->sk_v6_rcv_saddr)); > 51 memcpy(&r->id.idiag_dst, &smc->clcsock->sk->sk_v6_daddr, 52 sizeof(smc->clcsock->sk->sk_v6_daddr)); 53 } else { 54 r->diag_family = PF_INET; 55 memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src)); 56 memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst)); 57 r->id.idiag_src[0] = smc->clcsock->sk->sk_rcv_saddr; 58 r->id.idiag_dst[0] = smc->clcsock->sk->sk_daddr; 59 } 60 } 61 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip