Hi Lin, [auto build test WARNING on net-next/master] [also build test WARNING on v4.14-rc3 next-20170929] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Lin-Zhang/net-phonet-mark-header_ops-as-const/20171003-145726 config: i386-randconfig-x009-201740 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): net/phonet/af_phonet.c:152:25: error: conflicting type qualifiers for 'phonet_header_ops' const struct header_ops phonet_header_ops = { ^~~~~~~~~~~~~~~~~ In file included from net/phonet/af_phonet.c:32:0: include/linux/if_phonet.h:13:26: note: previous declaration of 'phonet_header_ops' was here extern struct header_ops phonet_header_ops; ^~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:6:0, from include/linux/kernel.h:6, from net/phonet/af_phonet.c:26: net/phonet/af_phonet.c:156:15: error: conflicting type qualifiers for 'phonet_header_ops' EXPORT_SYMBOL(phonet_header_ops); ^ include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ >> net/phonet/af_phonet.c:156:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(phonet_header_ops); ^~~~~~~~~~~~~ In file included from net/phonet/af_phonet.c:32:0: include/linux/if_phonet.h:13:26: note: previous declaration of 'phonet_header_ops' was here extern struct header_ops phonet_header_ops; ^~~~~~~~~~~~~~~~~ vim +/EXPORT_SYMBOL +156 net/phonet/af_phonet.c 4b07b3f69 Remi Denis-Courmont 2008-09-22 @26 #include <linux/kernel.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 27 #include <linux/module.h> 5a0e3ad6a Tejun Heo 2010-03-24 28 #include <linux/slab.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 29 #include <asm/unaligned.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 30 #include <net/sock.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 31 4b07b3f69 Remi Denis-Courmont 2008-09-22 32 #include <linux/if_phonet.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 33 #include <linux/phonet.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 34 #include <net/phonet/phonet.h> f8ff60283 Remi Denis-Courmont 2008-09-22 35 #include <net/phonet/pn_dev.h> 4b07b3f69 Remi Denis-Courmont 2008-09-22 36 566521d63 Alexey Dobriyan 2008-11-19 37 /* Transport protocol registration */ 566521d63 Alexey Dobriyan 2008-11-19 38 static struct phonet_protocol *proto_tab[PHONET_NPROTO] __read_mostly; 566521d63 Alexey Dobriyan 2008-11-19 39 facb4edc1 Dan Carpenter 2011-01-10 40 static struct phonet_protocol *phonet_proto_get(unsigned int protocol) 566521d63 Alexey Dobriyan 2008-11-19 41 { 566521d63 Alexey Dobriyan 2008-11-19 42 struct phonet_protocol *pp; 566521d63 Alexey Dobriyan 2008-11-19 43 566521d63 Alexey Dobriyan 2008-11-19 44 if (protocol >= PHONET_NPROTO) 566521d63 Alexey Dobriyan 2008-11-19 45 return NULL; 566521d63 Alexey Dobriyan 2008-11-19 46 7ed0132f2 Rémi Denis-Courmont 2009-11-13 47 rcu_read_lock(); b2a5decdd Rémi Denis-Courmont 2009-11-16 48 pp = rcu_dereference(proto_tab[protocol]); 566521d63 Alexey Dobriyan 2008-11-19 49 if (pp && !try_module_get(pp->prot->owner)) 566521d63 Alexey Dobriyan 2008-11-19 50 pp = NULL; 7ed0132f2 Rémi Denis-Courmont 2009-11-13 51 rcu_read_unlock(); 566521d63 Alexey Dobriyan 2008-11-19 52 566521d63 Alexey Dobriyan 2008-11-19 53 return pp; 566521d63 Alexey Dobriyan 2008-11-19 54 } 566521d63 Alexey Dobriyan 2008-11-19 55 566521d63 Alexey Dobriyan 2008-11-19 56 static inline void phonet_proto_put(struct phonet_protocol *pp) 566521d63 Alexey Dobriyan 2008-11-19 57 { 566521d63 Alexey Dobriyan 2008-11-19 58 module_put(pp->prot->owner); 566521d63 Alexey Dobriyan 2008-11-19 59 } 4b07b3f69 Remi Denis-Courmont 2008-09-22 60 4b07b3f69 Remi Denis-Courmont 2008-09-22 61 /* protocol family functions */ 4b07b3f69 Remi Denis-Courmont 2008-09-22 62 3f378b684 Eric Paris 2009-11-05 63 static int pn_socket_create(struct net *net, struct socket *sock, int protocol, 3f378b684 Eric Paris 2009-11-05 64 int kern) 4b07b3f69 Remi Denis-Courmont 2008-09-22 65 { ba113a94b Remi Denis-Courmont 2008-09-22 66 struct sock *sk; ba113a94b Remi Denis-Courmont 2008-09-22 67 struct pn_sock *pn; 4b07b3f69 Remi Denis-Courmont 2008-09-22 68 struct phonet_protocol *pnp; 4b07b3f69 Remi Denis-Courmont 2008-09-22 69 int err; 4b07b3f69 Remi Denis-Courmont 2008-09-22 70 4b07b3f69 Remi Denis-Courmont 2008-09-22 71 if (!capable(CAP_SYS_ADMIN)) 4b07b3f69 Remi Denis-Courmont 2008-09-22 72 return -EPERM; 4b07b3f69 Remi Denis-Courmont 2008-09-22 73 4b07b3f69 Remi Denis-Courmont 2008-09-22 74 if (protocol == 0) { 4b07b3f69 Remi Denis-Courmont 2008-09-22 75 /* Default protocol selection */ 4b07b3f69 Remi Denis-Courmont 2008-09-22 76 switch (sock->type) { 4b07b3f69 Remi Denis-Courmont 2008-09-22 77 case SOCK_DGRAM: 4b07b3f69 Remi Denis-Courmont 2008-09-22 78 protocol = PN_PROTO_PHONET; 4b07b3f69 Remi Denis-Courmont 2008-09-22 79 break; 9641458d3 Rémi Denis-Courmont 2008-10-05 80 case SOCK_SEQPACKET: 9641458d3 Rémi Denis-Courmont 2008-10-05 81 protocol = PN_PROTO_PIPE; 9641458d3 Rémi Denis-Courmont 2008-10-05 82 break; 4b07b3f69 Remi Denis-Courmont 2008-09-22 83 default: 4b07b3f69 Remi Denis-Courmont 2008-09-22 84 return -EPROTONOSUPPORT; 4b07b3f69 Remi Denis-Courmont 2008-09-22 85 } 4b07b3f69 Remi Denis-Courmont 2008-09-22 86 } 4b07b3f69 Remi Denis-Courmont 2008-09-22 87 4b07b3f69 Remi Denis-Courmont 2008-09-22 88 pnp = phonet_proto_get(protocol); 25532824f Rémi Denis-Courmont 2008-10-05 89 if (pnp == NULL && 25532824f Rémi Denis-Courmont 2008-10-05 90 request_module("net-pf-%d-proto-%d", PF_PHONET, protocol) == 0) 25532824f Rémi Denis-Courmont 2008-10-05 91 pnp = phonet_proto_get(protocol); 95a5afca4 Johannes Berg 2008-10-16 92 4b07b3f69 Remi Denis-Courmont 2008-09-22 93 if (pnp == NULL) 4b07b3f69 Remi Denis-Courmont 2008-09-22 94 return -EPROTONOSUPPORT; 4b07b3f69 Remi Denis-Courmont 2008-09-22 95 if (sock->type != pnp->sock_type) { 4b07b3f69 Remi Denis-Courmont 2008-09-22 96 err = -EPROTONOSUPPORT; 4b07b3f69 Remi Denis-Courmont 2008-09-22 97 goto out; 4b07b3f69 Remi Denis-Courmont 2008-09-22 98 } 4b07b3f69 Remi Denis-Courmont 2008-09-22 99 11aa9c28b Eric W. Biederman 2015-05-08 100 sk = sk_alloc(net, PF_PHONET, GFP_KERNEL, pnp->prot, kern); ba113a94b Remi Denis-Courmont 2008-09-22 101 if (sk == NULL) { ba113a94b Remi Denis-Courmont 2008-09-22 102 err = -ENOMEM; ba113a94b Remi Denis-Courmont 2008-09-22 103 goto out; ba113a94b Remi Denis-Courmont 2008-09-22 104 } ba113a94b Remi Denis-Courmont 2008-09-22 105 ba113a94b Remi Denis-Courmont 2008-09-22 106 sock_init_data(sock, sk); ba113a94b Remi Denis-Courmont 2008-09-22 107 sock->state = SS_UNCONNECTED; ba113a94b Remi Denis-Courmont 2008-09-22 108 sock->ops = pnp->ops; ba113a94b Remi Denis-Courmont 2008-09-22 109 sk->sk_backlog_rcv = sk->sk_prot->backlog_rcv; ba113a94b Remi Denis-Courmont 2008-09-22 110 sk->sk_protocol = protocol; ba113a94b Remi Denis-Courmont 2008-09-22 111 pn = pn_sk(sk); ba113a94b Remi Denis-Courmont 2008-09-22 112 pn->sobject = 0; a8059512b Rémi Denis-Courmont 2011-02-24 113 pn->dobject = 0; ba113a94b Remi Denis-Courmont 2008-09-22 114 pn->resource = 0; ba113a94b Remi Denis-Courmont 2008-09-22 115 sk->sk_prot->init(sk); ba113a94b Remi Denis-Courmont 2008-09-22 116 err = 0; 4b07b3f69 Remi Denis-Courmont 2008-09-22 117 4b07b3f69 Remi Denis-Courmont 2008-09-22 118 out: 4b07b3f69 Remi Denis-Courmont 2008-09-22 119 phonet_proto_put(pnp); 4b07b3f69 Remi Denis-Courmont 2008-09-22 120 return err; 4b07b3f69 Remi Denis-Courmont 2008-09-22 121 } 4b07b3f69 Remi Denis-Courmont 2008-09-22 122 ec1b4cf74 Stephen Hemminger 2009-10-05 123 static const struct net_proto_family phonet_proto_family = { 25532824f Rémi Denis-Courmont 2008-10-05 124 .family = PF_PHONET, 4b07b3f69 Remi Denis-Courmont 2008-09-22 125 .create = pn_socket_create, 4b07b3f69 Remi Denis-Courmont 2008-09-22 126 .owner = THIS_MODULE, 4b07b3f69 Remi Denis-Courmont 2008-09-22 127 }; 4b07b3f69 Remi Denis-Courmont 2008-09-22 128 5f77076d7 Remi Denis-Courmont 2008-09-22 129 /* Phonet device header operations */ 5f77076d7 Remi Denis-Courmont 2008-09-22 130 static int pn_header_create(struct sk_buff *skb, struct net_device *dev, 5f77076d7 Remi Denis-Courmont 2008-09-22 131 unsigned short type, const void *daddr, 95c961747 Eric Dumazet 2012-04-15 132 const void *saddr, unsigned int len) 5f77076d7 Remi Denis-Courmont 2008-09-22 133 { 5f77076d7 Remi Denis-Courmont 2008-09-22 134 u8 *media = skb_push(skb, 1); 5f77076d7 Remi Denis-Courmont 2008-09-22 135 5f77076d7 Remi Denis-Courmont 2008-09-22 136 if (type != ETH_P_PHONET) 5f77076d7 Remi Denis-Courmont 2008-09-22 137 return -1; 5f77076d7 Remi Denis-Courmont 2008-09-22 138 5f77076d7 Remi Denis-Courmont 2008-09-22 139 if (!saddr) 5f77076d7 Remi Denis-Courmont 2008-09-22 140 saddr = dev->dev_addr; 5f77076d7 Remi Denis-Courmont 2008-09-22 141 *media = *(const u8 *)saddr; 5f77076d7 Remi Denis-Courmont 2008-09-22 142 return 1; 5f77076d7 Remi Denis-Courmont 2008-09-22 143 } 5f77076d7 Remi Denis-Courmont 2008-09-22 144 5f77076d7 Remi Denis-Courmont 2008-09-22 145 static int pn_header_parse(const struct sk_buff *skb, unsigned char *haddr) 5f77076d7 Remi Denis-Courmont 2008-09-22 146 { 5f77076d7 Remi Denis-Courmont 2008-09-22 147 const u8 *media = skb_mac_header(skb); 5f77076d7 Remi Denis-Courmont 2008-09-22 148 *haddr = *media; 5f77076d7 Remi Denis-Courmont 2008-09-22 149 return 1; 5f77076d7 Remi Denis-Courmont 2008-09-22 150 } 5f77076d7 Remi Denis-Courmont 2008-09-22 151 9ffaa93ed Lin Zhang 2017-09-30 152 const struct header_ops phonet_header_ops = { 5f77076d7 Remi Denis-Courmont 2008-09-22 153 .create = pn_header_create, 5f77076d7 Remi Denis-Courmont 2008-09-22 154 .parse = pn_header_parse, 5f77076d7 Remi Denis-Courmont 2008-09-22 155 }; 5f77076d7 Remi Denis-Courmont 2008-09-22 @156 EXPORT_SYMBOL(phonet_header_ops); 5f77076d7 Remi Denis-Courmont 2008-09-22 157 :::::: The code at line 156 was first introduced by commit :::::: 5f77076d75d35c9f5619e1f9d7e7428a627f65e6 Phonet: provide MAC header operations :::::: TO: Remi Denis-Courmont <[email protected]> :::::: CC: David S. Miller <[email protected]> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
