Linux 6.1.6
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.6 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/parisc/include/uapi/asm/mman.h | 29 ++--- arch/parisc/kernel/sys_parisc.c | 28 +++++ arch/parisc/kernel/syscalls/syscall.tbl | 2 arch/x86/kernel/fpu/core.c | 19 +-- arch/x86/kernel/fpu/regset.c | 2 arch/x86/kernel/fpu/signal.c | 2 arch/x86/kernel/fpu/xstate.c | 52 +++++++++- arch/x86/kernel/fpu/xstate.h | 4 fs/nfsd/nfs4proc.c | 7 - fs/nfsd/nfs4xdr.c | 2 init/Kconfig | 6 + net/sched/sch_api.c | 5 + net/sunrpc/auth_gss/svcauth_gss.c | 4 net/sunrpc/svc.c | 6 - net/sunrpc/svc_xprt.c | 2 net/sunrpc/svcsock.c | 8 - net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 sound/core/control.c | 24 +++- sound/pci/hda/cs35l41_hda.c | 20 +++- sound/pci/hda/patch_hdmi.c | 1 sound/pci/hda/patch_realtek.c | 2 tools/arch/parisc/include/uapi/asm/mman.h | 12 +- tools/perf/bench/bench.h | 12 -- tools/testing/selftests/vm/pkey-x86.h | 12 ++ tools/testing/selftests/vm/protection_keys.c | 131 ++++++++++++++++++++++++++- 26 files changed, 308 insertions(+), 88 deletions(-)
Adrian Chan (1):
ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list
Chris Chiu (1):
ALSA: hda - Enable headset mic on another Dell laptop with ALC3254
Chuck Lever (1):
Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
Clement Lecigne (1):
ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
Frederick Lawler (1):
net: sched: disallow noqueue for qdisc classes
Greg Kroah-Hartman (1):
Linux 6.1.6
Helge Deller (1):
parisc: Align parisc MADV_XXX constants with all other architectures
Jeremy Szu (1):
ALSA: hda/realtek: fix mute/micmute LEDs don't work for a HP platform
Kyle Huey (6):
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
Linus Torvalds (1):
gcc: disable -Warray-bounds for gcc-11 too
Takashi Iwai (2):
ALSA: hda: cs35l41: Don't return -EINVAL from system suspend/resume
ALSA: hda: cs35l41: Check runtime suspend capability at runtime_idle
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 5 +SUBLEVEL = 6 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/parisc/include/uapi/asm/mman.h +14 -15
@@ -49,6 +49,19 @@#define MADV_DONTFORK 10/* don't inherit across fork */ #define MADV_DOFORK 11/* do inherit across fork */ +#define MADV_MERGEABLE 12/* KSM may merge identical pages */ +#define MADV_UNMERGEABLE 13/* KSM may not merge identical pages */ + +#define MADV_HUGEPAGE 14/* Worth backing with hugepages */ +#define MADV_NOHUGEPAGE 15/* Not worth backing with hugepages */ + +#define MADV_DONTDUMP 16/* Explicity exclude from the core dump, +overrides the coredump filter bits */ +#define MADV_DODUMP 17/* Clear the MADV_NODUMP flag */ + +#define MADV_WIPEONFORK 18/* Zero memory on fork, child only */ +#define MADV_KEEPONFORK 19/* Undo MADV_WIPEONFORK */ +#define MADV_COLD 20/* deactivate these pages */ #define MADV_PAGEOUT 21/* reclaim these pages */
@@ -57,27 +70,13 @@#define MADV_DONTNEED_LOCKED 24/* like DONTNEED, but drop locked pages too */ -#define MADV_MERGEABLE 65/* KSM may merge identical pages */ -#define MADV_UNMERGEABLE 66/* KSM may not merge identical pages */ - -#define MADV_HUGEPAGE 67/* Worth backing with hugepages */ -#define MADV_NOHUGEPAGE 68/* Not worth backing with hugepages */ - -#define MADV_DONTDUMP 69/* Explicity exclude from the core dump, -overrides the coredump filter bits */ -#define MADV_DODUMP 70/* Clear the MADV_NODUMP flag */ - -#define MADV_WIPEONFORK 71/* Zero memory on fork, child only */ -#define MADV_KEEPONFORK 72/* Undo MADV_WIPEONFORK */ - -#define MADV_COLLAPSE 73/* Synchronous hugepage collapse */ +#define MADV_COLLAPSE 25/* Synchronous hugepage collapse */ #define MADV_HWPOISON 100/* poison a page for testing */ #define MADV_SOFT_OFFLINE 101/* soft offline page for testing */ /* compatibility flags */ #define MAP_FILE 0 -#define MAP_VARIABLE 0#define PKEY_DISABLE_ACCESS 0x1#define PKEY_DISABLE_WRITE 0x2
arch/parisc/kernel/sys_parisc.c +28 -0
@@ -465,3 +465,31 @@ asmlinkage long parisc_inotify_init1(int flags) flags =FIX_O_NONBLOCK (flags);return sys_inotify_init1 (flags); } + +/* +* madvise() wrapper +* +* Up to kernel v6.1 parisc has different values than all other +* platforms for the MADV_xxx flags listed below. +* To keep binary compatibility with existing userspace programs +* translate the former values to the new values. +* +* XXX: Remove this wrapper in year 2025 (or later) +*/ + +asmlinkage notrace long parisc_madvise(unsigned long start, size_t len_in, int behavior) +{ +switch (behavior) { +case 65 : behavior =MADV_MERGEABLE ;break ; +case 66 : behavior =MADV_UNMERGEABLE ;break ; +case 67 : behavior =MADV_HUGEPAGE ;break ; +case 68 : behavior =MADV_NOHUGEPAGE ;break ; +case 69 : behavior =MADV_DONTDUMP ;break ; +case 70 : behavior =MADV_DODUMP ;break ; +case 71 : behavior =MADV_WIPEONFORK ;break ; +case 72 : behavior =MADV_KEEPONFORK ;break ; +case 73 : behavior =MADV_COLLAPSE ;break ; + } + +return sys_madvise (start, len_in, behavior); +}
arch/parisc/kernel/syscalls/syscall.tbl +1 -1
@@ -131,7 +131,7 @@ 116 common sysinfo sys_sysinfo compat_sys_sysinfo 117 common shutdown sys_shutdown 118 common fsync sys_fsync -119 common madvise sys_madvise +119 common madvise parisc_madvise 120 common clone sys_clone_wrapper 121 common setdomainname sys_setdomainname 122 common sendfile sys_sendfile compat_sys_sendfile
arch/x86/kernel/fpu/core.c +8 -11
@@ -391,8 +391,6 @@ int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf, {struct fpstate *kstate = gfpu->fpstate;const union fpregs_state *ustate = buf; -struct pkru_state *xpkru; -int ret;if (!cpu_feature_enabled (X86_FEATURE_XSAVE )) {if (ustate->xsave.header.xfeatures & ~XFEATURE_MASK_FPSSE )
@@ -406,16 +404,15 @@ int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf,if (ustate->xsave.header.xfeatures & ~xcr0)return -EINVAL ; - ret =copy_uabi_from_kernel_to_xstate (kstate, ustate); -if (ret) -return ret; +/* +* Nullify @vpkru to preserve its current value if PKRU's bit isn't set +* in the header. KVM's odd ABI is to leave PKRU untouched in this +* case (all other components are eventually re-initialized). +*/ +if (!(ustate->xsave.header.xfeatures &XFEATURE_MASK_PKRU )) + vpkru =NULL ; -/* Retrieve PKRU if not in init state */ -if (kstate->regs.xsave.header.xfeatures &XFEATURE_MASK_PKRU ) { - xpkru =get_xsave_addr (&kstate->regs.xsave,XFEATURE_PKRU ); - *vpkru = xpkru->pkru; - } - return 0; + return copy_uabi_from_kernel_to_xstate(kstate, ustate, vpkru); }EXPORT_SYMBOL_GPL (fpu_copy_uabi_to_guest_fpstate);#endif /* CONFIG_KVM */
arch/x86/kernel/fpu/regset.c +1 -1
@@ -167,7 +167,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset, }fpu_force_restore (fpu); - ret =copy_uabi_from_kernel_to_xstate (fpu->fpstate, kbuf ?: tmpbuf); + ret =copy_uabi_from_kernel_to_xstate (fpu->fpstate, kbuf ?: tmpbuf, &target->thread.pkru); out:vfree (tmpbuf);
arch/x86/kernel/fpu/signal.c +1 -1
@@ -396,7 +396,7 @@ static bool __fpu_restore_sig(void __user *buf, void __user *buf_fx, fpregs = &fpu->fpstate->regs;if (use_xsave () && !fx_only) { -if (copy_sigframe_from_user_to_xstate (fpu->fpstate, buf_fx)) +if (copy_sigframe_from_user_to_xstate (tsk, buf_fx))return false; }else { if (__copy_from_user(&fpregs->fxsave, buf_fx,
arch/x86/kernel/fpu/xstate.c +47 -5
80 lines not on this page · raw message
arch/x86/kernel/fpu/xstate.h +2 -2
@@ -46,8 +46,8 @@ extern void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate, u32 pkru_val, enum xstate_copy_mode copy_mode);extern void copy_xstate_to_uabi_buf (struct membuf to,struct task_struct *tsk,enum xstate_copy_mode mode); -extern int copy_uabi_from_kernel_to_xstate (struct fpstate *fpstate,const void *kbuf); -extern int copy_sigframe_from_user_to_xstate (struct fpstate *fpstate,const void __user *ubuf); +extern int copy_uabi_from_kernel_to_xstate (struct fpstate *fpstate,const void *kbuf,u32 *pkru); +extern int copy_sigframe_from_user_to_xstate (struct task_struct *tsk,const void __user *ubuf);extern void fpu__init_cpu_xstate (void );
fs/nfsd/nfs4proc.c +3 -4
@@ -928,7 +928,7 @@ nfsd4_read(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,* the client wants us to do more in this compound: */ if (!nfsd4_last_compound_op (rqstp)) -__clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags); +clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags);/* check stateid */ status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
@@ -2615,12 +2615,11 @@ nfsd4_proc_compound(struct svc_rqst *rqstp) cstate->minorversion = args->minorversion;fh_init (current_fh,NFS4_FHSIZE );fh_init (save_fh,NFS4_FHSIZE ); -/* * Don't use the deferral mechanism for NFSv4; compounds make it * too hard to avoid non-idempotency problems. */ -__clear_bit (RQ_USEDEFERRAL , &rqstp->rq_flags); +clear_bit (RQ_USEDEFERRAL , &rqstp->rq_flags);/* * According to RFC3010, this takes precedence over all other errors.
@@ -2742,7 +2741,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp) out: cstate->status = status;/* Reset deferral mechanism for RPC deferrals */ -__set_bit (RQ_USEDEFERRAL , &rqstp->rq_flags); +set_bit (RQ_USEDEFERRAL , &rqstp->rq_flags);return rpc_success; }
fs/nfsd/nfs4xdr.c +1 -1
@@ -2464,7 +2464,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp) argp->rqstp->rq_cachetype = cachethis ?RC_REPLBUFF :RC_NOCACHE ;if (readcount >1 || max_reply >PAGE_SIZE - auth_slack) -__clear_bit (RQ_SPLICE_OK , &argp->rqstp->rq_flags); +clear_bit (RQ_SPLICE_OK , &argp->rqstp->rq_flags);return true; }
init/Kconfig +5 -1
@@ -892,13 +892,17 @@ config CC_IMPLICIT_FALLTHROUGH default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5) default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough) -# Currently, disable gcc-12 array-bounds globally. +# Currently, disable gcc-11,12 array-bounds globally. # We may want to target only particular configurations some day. +config GCC11_NO_ARRAY_BOUNDS + def_bool y + config GCC12_NO_ARRAY_BOUNDS def_bool y config CC_NO_ARRAY_BOUNDS bool + default y if CC_IS_GCC && GCC_VERSION >= 110000 && GCC_VERSION < 120000 && GCC11_NO_ARRAY_BOUNDS default y if CC_IS_GCC && GCC_VERSION >= 120000 && GCC_VERSION < 130000 && GCC12_NO_ARRAY_BOUNDS #
net/sched/sch_api.c +5 -0
@@ -1132,6 +1132,11 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,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;
net/sunrpc/auth_gss/svcauth_gss.c +2 -2
@@ -900,7 +900,7 @@ unwrap_integ_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct g* rejecting the server-computed MIC in this somewhat rare case, * do not use splice with the GSS integrity service. */ -__clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags); +clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags);/* Did we already verify the signature on the original pass through? */ if (rqstp->rq_deferred)
@@ -972,7 +972,7 @@ unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gsint pad, remaining_len, offset;u32 rseqno; -__clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags); +clear_bit (RQ_SPLICE_OK , &rqstp->rq_flags); priv_len =svc_getnl (&buf->head[0 ]);if (rqstp->rq_deferred) {
net/sunrpc/svc.c +3 -3
@@ -1244,10 +1244,10 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv) goto err_short_len;/* Will be turned off by GSS integrity and privacy services */ -__set_bit (RQ_SPLICE_OK , &rqstp->rq_flags); +set_bit (RQ_SPLICE_OK , &rqstp->rq_flags);/* Will be turned off only when NFSv4 Sessions are used */ -__set_bit (RQ_USEDEFERRAL , &rqstp->rq_flags); -__clear_bit (RQ_DROPME , &rqstp->rq_flags); +set_bit (RQ_USEDEFERRAL , &rqstp->rq_flags); +clear_bit (RQ_DROPME , &rqstp->rq_flags);svc_putu32 (resv, rqstp->rq_xid);
net/sunrpc/svc_xprt.c +1 -1
@@ -1238,7 +1238,7 @@ static struct cache_deferred_req *svc_defer(struct cache_req *req)trace_svc_defer (rqstp);svc_xprt_get (rqstp->rq_xprt); dr->xprt = rqstp->rq_xprt; -__set_bit (RQ_DROPME , &rqstp->rq_flags); +set_bit (RQ_DROPME , &rqstp->rq_flags); dr->handle.revisit = svc_revisit;return &dr->handle;
net/sunrpc/svcsock.c +4 -4
@@ -298,9 +298,9 @@ static void svc_sock_setbufsize(struct svc_sock *svsk, unsigned int nreqs)static void svc_sock_secure_port (struct svc_rqst *rqstp) {if (svc_port_is_privileged (svc_addr (rqstp))) -__set_bit (RQ_SECURE , &rqstp->rq_flags); +set_bit (RQ_SECURE , &rqstp->rq_flags);else -__clear_bit (RQ_SECURE , &rqstp->rq_flags); +clear_bit (RQ_SECURE , &rqstp->rq_flags); }/*
@@ -1008,9 +1008,9 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp) rqstp->rq_xprt_ctxt =NULL ; rqstp->rq_prot =IPPROTO_TCP ;if (test_bit (XPT_LOCAL , &svsk->sk_xprt.xpt_flags)) -__set_bit (RQ_LOCAL , &rqstp->rq_flags); +set_bit (RQ_LOCAL , &rqstp->rq_flags);else -__clear_bit (RQ_LOCAL , &rqstp->rq_flags); +clear_bit (RQ_LOCAL , &rqstp->rq_flags); p = (__be32 *)rqstp->rq_arg.head[0 ].iov_base; calldir = p[1 ];
net/sunrpc/xprtrdma/svc_rdma_transport.c +1 -1
@@ -602,7 +602,7 @@ static int svc_rdma_has_wspace(struct svc_xprt *xprt)static void svc_rdma_secure_port (struct svc_rqst *rqstp) { -__set_bit (RQ_SECURE , &rqstp->rq_flags); +set_bit (RQ_SECURE , &rqstp->rq_flags); }static void svc_rdma_kill_temp_xprt (struct svc_xprt *xprt)
sound/core/control.c +15 -9
@@ -1203,14 +1203,19 @@ static int snd_ctl_elem_read(struct snd_card *card,const u32 pattern =0xdeadbeef ;int ret; +down_read (&card->controls_rwsem); kctl =snd_ctl_find_id (card, &control->id); -if (kctl ==NULL ) -return -ENOENT ; +if (kctl ==NULL ) { + ret = -ENOENT ; + goto unlock; + } index_offset =snd_ctl_get_ioff (kctl, &control->id); vd = &kctl->vd[index_offset]; -if (!(vd->access &SNDRV_CTL_ELEM_ACCESS_READ ) || kctl->get ==NULL ) -return -EPERM ; +if (!(vd->access &SNDRV_CTL_ELEM_ACCESS_READ ) || kctl->get ==NULL ) { + ret = -EPERM ; + goto unlock; + }snd_ctl_build_ioff (&control->id, kctl, index_offset);
@@ -1220,7 +1225,7 @@ static int snd_ctl_elem_read(struct snd_card *card, info.id = control->id; ret =__snd_ctl_elem_info (card, kctl, &info,NULL );if (ret <0 ) -return ret; + goto unlock;#endif if (!snd_ctl_skip_validation (&info))
@@ -1230,7 +1235,7 @@ static int snd_ctl_elem_read(struct snd_card *card, ret = kctl->get (kctl, control);snd_power_unref (card);if (ret <0 ) -return ret; + goto unlock;if (!snd_ctl_skip_validation (&info) &&sanity_check_elem_value (card, control, &info, pattern) <0 ) { dev_err(card->dev,
@@ -1238,8 +1243,11 @@ static int snd_ctl_elem_read(struct snd_card *card, control->id.iface, control->id.device, control->id.subdevice, control->id.name, control->id.index); -return -EINVAL ; + ret = -EINVAL ; + goto unlock; } +unlock: +up_read (&card->controls_rwsem);return ret; }
@@ -1253,9 +1261,7 @@ static int snd_ctl_elem_read_user(struct snd_card *card,if (IS_ERR (control))return PTR_ERR (control); -down_read (&card->controls_rwsem); result =snd_ctl_elem_read (card, control); -up_read (&card->controls_rwsem);if (result <0 ) goto error;
sound/pci/hda/cs35l41_hda.c +15 -5
@@ -598,8 +598,8 @@ static int cs35l41_system_suspend(struct device *dev)dev_dbg (cs35l41->dev,"System Suspend\n" );if (cs35l41->hw_cfg.bst_type ==CS35L41_EXT_BOOST_NO_VSPK_SWITCH ) { -dev_err (cs35l41->dev,"System Suspend not supported\n" ); -return -EINVAL ; +dev_err_once (cs35l41->dev,"System Suspend not supported\n" ); +return 0 ;/* don't block the whole system suspend */ } ret =pm_runtime_force_suspend (dev);
@@ -624,8 +624,8 @@ static int cs35l41_system_resume(struct device *dev)dev_dbg (cs35l41->dev,"System Resume\n" );if (cs35l41->hw_cfg.bst_type ==CS35L41_EXT_BOOST_NO_VSPK_SWITCH ) { -dev_err (cs35l41->dev,"System Resume not supported\n" ); -return -EINVAL ; +dev_err_once (cs35l41->dev,"System Resume not supported\n" ); +return 0 ;/* don't block the whole system resume */ }if (cs35l41->reset_gpio) {
@@ -647,6 +647,15 @@ static int cs35l41_system_resume(struct device *dev)return ret; } +static int cs35l41_runtime_idle (struct device *dev) +{ +struct cs35l41_hda *cs35l41 =dev_get_drvdata (dev); + +if (cs35l41->hw_cfg.bst_type ==CS35L41_EXT_BOOST_NO_VSPK_SWITCH ) +return -EBUSY ;/* suspend not supported yet on this model */ +return 0 ; +} +static int cs35l41_runtime_suspend (struct device *dev) {struct cs35l41_hda *cs35l41 =dev_get_drvdata (dev);
@@ -1536,7 +1545,8 @@ void cs35l41_hda_remove(struct device *dev)EXPORT_SYMBOL_NS_GPL (cs35l41_hda_remove,SND_HDA_SCODEC_CS35L41 );const struct dev_pm_ops cs35l41_hda_pm_ops = { - RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, NULL) + RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, + cs35l41_runtime_idle)SYSTEM_SLEEP_PM_OPS (cs35l41_system_suspend, cs35l41_system_resume) };EXPORT_SYMBOL_NS_GPL (cs35l41_hda_pm_ops,SND_HDA_SCODEC_CS35L41 );
sound/pci/hda/patch_hdmi.c +1 -0
@@ -1981,6 +1981,7 @@ static const struct snd_pci_quirk force_connect_list[] = {SND_PCI_QUIRK (0x103c ,0x870f ,"HP" ,1 ),SND_PCI_QUIRK (0x103c ,0x871a ,"HP" ,1 ),SND_PCI_QUIRK (0x103c ,0x8711 ,"HP" ,1 ), +SND_PCI_QUIRK (0x103c ,0x8715 ,"HP" ,1 ),SND_PCI_QUIRK (0x1462 ,0xec94 ,"MS-7C94" ,1 ), SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1), {}
sound/pci/hda/patch_realtek.c +2 -0
@@ -9239,6 +9239,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x1028 ,0x0b1a ,"Dell Precision 5570" ,ALC289_FIXUP_DUAL_SPK ),SND_PCI_QUIRK (0x1028 ,0x0b37 ,"Dell Inspiron 16 Plus 7620 2-in-1" ,ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS ),SND_PCI_QUIRK (0x1028 ,0x0b71 ,"Dell Inspiron 16 Plus 7620" ,ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS ), +SND_PCI_QUIRK (0x1028 ,0x0c03 ,"Dell Precision 5340" ,ALC269_FIXUP_DELL4_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1028 ,0x0c19 ,"Dell Precision 3340" ,ALC236_FIXUP_DELL_DUAL_CODECS ),SND_PCI_QUIRK (0x1028 ,0x0c1a ,"Dell Precision 3340" ,ALC236_FIXUP_DELL_DUAL_CODECS ), SND_PCI_QUIRK(0x1028, 0x0c1b, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS),
@@ -9406,6 +9407,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x103c ,0x8ad2 ,"HP EliteBook 860 16 inch G9 Notebook PC" ,ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8b5d ,"HP" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ),SND_PCI_QUIRK (0x103c ,0x8b5e ,"HP" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ), +SND_PCI_QUIRK (0x103c ,0x8bf0 ,"HP" ,ALC236_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x1043 ,0x103e ,"ASUS X540SA" ,ALC256_FIXUP_ASUS_MIC ),SND_PCI_QUIRK (0x1043 ,0x103f ,"ASUS TX300" ,ALC282_FIXUP_ASUS_TX300 ), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
tools/arch/parisc/include/uapi/asm/mman.h +6 -6
@@ -1,20 +1,20 @@/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H #define TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H -#define MADV_DODUMP 70 +#define MADV_DODUMP 17#define MADV_DOFORK 11 -#define MADV_DONTDUMP 69 +#define MADV_DONTDUMP 16#define MADV_DONTFORK 10#define MADV_DONTNEED 4#define MADV_FREE 8 -#define MADV_HUGEPAGE 67 -#define MADV_MERGEABLE 65 -#define MADV_NOHUGEPAGE 68 +#define MADV_HUGEPAGE 14 +#define MADV_MERGEABLE 12 +#define MADV_NOHUGEPAGE 15#define MADV_NORMAL 0#define MADV_RANDOM 1#define MADV_REMOVE 9#define MADV_SEQUENTIAL 2 -#define MADV_UNMERGEABLE 66 +#define MADV_UNMERGEABLE 13#define MADV_WILLNEED 3#define MAP_ANONYMOUS 0x10#define MAP_DENYWRITE 0x0800
tools/perf/bench/bench.h +0 -12
@@ -10,25 +10,13 @@ extern struct timeval bench__start, bench__end, bench__runtime;* The madvise transparent hugepage constants were added in glibc * 2.13. For compatibility with older versions of glibc, define these * tokens if they are not already defined. -* -* PA-RISC uses different madvise values from other architectures and -* needs to be special-cased. */ -#ifdef __hppa__ -# ifndef MADV_HUGEPAGE -# define MADV_HUGEPAGE 67 -# endif -# ifndef MADV_NOHUGEPAGE -# define MADV_NOHUGEPAGE 68 -# endif -#else # ifndef MADV_HUGEPAGE # define MADV_HUGEPAGE 14# endif # ifndef MADV_NOHUGEPAGE # define MADV_NOHUGEPAGE 15# endif -#endif int bench_numa (int argc,const char **argv);int bench_sched_messaging (int argc,const char **argv);
tools/testing/selftests/vm/pkey-x86.h +12 -0
@@ -104,6 +104,18 @@ static inline int cpu_has_pkeys(void)return 1 ; } +static inline int cpu_max_xsave_size (void ) +{ +unsigned long XSTATE_CPUID =0xd ; +unsigned int eax; +unsigned int ebx; +unsigned int ecx; +unsigned int edx; + +__cpuid_count (XSTATE_CPUID ,0 , eax, ebx, ecx, edx); +return ecx; +} +static inline u32 pkey_bit_position (int pkey) {return pkey *PKEY_BITS_PER_PKEY ;
tools/testing/selftests/vm/protection_keys.c +129 -2
153 lines not on this page · raw message