mirror of https://gitee.com/openkylin/linux.git
4c8941de78
If multiple CPUs races on the same req_sock in syn_recv_sock(),
flipping such field can cause inconsistent child socket status.
When racing, the CPU losing the req ownership may still change
the mptcp request socket mp_capable flag while the CPU owning
the request is cloning the socket, leaving the child socket with
'is_mptcp' set but no 'mp_capable' flag.
Such socket will stay with 'conn' field cleared, heading to oops
in later mptcp callback.
Address the issue tracking the fallback status in a local variable.
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
crypto.c | ||
ctrl.c | ||
diag.c | ||
mib.c | ||
mib.h | ||
options.c | ||
pm.c | ||
pm_netlink.c | ||
protocol.c | ||
protocol.h | ||
subflow.c | ||
token.c |