Lines Matching defs:mfi
1170 static int mptcp_get_full_info(struct mptcp_full_info *mfi,
1185 memset(mfi, 0, sizeof(*mfi));
1186 if (copy_from_user(mfi, optval, MIN_FULL_INFO_OPTLEN_SIZE))
1189 if (mfi->size_tcpinfo_kernel ||
1190 mfi->size_sfinfo_kernel ||
1191 mfi->num_subflows)
1194 if (mfi->size_sfinfo_user > INT_MAX ||
1195 mfi->size_tcpinfo_user > INT_MAX)
1201 static int mptcp_put_full_info(struct mptcp_full_info *mfi,
1210 if (copy_to_user(optval, mfi, copylen))
1222 struct mptcp_full_info mfi;
1225 len = mptcp_get_full_info(&mfi, optval, optlen);
1233 mptcp_diag_fill_info(msk, &mfi.mptcp_info);
1237 mfi.size_tcpinfo_kernel = sizeof(struct tcp_info);
1238 mfi.size_tcpinfo_user = min_t(unsigned int, mfi.size_tcpinfo_user,
1240 sfinfoptr = u64_to_user_ptr(mfi.subflow_info);
1241 mfi.size_sfinfo_kernel = sizeof(struct mptcp_subflow_info);
1242 mfi.size_sfinfo_user = min_t(unsigned int, mfi.size_sfinfo_user,
1244 tcpinfoptr = u64_to_user_ptr(mfi.tcp_info);
1252 if (sfcount++ >= mfi.size_arrays_user)
1260 if (mfi.size_sfinfo_user >
1263 if (copy_to_user(sfinfoptr, &sfinfo, mfi.size_sfinfo_user))
1266 if (mfi.size_tcpinfo_user) {
1269 mfi.size_tcpinfo_user))
1273 tcpinfoptr += mfi.size_tcpinfo_user;
1274 sfinfoptr += mfi.size_sfinfo_user;
1278 mfi.num_subflows = sfcount;
1279 if (mptcp_put_full_info(&mfi, optval, copylen, optlen))