Import of kernel-6.12.0-55.34.1.el10_0
This commit is contained in:
parent
40d161dbf5
commit
867e2c28af
@ -12,7 +12,7 @@ RHEL_MINOR = 0
|
|||||||
#
|
#
|
||||||
# Use this spot to avoid future merge conflicts.
|
# Use this spot to avoid future merge conflicts.
|
||||||
# Do not trim this comment.
|
# Do not trim this comment.
|
||||||
RHEL_RELEASE = 55.33.1
|
RHEL_RELEASE = 55.34.1
|
||||||
|
|
||||||
#
|
#
|
||||||
# RHEL_REBASE_NUM
|
# RHEL_REBASE_NUM
|
||||||
|
@ -3137,10 +3137,10 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
|
|||||||
const u8 *addr = al->list[i].addr;
|
const u8 *addr = al->list[i].addr;
|
||||||
|
|
||||||
/* Allow to delete VF primary MAC only if it was not set
|
/* Allow to delete VF primary MAC only if it was not set
|
||||||
* administratively by PF or if VF is trusted.
|
* administratively by PF.
|
||||||
*/
|
*/
|
||||||
if (ether_addr_equal(addr, vf->default_lan_addr.addr)) {
|
if (ether_addr_equal(addr, vf->default_lan_addr.addr)) {
|
||||||
if (i40e_can_vf_change_mac(vf))
|
if (!vf->pf_set_mac)
|
||||||
was_unimac_deleted = true;
|
was_unimac_deleted = true;
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
@ -4489,6 +4489,12 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
|
|||||||
if (!count)
|
if (!count)
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
|
|
||||||
|
if (count > evt->length) {
|
||||||
|
dev_err_ratelimited(dwc->dev, "invalid count(%u) > evt->length(%u)\n",
|
||||||
|
count, evt->length);
|
||||||
|
return IRQ_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
evt->count = count;
|
evt->count = count;
|
||||||
evt->flags |= DWC3_EVENT_PENDING;
|
evt->flags |= DWC3_EVENT_PENDING;
|
||||||
|
|
||||||
|
@ -257,20 +257,47 @@ svc_tcp_sock_process_cmsg(struct socket *sock, struct msghdr *msg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
svc_tcp_sock_recv_cmsg(struct svc_sock *svsk, struct msghdr *msg)
|
svc_tcp_sock_recv_cmsg(struct socket *sock, unsigned int *msg_flags)
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
struct cmsghdr cmsg;
|
struct cmsghdr cmsg;
|
||||||
u8 buf[CMSG_SPACE(sizeof(u8))];
|
u8 buf[CMSG_SPACE(sizeof(u8))];
|
||||||
} u;
|
} u;
|
||||||
struct socket *sock = svsk->sk_sock;
|
u8 alert[2];
|
||||||
|
struct kvec alert_kvec = {
|
||||||
|
.iov_base = alert,
|
||||||
|
.iov_len = sizeof(alert),
|
||||||
|
};
|
||||||
|
struct msghdr msg = {
|
||||||
|
.msg_flags = *msg_flags,
|
||||||
|
.msg_control = &u,
|
||||||
|
.msg_controllen = sizeof(u),
|
||||||
|
};
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
msg->msg_control = &u;
|
iov_iter_kvec(&msg.msg_iter, ITER_DEST, &alert_kvec, 1,
|
||||||
msg->msg_controllen = sizeof(u);
|
alert_kvec.iov_len);
|
||||||
|
ret = sock_recvmsg(sock, &msg, MSG_DONTWAIT);
|
||||||
|
if (ret > 0 &&
|
||||||
|
tls_get_record_type(sock->sk, &u.cmsg) == TLS_RECORD_TYPE_ALERT) {
|
||||||
|
iov_iter_revert(&msg.msg_iter, ret);
|
||||||
|
ret = svc_tcp_sock_process_cmsg(sock, &msg, &u.cmsg, -EAGAIN);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
svc_tcp_sock_recvmsg(struct svc_sock *svsk, struct msghdr *msg)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
struct socket *sock = svsk->sk_sock;
|
||||||
|
|
||||||
ret = sock_recvmsg(sock, msg, MSG_DONTWAIT);
|
ret = sock_recvmsg(sock, msg, MSG_DONTWAIT);
|
||||||
if (unlikely(msg->msg_controllen != sizeof(u)))
|
if (msg->msg_flags & MSG_CTRUNC) {
|
||||||
ret = svc_tcp_sock_process_cmsg(sock, msg, &u.cmsg, ret);
|
msg->msg_flags &= ~(MSG_CTRUNC | MSG_EOR);
|
||||||
|
if (ret == 0 || ret == -EIO)
|
||||||
|
ret = svc_tcp_sock_recv_cmsg(sock, &msg->msg_flags);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,7 +348,7 @@ static ssize_t svc_tcp_read_msg(struct svc_rqst *rqstp, size_t buflen,
|
|||||||
iov_iter_advance(&msg.msg_iter, seek);
|
iov_iter_advance(&msg.msg_iter, seek);
|
||||||
buflen -= seek;
|
buflen -= seek;
|
||||||
}
|
}
|
||||||
len = svc_tcp_sock_recv_cmsg(svsk, &msg);
|
len = svc_tcp_sock_recvmsg(svsk, &msg);
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
svc_flush_bvec(bvec, len, seek);
|
svc_flush_bvec(bvec, len, seek);
|
||||||
|
|
||||||
@ -1019,7 +1046,7 @@ static ssize_t svc_tcp_read_marker(struct svc_sock *svsk,
|
|||||||
iov.iov_base = ((char *)&svsk->sk_marker) + svsk->sk_tcplen;
|
iov.iov_base = ((char *)&svsk->sk_marker) + svsk->sk_tcplen;
|
||||||
iov.iov_len = want;
|
iov.iov_len = want;
|
||||||
iov_iter_kvec(&msg.msg_iter, ITER_DEST, &iov, 1, want);
|
iov_iter_kvec(&msg.msg_iter, ITER_DEST, &iov, 1, want);
|
||||||
len = svc_tcp_sock_recv_cmsg(svsk, &msg);
|
len = svc_tcp_sock_recvmsg(svsk, &msg);
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
return len;
|
return len;
|
||||||
svsk->sk_tcplen += len;
|
svsk->sk_tcplen += len;
|
||||||
|
Loading…
Reference in New Issue
Block a user