Linux 5.13.11
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.13.11 kernel.
All users of the 5.13 kernel series must upgrade.
The updated 5.13.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.13.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 - drivers/firmware/broadcom/tee_bnxt_fw.c | 14 ++++++++-- drivers/net/ppp/ppp_generic.c | 19 +++++++++++--- fs/namespace.c | 42 +++++++++++++++++++++----------- include/linux/security.h | 1 kernel/trace/bpf_trace.c | 5 ++- security/security.c | 1 sound/core/pcm_native.c | 5 +++ sound/pci/hda/patch_realtek.c | 2 + 9 files changed, 66 insertions(+), 25 deletions(-)
Allen Pais (1):
firmware: tee_bnxt: Release TEE shm, session, and context during kexec
Daniel Borkmann (1):
bpf: Add lockdown check for probe_write_user helper
Greg Kroah-Hartman (1):
Linux 5.13.11
Jeremy Szu (1):
ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 650 G8 Notebook PC
Luke D Jones (1):
ALSA: hda: Add quirk for ASUS Flow x13
Miklos Szeredi (1):
ovl: prevent private clone if bind mount is not allowed
Pali Rohár (1):
ppp: Fix generating ppp unit id when ifname is not specified
Takashi Iwai (1):
ALSA: pcm: Fix mmap breakage without explicit buffer setup
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 13 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = NAME = Opossums on Parade
drivers/firmware/broadcom/tee_bnxt_fw.c +11 -3
@@ -212,10 +212,9 @@ static int tee_bnxt_fw_probe(struct device *dev) pvt_data.dev = dev; - fw_shm_pool =tee_shm_alloc (pvt_data.ctx,MAX_SHM_MEM_SZ , -TEE_SHM_MAPPED |TEE_SHM_DMA_BUF ); + fw_shm_pool =tee_shm_alloc_kernel_buf (pvt_data.ctx,MAX_SHM_MEM_SZ );if (IS_ERR (fw_shm_pool)) { -dev_err (pvt_data.dev,"tee_shm_alloc failed\n" ); +dev_err (pvt_data.dev,"tee_shm_alloc_kernel_buf failed\n" ); err =PTR_ERR (fw_shm_pool); goto out_sess; }
@@ -242,6 +241,14 @@ static int tee_bnxt_fw_remove(struct device *dev)return 0 ; } +static void tee_bnxt_fw_shutdown (struct device *dev) +{ +tee_shm_free (pvt_data.fw_shm_pool); +tee_client_close_session (pvt_data.ctx, pvt_data.session_id); +tee_client_close_context (pvt_data.ctx); + pvt_data.ctx =NULL ; +} +static const struct tee_client_device_id tee_bnxt_fw_id_table[] = { {UUID_INIT (0x6272636D ,0x2019 ,0x0716 ,0x42 ,0x43 ,0x4D ,0x5F ,0x53 ,0x43 ,0x48 ,0x49 )},
@@ -257,6 +264,7 @@ static struct tee_client_driver tee_bnxt_fw_driver = { .bus = &tee_bus_type, .probe = tee_bnxt_fw_probe, .remove = tee_bnxt_fw_remove, + .shutdown = tee_bnxt_fw_shutdown, }, };
drivers/net/ppp/ppp_generic.c +15 -4
@@ -284,7 +284,7 @@ static struct channel *ppp_find_channel(struct ppp_net *pn, int unit);static int ppp_connect_channel (struct channel *pch,int unit);static int ppp_disconnect_channel (struct channel *pch);static void ppp_destroy_channel (struct channel *pch); -static int unit_get (struct idr *p,void *ptr); +static int unit_get (struct idr *p,void *ptr,int min);static int unit_set (struct idr *p,void *ptr,int n);static void unit_put (struct idr *p,int n);static void *unit_find (struct idr *p,int n);
@@ -1155,9 +1155,20 @@ static int ppp_unit_register(struct ppp *ppp, int unit, bool ifname_is_set)mutex_lock (&pn->all_ppp_mutex);if (unit <0 ) { - ret =unit_get (&pn->units_idr, ppp); + ret =unit_get (&pn->units_idr, ppp,0 );if (ret <0 ) goto err; +if (!ifname_is_set) { +while (1 ) { +snprintf (ppp->dev->name,IFNAMSIZ ,"ppp%i" , ret); +if (!__dev_get_by_name (ppp->ppp_net, ppp->dev->name)) +break ; +unit_put (&pn->units_idr, ret); + ret =unit_get (&pn->units_idr, ppp, ret +1 ); +if (ret <0 ) + goto err; + } + } }else {/* Caller asked for a specific unit number. Fail with -EEXIST * if unavailable. For backward compatibility, return -EEXIST
@@ -3552,9 +3563,9 @@ static int unit_set(struct idr *p, void *ptr, int n) }/* get new free unit number and associate pointer with it */ -static int unit_get (struct idr *p,void *ptr) +static int unit_get (struct idr *p,void *ptr,int min) { -return idr_alloc (p, ptr,0 ,0 ,GFP_KERNEL ); +return idr_alloc (p, ptr, min,0 ,GFP_KERNEL ); }/* put unit number back to a pool */
fs/namespace.c +28 -14
69 lines not on this page · raw message
include/linux/security.h +1 -0
@@ -120,6 +120,7 @@ enum lockdown_reason {LOCKDOWN_MMIOTRACE ,LOCKDOWN_DEBUGFS ,LOCKDOWN_XMON_WR , +LOCKDOWN_BPF_WRITE_USER ,LOCKDOWN_INTEGRITY_MAX ,LOCKDOWN_KCORE , LOCKDOWN_KPROBES,
kernel/trace/bpf_trace.c +3 -2
@@ -990,12 +990,13 @@ bpf_tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)return &bpf_get_numa_node_id_proto;case BPF_FUNC_perf_event_read:return &bpf_perf_event_read_proto; -case BPF_FUNC_probe_write_user: -return bpf_get_probe_write_proto ();case BPF_FUNC_current_task_under_cgroup:return &bpf_current_task_under_cgroup_proto;case BPF_FUNC_get_prandom_u32:return &bpf_get_prandom_u32_proto; +case BPF_FUNC_probe_write_user: +return security_locked_down (LOCKDOWN_BPF_WRITE_USER ) <0 ? +NULL :bpf_get_probe_write_proto ();case BPF_FUNC_probe_read_user:return &bpf_probe_read_user_proto;case BPF_FUNC_probe_read_kernel:
security/security.c +1 -0
@@ -58,6 +58,7 @@ const char *const lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1] = { [LOCKDOWN_MMIOTRACE] = "unsafe mmio", [LOCKDOWN_DEBUGFS] = "debugfs access", [LOCKDOWN_XMON_WR] = "xmon write access", + [LOCKDOWN_BPF_WRITE_USER] = "use of bpf to write user RAM", [LOCKDOWN_INTEGRITY_MAX] = "integrity", [LOCKDOWN_KCORE] = "/proc/kcore access", [LOCKDOWN_KPROBES] = "use of kprobes",
sound/core/pcm_native.c +4 -1
@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)switch (substream->dma_buffer.dev.type) {case SNDRV_DMA_TYPE_UNKNOWN : -return false; +/* we can't know the device, so just assume that the driver does +* everything right +*/ +return true;case SNDRV_DMA_TYPE_CONTINUOUS :case SNDRV_DMA_TYPE_VMALLOC :return true;
sound/pci/hda/patch_realtek.c +2 -0
@@ -8371,6 +8371,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x103c ,0x87f4 ,"HP" ,ALC287_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x87f5 ,"HP" ,ALC287_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x87f7 ,"HP Spectre x360 14" ,ALC245_FIXUP_HP_X360_AMP ), +SND_PCI_QUIRK (0x103c ,0x8805 ,"HP ProBook 650 G8 Notebook PC" ,ALC236_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x880d ,"HP EliteBook 830 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8846 ,"HP EliteBook 850 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ), SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
@@ -8405,6 +8406,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x1043 ,0x16e3 ,"ASUS UX50" ,ALC269_FIXUP_STEREO_DMIC ),SND_PCI_QUIRK (0x1043 ,0x1740 ,"ASUS UX430UA" ,ALC295_FIXUP_ASUS_DACS ),SND_PCI_QUIRK (0x1043 ,0x17d1 ,"ASUS UX431FL" ,ALC294_FIXUP_ASUS_DUAL_SPK ), +SND_PCI_QUIRK (0x1043 ,0x1662 ,"ASUS GV301QH" ,ALC294_FIXUP_ASUS_DUAL_SPK ),SND_PCI_QUIRK (0x1043 ,0x1881 ,"ASUS Zephyrus S/M" ,ALC294_FIXUP_ASUS_GX502_PINS ),SND_PCI_QUIRK (0x1043 ,0x18b1 ,"Asus MJ401TA" ,ALC256_FIXUP_ASUS_HEADSET_MIC ), SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC),