From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1392C2C3259 for ; Sat, 18 Apr 2026 18:13:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776536036; cv=none; b=P720FRZeaCE86SFAeUXQaAvFZ/VJ2lGw3ANlA9ijoKDYNpSp/SBseiHZqC6ciS6JqqiPsV99LwgLn4jlBMOz5Yoq6jLRcpz10tnfbt1HLYOj8uZQP3Yfn8ZQrPOiZ3MPPZev3xTqrga/JrI24kz3JVqquKYXBWSGTFXnM6MxLek= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776536036; c=relaxed/simple; bh=YYQJavEnd1fnX+vR3sVF/zbo5SR6pv0KkvAYvprHc3k=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Ql2c6eR5DxMXUYmSu2DDHAUADIFV/KLdzohvpsJxM75ZRvmvkX7aYmF0FvqK8ouzTIKEaqNSlwQY85VGaFBrQbV4BTz4DkG/NVeDU1K0WwKs9BWvtl/hKuxL95O4NSsf2x1yVP3iFptFplXA40wbZ+SzJlXKQn19pUpO+dFD0DM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=peRZ0NWz; arc=none smtp.client-ip=209.85.210.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="peRZ0NWz" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-82f2385724aso1370976b3a.0 for ; Sat, 18 Apr 2026 11:13:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776536033; x=1777140833; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=hm7Zzjznl6z94RlMoEkmeGxVQZOGZnEHpCrSYXcXznI=; b=peRZ0NWzgz3gIKgXV+x4hIxwp/Ty+F11ETRtasR4XVbt0UjTg3Ba0tMZwfGFvWcmPa EZCnIaluTs3jvRTdHDdul0EUvO99Jzv7Pm+SG8/PhunoPxlfmnd4aHl3FnIaL1mRy7Py 48FcrF7XCc/GH4P6kHkVhid9zXCaECPSSzlkN0Ir7TtclmG5NgDtHTcIlv6HluM0pAyz zDwh+0ulGDbl/O8auu+eASVAxMjyff429YQm4PB6FedCmzZc1EGIZuqYDSreSApF/Iax EgsyYALjdIw+b8f/88I8ltsIsjSLCm3r1EDqTXRkKajD60KcxV8hnITuDIM7uWgMGxb2 OCHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776536033; x=1777140833; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hm7Zzjznl6z94RlMoEkmeGxVQZOGZnEHpCrSYXcXznI=; b=QGpb/5Q+Kw9nmQ45TqwGnGkJTBQwc1cU18OAsDJpo3D55n/7UJ40/I1j2+W7RPfSPw XZn0p15PMEC9emooSmB/dzf0hEpSRHkRwPz4NWt6dWFH1iEOYfFizH16FZHmQ5LGvboQ XC6gPf5WMZMS8Mnel6G0QtBZiywfDwX/XW7zsk+USI2CikM1bLTihWSSh6x+YvIpu/1s QKbowBb/qAyXpkjKOCIaCbkibn5Iyv7GEmseTMEwWFnVA5LTtTrlSP9WCk/MM8LnkzPi Ea5GT74orm9hKoXU0UZPahPGw12BdwY6Q8ZvxpP3TO2qM6NAu7i5rcxyv7Qi+2aCOWAe nMzQ== X-Forwarded-Encrypted: i=1; AFNElJ8BTp1QhnWKhj7YwIF5DDpYS6c4SED3lLtPBaOvGsGPFvqFxwwjzQ4KuFqtsJxHgMoDf7lAEL5KDkVMTyQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyGpJlhTulR4qx4QEpCXfbI6SxOMUYh0TH5qgTwaUxfc5cFgjNb gTNVskcUwqVqI3jLFJvXfpToiukm8+PSVSHmJ7OtLD88MCM8MgC1wZic X-Gm-Gg: AeBDieud8T0bk3dwWTJWZsls2LoeQGPmGmfTjyfxtJ558uzwv9aLTYf/QOrmLMd90W5 TboPP12ycCmEM7g4IVIDY93FGPoozButo/7/giBz7890jsDAgRTFYjP2Db71zcKuEznNd4rhA1v 5S8LVNShEbMej2p2jwl2ikl95ve+uuMErQrURXjTV/2WYgHqBV9ZguWQKqt96F26COOQFbQ7it/ AIVhqhd1Jtpi8YxYALSISdVlLxyosc/g126oWPpKmXFrGlpZfBemEBJpRqwjqXfb0TK9CZao5a6 m1R/0G3fLxNnlsXY0wU5SL0/8s1mhJuksSKTrP6BXLMVM77Ny240MF31ClbthmSfTc+g7791Twf 6gz9d7YM42EIA4j4/vlNn1VjgRQEMWrBAGzmrWwqDcPpEQtaYXgvXn9IuRI3w09oaGbyMhEpA2L bl6E9eUqHlQCnm/+s3NV8b95PtA+NxYMO6CiCIhDzAyYfK8t6V3MOX4Wbc2RBnuA== X-Received: by 2002:a05:6a00:4ac9:b0:82c:217c:98ca with SMTP id d2e1a72fcca58-82f8c828d95mr7744394b3a.12.1776536033299; Sat, 18 Apr 2026 11:13:53 -0700 (PDT) Received: from DESKTOP-MUHC17F.tail07b66e.ts.net ([188.253.121.151]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e9f7735sm5659402b3a.21.2026.04.18.11.13.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Apr 2026 11:13:52 -0700 (PDT) From: Zhenzhong Wu To: netdev@vger.kernel.org Cc: edumazet@google.com, ncardwell@google.com, kuniyu@google.com, davem@davemloft.net, dsahern@kernel.org, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, shuah@kernel.org, tamird@kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Zhenzhong Wu Subject: [PATCH net v2 0/2] tcp: fix listener wakeup after reuseport migration Date: Sun, 19 Apr 2026 02:13:31 +0800 Message-ID: <20260418181333.1713389-1-jt26wzz@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This series fixes a missing wakeup when inet_csk_listen_stop() migrates an established child socket from a closing listener to another socket in the same SO_REUSEPORT group after the child has already been queued for accept. The target listener receives the migrated accept-queue entry via inet_csk_reqsk_queue_add(), but its waiters are not notified. Nonblocking accept() still succeeds because it checks the accept queue directly, but readiness-based waiters can remain asleep until another connection generates a wakeup. Patch 1 notifies the target listener after a successful migration in inet_csk_listen_stop() and protects the post-queue_add() nsk accesses with rcu_read_lock()/rcu_read_unlock(). Patch 2 extends the existing migrate_reuseport BPF selftest with an epoll readiness check for the TCP_ESTABLISHED migration case. Testing: - On a patched kernel booted under QEMU, the full migrate_reuseport selftest passes with SELFTEST_RC=0. --- v2: - wrap the post-queue_add() nsk dereferences with rcu_read_lock()/ rcu_read_unlock() to prevent a potential UAF (Eric Dumazet) - extend tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c instead of adding standalone net selftests (Kuniyuki Iwashima) - limit the epoll readiness check to TCP_ESTABLISHED cases v1: https://lore.kernel.org/netdev/20260418041633.691435-1-jt26wzz@gmail.com/ Zhenzhong Wu (2): tcp: call sk_data_ready() after listener migration selftests/bpf: check epoll readiness after reuseport migration net/ipv4/inet_connection_sock.c | 3 ++ .../bpf/prog_tests/migrate_reuseport.c | 32 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) base-commit: 52bcb57a4e8a0865a76c587c2451906342ae1b2d -- 2.43.0