Re: [PATCH net-next] tcp: add tracepoint trace_tcp_retransmit_synack()
From: Song Liu <hidden>
Date: 2017-10-26 23:50:24
On Oct 25, 2017, at 8:13 PM, kbuild test robot [off-list ref] 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; 273quoted
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 } elsequoted
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