Linux 5.10.160
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.160 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/x86/kernel/cpu/mtrr/mtrr.c | 2 arch/x86/kernel/smpboot.c | 1 drivers/net/can/usb/mcba_usb.c | 10 + drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c | 3 drivers/nvme/host/pci.c | 2 drivers/pinctrl/mediatek/mtk-eint.c | 9 + fs/fuse/dir.c | 2 fs/io_uring.c | 2 fs/nfsd/vfs.c | 8 + fs/read_write.c | 90 +++++++++------ include/linux/can/platform/sja1000.h | 2 include/linux/fs.h | 8 + sound/soc/codecs/cs42l51.c | 2 sound/soc/fsl/fsl_micfil.c | 19 +++ sound/soc/soc-ops.c | 9 + tools/lib/bpf/libbpf_probes.c | 2 17 files changed, 121 insertions(+), 52 deletions(-)
Amir Goldstein (2):
vfs: fix copy_file_range() regression in cross-fs copies
vfs: fix copy_file_range() averts filesystem freeze protection
Bing-Jhong Billy Jheng (1):
io_uring: add missing item types for splice request
Charles Keepax (2):
ASoC: cs42l51: Correct PGA Volume minimum value
ASoC: ops: Correct bounds check for second channel on SX controls
Greg Kroah-Hartman (1):
Linux 5.10.160
Heiko Schocher (1):
can: sja1000: fix size of OCR_MODE_MASK define
Hou Tao (1):
libbpf: Use page size as max_entries when probing ring buffer map
Jialiang Wang (1):
nfp: fix use-after-free in area_cache_get()
Lei Rao (1):
nvme-pci: clear the prp2 field when not used
Mark Brown (1):
ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
Miklos Szeredi (1):
fuse: always revalidate if exclusive create
Paul E. McKenney (1):
x86/smpboot: Move rcu_cpu_starting() earlier
Ricardo Ribalda (1):
pinctrl: meditatek: Startup with the IRQs disabled
Shengjiu Wang (2):
ASoC: fsl_micfil: explicitly clear software reset bit
ASoC: fsl_micfil: explicitly clear CHnF flags
Yasushi SHOJI (1):
can: mcba_usb: Fix termination command argument
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 159 +SUBLEVEL = 160 EXTRAVERSION = NAME = Dare mighty things
arch/x86/kernel/cpu/mtrr/mtrr.c +0 -2
@@ -794,8 +794,6 @@ void mtrr_ap_init(void)if (!use_intel () || mtrr_aps_delayed_init)return ; -rcu_cpu_starting (smp_processor_id ()); -/* * Ideally we should hold mtrr_mutex here to avoid mtrr entries * changed, but this routine will be called in cpu boot time,
arch/x86/kernel/smpboot.c +1 -0
@@ -229,6 +229,7 @@ static void notrace start_secondary(void *unused)#endif cpu_init_exception_handling ();cpu_init (); +rcu_cpu_starting (raw_smp_processor_id ()); x86_cpuinit.early_percpu_clock_init ();smp_callin ();
drivers/net/can/usb/mcba_usb.c +7 -3
@@ -47,6 +47,10 @@#define MCBA_VER_REQ_USB 1#define MCBA_VER_REQ_CAN 2 +/* Drive the CAN_RES signal LOW "0" to activate R24 and R25 */ +#define MCBA_VER_TERMINATION_ON 0 +#define MCBA_VER_TERMINATION_OFF 1 +#define MCBA_SIDL_EXID_MASK 0x8#define MCBA_DLC_MASK 0xf#define MCBA_DLC_RTR_MASK 0x40
@@ -469,7 +473,7 @@ static void mcba_usb_process_ka_usb(struct mcba_priv *priv, priv->usb_ka_first_pass = false; } -if (msg->termination_state) +if (msg->termination_state ==MCBA_VER_TERMINATION_ON ) priv->can.termination =MCBA_TERMINATION_ENABLED ;else priv->can.termination =MCBA_TERMINATION_DISABLED ;
@@ -789,9 +793,9 @@ static int mcba_set_termination(struct net_device *netdev, u16 term) };if (term ==MCBA_TERMINATION_ENABLED ) - usb_msg.termination =1 ; + usb_msg.termination =MCBA_VER_TERMINATION_ON ;else - usb_msg.termination =0 ; + usb_msg.termination =MCBA_VER_TERMINATION_OFF ;mcba_usb_xmit_cmd (priv, (struct mcba_usb_msg *)&usb_msg);
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c +2 -1
@@ -874,7 +874,6 @@ area_cache_get(struct nfp_cpp *cpp, u32 id, }/* Adjust the start address to be cache size aligned */ - cache->id = id; cache->addr = addr & ~(u64)(cache->size -1 );/* Re-init to the new ID and address */
@@ -894,6 +893,8 @@ area_cache_get(struct nfp_cpp *cpp, u32 id,return NULL ; } + cache->id = id; + exit:/* Adjust offset */ *offset = addr - cache->addr;
drivers/nvme/host/pci.c +2 -0
@@ -817,6 +817,8 @@ static blk_status_t nvme_setup_prp_simple(struct nvme_dev *dev, cmnd->dptr.prp1 =cpu_to_le64 (iod->first_dma);if (bv->bv_len > first_prp_len) cmnd->dptr.prp2 =cpu_to_le64 (iod->first_dma + first_prp_len); +else + cmnd->dptr.prp2 =0 ;return BLK_STS_OK ; }
drivers/pinctrl/mediatek/mtk-eint.c +6 -3
@@ -278,12 +278,15 @@ static struct irq_chip mtk_eint_irq_chip = {static unsigned int mtk_eint_hw_init (struct mtk_eint *eint) { -void __iomem *reg = eint->base + eint->regs->dom_en; +void __iomem *dom_en = eint->base + eint->regs->dom_en; +void __iomem *mask_set = eint->base + eint->regs->mask_set;unsigned int i;for (i =0 ; i < eint->hw->ap_num; i +=32 ) { -writel (0xffffffff , reg); - reg +=4 ; +writel (0xffffffff , dom_en); +writel (0xffffffff , mask_set); + dom_en +=4 ; + mask_set +=4 ; }return 0 ;
fs/fuse/dir.c +1 -1
@@ -205,7 +205,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags)if (inode &&fuse_is_bad (inode)) goto invalid;else if (time_before64 (fuse_dentry_time (entry),get_jiffies_64 ()) || - (flags &LOOKUP_REVAL )) { + (flags & (LOOKUP_EXCL |LOOKUP_REVAL ))) {struct fuse_entry_out outarg;FUSE_ARGS (args);struct fuse_forget_link *forget;
fs/io_uring.c +1 -1
@@ -936,7 +936,7 @@ static const struct io_op_def io_op_defs[] = { .needs_file = 1, .hash_reg_file = 1, .unbound_nonreg_file = 1, - .work_flags = IO_WQ_WORK_BLKCG, + .work_flags = IO_WQ_WORK_BLKCG | IO_WQ_WORK_FILES, }, [IORING_OP_PROVIDE_BUFFERS] = {}, [IORING_OP_REMOVE_BUFFERS] = {},
fs/nfsd/vfs.c +7 -1
@@ -570,6 +570,7 @@ __be32 nfsd4_clone_file_range(struct nfsd_file *nf_src, u64 src_pos,ssize_t nfsd_copy_file_range (struct file *src,u64 src_pos,struct file *dst,u64 dst_pos,u64 count) { +ssize_t ret;/* * Limit copy to 4MB to prevent indefinitely blocking an nfsd
@@ -580,7 +581,12 @@ ssize_t nfsd_copy_file_range(struct file *src, u64 src_pos, struct file *dst,* limit like this and pipeline multiple COPY requests. */ count =min_t (u64, count,1 <<22 ); -return vfs_copy_file_range (src, src_pos, dst, dst_pos, count,0 ); + ret =vfs_copy_file_range (src, src_pos, dst, dst_pos, count,0 ); + +if (ret == -EOPNOTSUPP || ret == -EXDEV ) + ret =vfs_copy_file_range (src, src_pos, dst, dst_pos, count, +COPY_FILE_SPLICE ); +return ret; } __be32 nfsd4_vfs_fallocate(struct svc_rqst *rqstp, struct svc_fh *fhp,
fs/read_write.c +55 -35
129 lines not on this page · raw message
include/linux/can/platform/sja1000.h +1 -1
@@ -14,7 +14,7 @@#define OCR_MODE_TEST 0x01#define OCR_MODE_NORMAL 0x02#define OCR_MODE_CLOCK 0x03 -#define OCR_MODE_MASK 0x07 +#define OCR_MODE_MASK 0x03#define OCR_TX0_INVERT 0x04#define OCR_TX0_PULLDOWN 0x08#define OCR_TX0_PULLUP 0x10
include/linux/fs.h +8 -0
@@ -1817,6 +1817,14 @@ struct dir_context {*/ #define REMAP_FILE_ADVISORY (REMAP_FILE_CAN_SHORTEN) +/* +* These flags control the behavior of vfs_copy_file_range(). +* They are not available to the user via syscall. +* +* COPY_FILE_SPLICE: call splice direct instead of fs clone/copy ops +*/ +#define COPY_FILE_SPLICE (1 << 0) +struct iov_iter ;struct file_operations {
sound/soc/codecs/cs42l51.c +1 -1
@@ -146,7 +146,7 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = { 0, 0xA0, 96, adc_att_tlv),SOC_DOUBLE_R_SX_TLV ("PGA Volume" ,CS42L51_ALC_PGA_CTL ,CS42L51_ALC_PGB_CTL , -0 ,0x19 ,30 , pga_tlv), +0 ,0x1A ,30 , pga_tlv),SOC_SINGLE ("Playback Deemphasis Switch" ,CS42L51_DAC_CTL ,3 ,1 ,0 ),SOC_SINGLE ("Auto-Mute Switch" ,CS42L51_DAC_CTL ,2 ,1 ,0 ), SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0),
sound/soc/fsl/fsl_micfil.c +19 -0
@@ -190,6 +190,25 @@ static int fsl_micfil_reset(struct device *dev)return ret; } +/* +* SRES is self-cleared bit, but REG_MICFIL_CTRL1 is defined +* as non-volatile register, so SRES still remain in regmap +* cache after set, that every update of REG_MICFIL_CTRL1, +* software reset happens. so clear it explicitly. +*/ + ret =regmap_clear_bits (micfil->regmap,REG_MICFIL_CTRL1 , +MICFIL_CTRL1_SRES ); +if (ret) +return ret; + +/* +* Set SRES should clear CHnF flags, But even add delay here +* the CHnF may not be cleared sometimes, so clear CHnF explicitly. +*/ + ret =regmap_write_bits (micfil->regmap,REG_MICFIL_STAT ,0xFF ,0xFF ); +if (ret) +return ret; +return 0 ; }
sound/soc/soc-ops.c +8 -1
@@ -445,8 +445,15 @@ int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,return err;if (snd_soc_volsw_is_stereo (mc)) { + val2 = ucontrol->value.integer.value[1 ]; + +if (mc->platform_max && val2 > mc->platform_max) +return -EINVAL ; +if (val2 > max) +return -EINVAL ; + val_mask = mask << rshift; - val2 = (ucontrol->value.integer.value[1 ] + min) & mask; + val2 = (val2 + min) & mask; val2 = val2 << rshift; err = snd_soc_component_update_bits(component, reg2, val_mask,
tools/lib/bpf/libbpf_probes.c +1 -1
@@ -244,7 +244,7 @@ bool bpf_probe_map_type(enum bpf_map_type map_type, __u32 ifindex)case BPF_MAP_TYPE_RINGBUF : key_size =0 ; value_size =0 ; - max_entries =4096 ; + max_entries =sysconf (_SC_PAGE_SIZE);break ;case BPF_MAP_TYPE_UNSPEC :case BPF_MAP_TYPE_HASH :