• Home
  • Raw
  • Download

Lines Matching full:sfd

966 static int mptcp_put_subflow_data(struct mptcp_subflow_data *sfd,  in mptcp_put_subflow_data()  argument
971 u32 copylen = min_t(u32, sfd->size_subflow_data, sizeof(*sfd)); in mptcp_put_subflow_data()
974 copied += sfd->size_subflow_data; in mptcp_put_subflow_data()
981 if (copy_to_user(optval, sfd, copylen)) in mptcp_put_subflow_data()
987 static int mptcp_get_subflow_data(struct mptcp_subflow_data *sfd, in mptcp_get_subflow_data() argument
999 BUILD_BUG_ON(sizeof(*sfd) != MIN_INFO_OPTLEN_SIZE); in mptcp_get_subflow_data()
1004 memset(sfd, 0, sizeof(*sfd)); in mptcp_get_subflow_data()
1006 copylen = min_t(unsigned int, len, sizeof(*sfd)); in mptcp_get_subflow_data()
1007 if (copy_from_user(sfd, optval, copylen)) in mptcp_get_subflow_data()
1011 if (sfd->size_subflow_data > INT_MAX || in mptcp_get_subflow_data()
1012 sfd->size_user > INT_MAX) in mptcp_get_subflow_data()
1015 if (sfd->size_subflow_data < MIN_INFO_OPTLEN_SIZE || in mptcp_get_subflow_data()
1016 sfd->size_subflow_data > len) in mptcp_get_subflow_data()
1019 if (sfd->num_subflows || sfd->size_kernel) in mptcp_get_subflow_data()
1022 return len - sfd->size_subflow_data; in mptcp_get_subflow_data()
1031 struct mptcp_subflow_data sfd; in mptcp_getsockopt_tcpinfo() local
1035 len = mptcp_get_subflow_data(&sfd, optval, optlen); in mptcp_getsockopt_tcpinfo()
1039 sfd.size_kernel = sizeof(struct tcp_info); in mptcp_getsockopt_tcpinfo()
1040 sfd.size_user = min_t(unsigned int, sfd.size_user, in mptcp_getsockopt_tcpinfo()
1043 infoptr = optval + sfd.size_subflow_data; in mptcp_getsockopt_tcpinfo()
1052 if (len && len >= sfd.size_user) { in mptcp_getsockopt_tcpinfo()
1057 if (copy_to_user(infoptr, &info, sfd.size_user)) { in mptcp_getsockopt_tcpinfo()
1062 infoptr += sfd.size_user; in mptcp_getsockopt_tcpinfo()
1063 copied += sfd.size_user; in mptcp_getsockopt_tcpinfo()
1064 len -= sfd.size_user; in mptcp_getsockopt_tcpinfo()
1070 sfd.num_subflows = sfcount; in mptcp_getsockopt_tcpinfo()
1072 if (mptcp_put_subflow_data(&sfd, optval, copied, optlen)) in mptcp_getsockopt_tcpinfo()
1123 struct mptcp_subflow_data sfd; in mptcp_getsockopt_subflow_addrs() local
1127 len = mptcp_get_subflow_data(&sfd, optval, optlen); in mptcp_getsockopt_subflow_addrs()
1131 sfd.size_kernel = sizeof(struct mptcp_subflow_addrs); in mptcp_getsockopt_subflow_addrs()
1132 sfd.size_user = min_t(unsigned int, sfd.size_user, in mptcp_getsockopt_subflow_addrs()
1135 addrptr = optval + sfd.size_subflow_data; in mptcp_getsockopt_subflow_addrs()
1144 if (len && len >= sfd.size_user) { in mptcp_getsockopt_subflow_addrs()
1149 if (copy_to_user(addrptr, &a, sfd.size_user)) { in mptcp_getsockopt_subflow_addrs()
1154 addrptr += sfd.size_user; in mptcp_getsockopt_subflow_addrs()
1155 copied += sfd.size_user; in mptcp_getsockopt_subflow_addrs()
1156 len -= sfd.size_user; in mptcp_getsockopt_subflow_addrs()
1162 sfd.num_subflows = sfcount; in mptcp_getsockopt_subflow_addrs()
1164 if (mptcp_put_subflow_data(&sfd, optval, copied, optlen)) in mptcp_getsockopt_subflow_addrs()