On Fri, Jul 22, 2016 at 09:25:42PM +0800, Xin Long wrote:
> Commit 486bdee0134c ("sctp: add support for RPS and RFS")
> saves skb->hash into sk->sk_rxhash so that the inet_* can
> record it to flow table.
>
> But sctp uses sock_common_recvmsg as .recvmsg instead
> of inet_recvmsg, sock_common_recvmsg doesn't invoke
> sock_rps_record_flow to record the flow. It may cause
> that the receiver has no chances to record the flow if
> it doesn't send msg or poll the socket.
>
> So this patch fixes it by using inet_recvmsg as .recvmsg
> in sctp.
>
> Fixes: 486bdee0134c ("sctp: add support for RPS and RFS")
> Signed-off-by: Xin Long <[email protected]>
Acked-by: Marcelo Ricardo Leitner <[email protected]>
Thanks
> ---
> net/sctp/ipv6.c | 2 +-
> net/sctp/protocol.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
> index ae6f1a2..98c383c 100644
> --- a/net/sctp/ipv6.c
> +++ b/net/sctp/ipv6.c
> @@ -954,7 +954,7 @@ static const struct proto_ops inet6_seqpacket_ops = {
> .setsockopt = sock_common_setsockopt,
> .getsockopt = sock_common_getsockopt,
> .sendmsg = inet_sendmsg,
> - .recvmsg = sock_common_recvmsg,
> + .recvmsg = inet_recvmsg,
> .mmap = sock_no_mmap,
> #ifdef CONFIG_COMPAT
> .compat_setsockopt = compat_sock_common_setsockopt,
> diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
> index 1adb927..7b523e3 100644
> --- a/net/sctp/protocol.c
> +++ b/net/sctp/protocol.c
> @@ -1028,7 +1028,7 @@ static const struct proto_ops inet_seqpacket_ops = {
> .setsockopt = sock_common_setsockopt, /* IP_SOL IP_OPTION is a
> problem */
> .getsockopt = sock_common_getsockopt,
> .sendmsg = inet_sendmsg,
> - .recvmsg = sock_common_recvmsg,
> + .recvmsg = inet_recvmsg,
> .mmap = sock_no_mmap,
> .sendpage = sock_no_sendpage,
> #ifdef CONFIG_COMPAT
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>