Merge 5.15.88 into android14-5.15
Changes in 5.15.88 parisc: Align parisc MADV_XXX constants with all other architectures x86/fpu: Take task_struct* in copy_sigframe_from_user_to_xstate() x86/fpu: Add a pkru argument to copy_uabi_from_kernel_to_xstate(). x86/fpu: Add a pkru argument to copy_uabi_to_xstate() x86/fpu: Allow PKRU to be (once again) written by ptrace. x86/fpu: Emulate XRSTOR's behavior if the xfeatures PKRU bit is not set selftests/vm/pkeys: Add a regression test for setting PKRU through ptrace serial: fixup backport of "serial: Deassert Transmit Enable on probe in driver-specific way" net: sched: disallow noqueue for qdisc classes net/ulp: prevent ULP without clone op from entering the LISTEN status ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list ALSA: hda - Enable headset mic on another Dell laptop with ALC3254 Linux 5.15.88 Change-Id: Ie44ecc4e8d82777f8f05714ed471dd15e309bb86 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -1040,11 +1040,25 @@ void inet_csk_prepare_forced_close(struct sock *sk)
|
||||
}
|
||||
EXPORT_SYMBOL(inet_csk_prepare_forced_close);
|
||||
|
||||
static int inet_ulp_can_listen(const struct sock *sk)
|
||||
{
|
||||
const struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
|
||||
if (icsk->icsk_ulp_ops && !icsk->icsk_ulp_ops->clone)
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int inet_csk_listen_start(struct sock *sk, int backlog)
|
||||
{
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
struct inet_sock *inet = inet_sk(sk);
|
||||
int err = -EADDRINUSE;
|
||||
int err;
|
||||
|
||||
err = inet_ulp_can_listen(sk);
|
||||
if (unlikely(err))
|
||||
return err;
|
||||
|
||||
reqsk_queue_alloc(&icsk->icsk_accept_queue);
|
||||
|
||||
|
||||
@@ -136,6 +136,10 @@ static int __tcp_set_ulp(struct sock *sk, const struct tcp_ulp_ops *ulp_ops)
|
||||
if (icsk->icsk_ulp_ops)
|
||||
goto out_err;
|
||||
|
||||
err = -EINVAL;
|
||||
if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN)
|
||||
goto out_err;
|
||||
|
||||
err = ulp_ops->init(sk);
|
||||
if (err)
|
||||
goto out_err;
|
||||
|
||||
@@ -1114,6 +1114,11 @@ skip:
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
if (new && new->ops == &noqueue_qdisc_ops) {
|
||||
NL_SET_ERR_MSG(extack, "Cannot assign noqueue to a class");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
err = cops->graft(parent, cl, new, &old, extack);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
Reference in New Issue
Block a user