mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR (net-7.0-rc7). Conflicts: net/vmw_vsock/af_vsock.cb18c833888("vsock: initialize child_ns_mode_locked in vsock_net_init()")0de607dc4f("vsock: add G2H fallback for CIDs not owned by H2G transport") Adjacent changes: drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.cceee35e567("bnxt_en: Refactor some basic ring setup and adjustment logic")57cdfe0dc7("bnxt_en: Resize RSS contexts on channel count change") drivers/net/wireless/intel/iwlwifi/mld/mac80211.c4d56037a02("wifi: iwlwifi: mld: block EMLSR during TDLS connections")687a95d204("wifi: iwlwifi: mld: correctly set wifi generation data") drivers/net/wireless/intel/iwlwifi/mld/scan.hb6045c899e("wifi: iwlwifi: mld: Refactor scan command handling")ec66ec6a5a("wifi: iwlwifi: mld: Fix MLO scan timing") drivers/net/wireless/intel/iwlwifi/mvm/fw.c078df640ef("wifi: iwlwifi: mld: add support for iwl_mcc_allowed_ap_type_cmd v 2")323156c354("wifi: iwlwifi: mvm: don't send a 6E related command when not supported") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -2006,7 +2006,7 @@ static void mptcp_eat_recv_skb(struct sock *sk, struct sk_buff *skb)
|
||||
static int __mptcp_recvmsg_mskq(struct sock *sk, struct msghdr *msg,
|
||||
size_t len, int flags, int copied_total,
|
||||
struct scm_timestamping_internal *tss,
|
||||
int *cmsg_flags)
|
||||
int *cmsg_flags, struct sk_buff **last)
|
||||
{
|
||||
struct mptcp_sock *msk = mptcp_sk(sk);
|
||||
struct sk_buff *skb, *tmp;
|
||||
@@ -2023,6 +2023,7 @@ static int __mptcp_recvmsg_mskq(struct sock *sk, struct msghdr *msg,
|
||||
/* skip already peeked skbs */
|
||||
if (total_data_len + data_len <= copied_total) {
|
||||
total_data_len += data_len;
|
||||
*last = skb;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2058,6 +2059,8 @@ static int __mptcp_recvmsg_mskq(struct sock *sk, struct msghdr *msg,
|
||||
}
|
||||
|
||||
mptcp_eat_recv_skb(sk, skb);
|
||||
} else {
|
||||
*last = skb;
|
||||
}
|
||||
|
||||
if (copied >= len)
|
||||
@@ -2288,10 +2291,12 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
|
||||
cmsg_flags = MPTCP_CMSG_INQ;
|
||||
|
||||
while (copied < len) {
|
||||
struct sk_buff *last = NULL;
|
||||
int err, bytes_read;
|
||||
|
||||
bytes_read = __mptcp_recvmsg_mskq(sk, msg, len - copied, flags,
|
||||
copied, &tss, &cmsg_flags);
|
||||
copied, &tss, &cmsg_flags,
|
||||
&last);
|
||||
if (unlikely(bytes_read < 0)) {
|
||||
if (!copied)
|
||||
copied = bytes_read;
|
||||
@@ -2343,7 +2348,7 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
|
||||
|
||||
pr_debug("block timeout %ld\n", timeo);
|
||||
mptcp_cleanup_rbuf(msk, copied);
|
||||
err = sk_wait_data(sk, &timeo, NULL);
|
||||
err = sk_wait_data(sk, &timeo, last);
|
||||
if (err < 0) {
|
||||
err = copied ? : err;
|
||||
goto out_err;
|
||||
|
||||
Reference in New Issue
Block a user