On 5/21/21 8:20 PM, Kuniyuki Iwashima wrote: > As with the preceding patch, this patch changes reqsk_timer_handler() to > call reuseport_migrate_sock() and inet_reqsk_clone() to migrate in-flight > requests at retransmitting SYN+ACKs. If we can select a new listener and > clone the request, we resume setting the SYN+ACK timer for the new req. If > we can set the timer, we call inet_ehash_insert() to unhash the old req and > put the new req into ehash. > ... > static void reqsk_migrate_reset(struct request_sock *req) > { > + req->saved_syn = NULL; > + inet_rsk(req)->ireq_opt = NULL; > #if IS_ENABLED(CONFIG_IPV6) > - inet_rsk(req)->ipv6_opt = NULL; > + inet_rsk(req)->pktopts = NULL; > #endif > } This is fragile. Maybe instead : #if IS_ENABLED(CONFIG_IPV6) inet_rsk(req)->ipv6_opt = NULL; inet_rsk(req)->pktopts = NULL; #else inet_rsk(req)->ireq_opt = NULL; #endif