> On Oct 25, 2017, at 8:13 PM, kbuild test robot <l...@intel.com> wrote: > > Hi Song, > > [auto build test WARNING on net-next/master] > > url: > https://github.com/0day-ci/linux/commits/Song-Liu/tcp-add-tracepoint-trace_tcp_retransmit_synack/20171026-010651 > reproduce: > # apt-get install sparse > make ARCH=x86_64 allmodconfig > make C=1 CF=-D__CHECK_ENDIAN__ > > > sparse warnings: (new ones prefixed by >>) > > > vim +281 include/trace/events/tcp.h > > 241 > 242 TP_PROTO(const struct sock *sk, const struct request_sock *req), > 243 > 244 TP_ARGS(sk, req), > 245 > 246 TP_STRUCT__entry( > 247 __field(const void *, skaddr) > 248 __field(const void *, req) > 249 __field(__u16, sport) > 250 __field(__u16, dport) > 251 __array(__u8, saddr, 4) > 252 __array(__u8, daddr, 4) > 253 __array(__u8, saddr_v6, 16) > 254 __array(__u8, daddr_v6, 16) > 255 ), > 256 > 257 TP_fast_assign( > 258 struct inet_request_sock *ireq = inet_rsk(req); > 259 struct in6_addr *pin6; > 260 __be32 *p32; > 261 > 262 __entry->skaddr = sk; > 263 __entry->req = req; > 264 > 265 __entry->sport = ireq->ir_num; > 266 __entry->dport = ntohs(ireq->ir_rmt_port); > 267 > 268 p32 = (__be32 *) __entry->saddr; > 269 *p32 = ireq->ir_loc_addr; > 270 > 271 p32 = (__be32 *) __entry->daddr; > 272 *p32 = ireq->ir_rmt_addr; > 273 >> 274 #if IS_ENABLED(CONFIG_IPV6) > 275 if (sk->sk_family == AF_INET6) { > 276 pin6 = (struct in6_addr *)__entry->saddr_v6; > 277 *pin6 = ireq->ir_v6_loc_addr; > 278 pin6 = (struct in6_addr *)__entry->daddr_v6; > 279 *pin6 = ireq->ir_v6_rmt_addr; > 280 } else >> 281 #endif
In this case, we are putting CONFIG_IPV6 in TRACE_EVENT macro, which generates warnings like: ./include/trace/events/tcp.h:274:1: error: directive in argument list ./include/trace/events/tcp.h:281:1: error: directive in argument list Seems these warning cannot be easily avoided. This is also the same pattern we have been using in include/trace/events/tcp.h. Any suggestions on how shall we proceed from here? Thanks, Song