Linux 5.14.8
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.14.8 kernel.
All users of the 5.14 kernel series must upgrade.
The updated 5.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.14.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
------------
Documentation/driver-api/cxl/memory-devices.rst | 2 Makefile | 2 arch/arm64/kernel/cacheinfo.c | 7 arch/arm64/mm/init.c | 16 arch/mips/kernel/cacheinfo.c | 7 arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts | 6 arch/riscv/kernel/cacheinfo.c | 7 arch/s390/include/asm/stacktrace.h | 20 arch/s390/include/asm/unwind.h | 8 arch/s390/kernel/entry.S | 4 arch/s390/kernel/setup.c | 10 arch/um/drivers/virtio_uml.c | 4 arch/um/kernel/skas/clone.c | 3 arch/x86/kernel/cpu/cacheinfo.c | 7 arch/x86/um/shared/sysdep/stub_32.h | 12 arch/x86/um/shared/sysdep/stub_64.h | 12 arch/x86/um/stub_segv.c | 3 block/blk-mq.c | 14 block/blk-throttle.c | 1 block/genhd.c | 9 drivers/acpi/x86/s2idle.c | 67 drivers/base/power/main.c | 2 drivers/block/n64cart.c | 4 drivers/cxl/Makefile | 4 drivers/cxl/core.c | 1067 ------------ drivers/cxl/core/Makefile | 5 drivers/cxl/core/bus.c | 1067 ++++++++++++ drivers/cxl/cxlmem.h | 96 + drivers/cxl/mem.h | 81 drivers/cxl/pci.c | 67 drivers/cxl/pmem.c | 2 drivers/dma-buf/Kconfig | 2 drivers/dma/Kconfig | 4 drivers/dma/acpi-dma.c | 10 drivers/dma/idxd/device.c | 98 - drivers/dma/idxd/idxd.h | 6 drivers/dma/idxd/irq.c | 16 drivers/dma/idxd/submit.c | 2 drivers/dma/idxd/sysfs.c | 22 drivers/dma/sprd-dma.c | 1 drivers/dma/xilinx/xilinx_dma.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 50 drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 11 drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c | 6 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 17 drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 2 drivers/gpu/drm/ttm/ttm_bo.c | 6 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 1 drivers/infiniband/hw/mlx5/mr.c | 2 drivers/iommu/amd/init.c | 31 drivers/iommu/intel/svm.c | 15 drivers/misc/habanalabs/common/command_buffer.c | 2 drivers/misc/habanalabs/common/debugfs.c | 2 drivers/misc/habanalabs/common/device.c | 3 drivers/misc/habanalabs/common/habanalabs.h | 2 drivers/misc/habanalabs/common/habanalabs_drv.c | 8 drivers/misc/habanalabs/common/memory.c | 2 drivers/misc/habanalabs/common/mmu/mmu_v1.c | 12 drivers/misc/habanalabs/common/sysfs.c | 20 drivers/misc/habanalabs/gaudi/gaudi.c | 6 drivers/misc/habanalabs/goya/goya.c | 6 drivers/nvme/target/configfs.c | 3 drivers/of/property.c | 3 drivers/parisc/dino.c | 18 drivers/pci/controller/pci-aardvark.c | 67 drivers/pci/pci-bridge-emul.h | 2 drivers/platform/chrome/Makefile | 2 drivers/platform/chrome/cros_ec_sensorhub_ring.c | 14 drivers/platform/chrome/cros_ec_trace.h | 94 + drivers/pwm/pwm-ab8500.c | 17 drivers/pwm/pwm-img.c | 16 drivers/pwm/pwm-lpc32xx.c | 10 drivers/pwm/pwm-mxs.c | 13 drivers/pwm/pwm-rockchip.c | 14 drivers/pwm/pwm-stm32-lp.c | 2 drivers/rtc/Kconfig | 1 drivers/staging/rtl8192u/r8192U_core.c | 2 drivers/staging/rtl8723bs/os_dep/ioctl_linux.c | 6 drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 6 drivers/thermal/rcar_gen3_thermal.c | 7 drivers/thermal/samsung/exynos_tmu.c | 1 drivers/tty/vt/vt.c | 31 fs/btrfs/ioctl.c | 15 fs/btrfs/volumes.c | 48 fs/btrfs/volumes.h | 3 fs/ceph/caps.c | 75 fs/ceph/file.c | 32 fs/ceph/mds_client.c | 32 fs/ceph/metric.c | 4 fs/ceph/super.h | 6 fs/cifs/smb2ops.c | 20 fs/coredump.c | 4 fs/io_uring.c | 2 fs/nilfs2/sysfs.c | 26 fs/nilfs2/the_nilfs.c | 9 include/linux/cacheinfo.h | 18 include/linux/thermal.h | 5 include/uapi/misc/habanalabs.h | 4 init/initramfs.c | 2 init/main.c | 1 init/noinitramfs.c | 2 kernel/profile.c | 21 kernel/sched/idle.c | 4 kernel/sys.c | 7 kernel/trace/trace_boot.c | 6 lib/Kconfig.debug | 4 net/9p/trans_virtio.c | 4 net/sunrpc/svc_xprt.c | 13 security/selinux/hooks.c | 4 security/smack/smack_lsm.c | 4 sound/soc/generic/audio-graph-card.c | 6 tools/bootconfig/scripts/ftrace2bconf.sh | 4 tools/perf/tests/bpf.c | 2 tools/perf/util/dso.c | 10 tools/perf/util/symbol.c | 20 115 files changed, 2117 insertions(+), 1612 deletions(-)
Anand Jain (1):
btrfs: fix lockdep warning while mounting sprout fs
Andy Shevchenko (1):
dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
Anson Jacob (1):
drm/amd/display: Fix memory leak reported by coverity
Ard Biesheuvel (1):
arm64: mm: limit linear region to 51 bits for KVM in nVHE mode
Arnd Bergmann (1):
thermal/core: Fix thermal_cooling_device_register() prototype
Ben Widawsky (1):
cxl: Move cxl_core to new directory
Cyrill Gorcunov (1):
prctl: allow to setup brk for et_dyn executables
Dan Carpenter (1):
thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
Dan Williams (1):
cxl/pci: Introduce cdevm_file_operations
Dave Jiang (5):
dmanegine: idxd: cleanup all device related bits after disabling device
dmaengine: idxd: have command status always set
dmaengine: idxd: fix wq slot allocation index check
dmaengine: idxd: fix abort status check
dmaengine: idxd: clear block on fault flag when clear wq
Enzo Matsumiya (1):
cifs: properly invalidate cached root handle when closing it
Fabio Aiuto (1):
staging: rtl8723bs: fix wpa_set_auth_algs() function
Fenghua Yu (2):
iommu/vt-d: Fix PASID leak in intel_svm_unbind_mm() iommu/vt-d: Fix a deadlock in intel_svm_drain_prq()
Geert Uytterhoeven (4):
math: RATIONAL_KUNIT_TEST should depend on RATIONAL instead of selecting it
dma-buf: DMABUF_MOVE_NOTIFY should depend on DMA_SHARED_BUFFER
dma-buf: DMABUF_DEBUG should depend on DMA_SHARED_BUFFER
riscv: dts: microchip: mpfs-icicle: Fix serial console
Greg Kroah-Hartman (1):
Linux 5.14.8
Guenter Roeck (2):
parisc: Move pci_dev_is_behind_card_dino to where it is used drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
Gwendal Grignou (2):
platform/chrome: sensorhub: Add trace events for sample platform/chrome: cros_ec_trace: Fix format warnings
Hannes Reinecke (1):
nvmet: fixup buffer overrun in nvmet_subsys_attr_serial()
Hao Xu (1):
io_uring: fix off-by-one in BUILD_BUG_ON check of __REQ_F_LAST_BIT
Heiko Carstens (1):
s390/entry: make oklabel within CHKSTG macro local
Jeff Layton (4):
ceph: cancel delayed work instead of flushing on mdsc teardown
ceph: fix memory leak on decode error in ceph_handle_caps
ceph: request Fw caps before updating the mtime in ceph_write_iter
ceph: lockdep annotations for try_nonblocking_invalidate
Johannes Berg (4):
um: fix stub location calculation
um: virtio_uml: fix memory leak on init failures
dmaengine: idxd: depends on !UML
dmaengine: ioat: depends on !UML
Josef Bacik (2):
btrfs: update the bdev time directly when closing
btrfs: delay blkdev_put until after the device remove
Koba Ko (1):
drm/amdgpu: Disable PCIE_DPM on Intel RKL Platform
Kuninori Morimoto (1):
ASoC: audio-graph: respawn Platform Support
Li Jinlin (1):
blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
Luben Tuikov (1):
drm/amdgpu: Fixes to returning VBIOS RAS EEPROM address
Lukas Bulwahn (1):
Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
Mario Limonciello (1):
ACPI: PM: s2idle: Run both AMD and Microsoft methods if both are supported
Masami Hiramatsu (2):
tools/bootconfig: Fix tracing_on option checking in ftrace2bconf.sh tracing/boot: Fix to loop on only subkeys
Matthias Kaehlcke (1):
thermal/drivers/qcom/spmi-adc-tm5: Don't abort probing if a sensor is not used
Michael Petlan (1):
perf test: Fix bpf test sample mismatch reporting
Namhyung Kim (1):
perf tools: Allow build-id with trailing zeros
Nanyong Sun (6):
nilfs2: fix memory leak in nilfs_sysfs_create_device_group
nilfs2: fix NULL pointer in nilfs_##name##_attr_release
nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
Nathan Chancellor (1):
staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb()
NeilBrown (1):
SUNRPC: don't pause on incomplete allocation
Niklas Schnelle (1):
RDMA/mlx5: Fix xlt_chunk_align calculation
Niklas Söderlund (1):
thermal/drivers/rcar_gen3_thermal: Store TSC id as unsigned int
Ofir Bitton (1):
habanalabs: add validity check for event ID received from F/W
Omer Shpigelman (1):
habanalabs: add "in device creation" status
Pali Rohár (2):
PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
PCI: aardvark: Fix reporting CRS value
Paul Moore (1):
selinux,smack: fix subjective/objective credential use mixups
Pavel Skripkin (1):
profiling: fix shift-out-of-bounds bugs
Philip Yang (1):
drm/amdgpu: fix fdinfo race with process exit
Prasad Sodagudi (1):
PM: sleep: core: Avoid setting power.must_resume to false
QiuXi (1):
coredump: fix memleak in dump_vma_snapshot()
Radhey Shyam Pandey (1):
dmaengine: xilinx_dma: Set DMA mask for coherent APIs
Rasmus Villemoes (1):
init: move usermodehelper_enable() to populate_rootfs()
Remi Bernon (1):
perf symbol: Look for ImageBase in PE file to compute .text offset
Saravana Kannan (1):
of: property: Disable fw_devlink DT support for X86
Sebastian Andrzej Siewior (1):
sched/idle: Make the idle timer expire in hard interrupt context
Song Liu (1):
blk-mq: allow 4x BLK_MAX_REQUEST_COUNT at blk_plug for multiple_queues
Sven Schnelle (1):
s390: add kmemleak annotation in stack_alloc()
Tetsuo Handa (1):
block: genhd: don't call blkdev_show() with major_names_lock held
Thomas Gleixner (1):
drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
Tomer Tayar (1):
habanalabs: fix nullifying of destroyed mmu pgt pool
Uwe Kleine-König (6):
pwm: ab8500: Fix register offset calculation to not depend on probe order
pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered
pwm: mxs: Don't modify HW state in .probe() after the PWM chip was registered
pwm: img: Don't modify HW state in .remove() callback
pwm: rockchip: Don't modify HW state in .remove() callback
pwm: stm32-lp: Don't modify HW state in .remove() callback
Vasily Gorbik (1):
s390/unwind: use current_frame_address() to unwind current task
Wei Huang (1):
iommu/amd: Relocate GAMSup check to early_enable_iommus
Xie Yongji (1):
9p/trans_virtio: Remove sysfs file on probe failure
Xiubo Li (1):
ceph: remove the capsnaps when removing caps
Yang Yingliang (1):
n64cart: fix return value check in n64cart_probe()
Yixing Liu (1):
RDMA/hns: Enable stash feature of HIP09
Yu-Tung Chang (1):
rtc: rx8010: select REGMAP_I2C
Yuri Nudelman (1):
habanalabs: fix mmu node address resolution in debugfs
Zhen Lei (1):
nilfs2: use refcount_dec_and_lock() to fix potential UAF
Zou Wei (1):
dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
farah kassabri (1):
habanalabs: cannot sleep while holding spinlock
nick black (1):
console: consume APC, DM, DCS
xinhui pan (1):
drm/ttm: Fix a deadlock if the target BO is not idle during swap
Greg Kroah-Hartman
maintainerDocumentation/driver-api/cxl/memory-devices.rst +1 -1
@@ -36,7 +36,7 @@ CXL Core .. kernel-doc:: drivers/cxl/cxl.h :internal: -.. kernel-doc:: drivers/cxl/core.c +.. kernel-doc:: drivers/cxl/core/bus.c :doc: cxl core External Interfaces
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 14 -SUBLEVEL = 7 +SUBLEVEL = 8 EXTRAVERSION = NAME = Opossums on Parade
arch/arm64/kernel/cacheinfo.c +2 -5
@@ -43,7 +43,7 @@ static void ci_leaf_init(struct cacheinfo *this_leaf, this_leaf->type = type; } -static int __init_cache_level (unsigned int cpu) +int init_cache_level (unsigned int cpu) {unsigned int ctype, level, leaves, fw_level;struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);
@@ -78,7 +78,7 @@ static int __init_cache_level(unsigned int cpu)return 0 ; } -static int __populate_cache_leaves (unsigned int cpu) +int populate_cache_leaves (unsigned int cpu) {unsigned int level, idx;enum cache_type type;
@@ -97,6 +97,3 @@ static int __populate_cache_leaves(unsigned int cpu) }return 0 ; } - -DEFINE_SMP_CALL_CACHE_FUNCTION (init_cache_level) -DEFINE_SMP_CALL_CACHE_FUNCTION (populate_cache_leaves)
arch/arm64/mm/init.c +15 -1
@@ -319,7 +319,21 @@ static void __init fdt_enforce_memory_region(void)void __init arm64_memblock_init (void ) { -const s64 linear_region_size =PAGE_END -_PAGE_OFFSET (vabits_actual); +s64 linear_region_size =PAGE_END -_PAGE_OFFSET (vabits_actual); + +/* +* Corner case: 52-bit VA capable systems running KVM in nVHE mode may +* be limited in their ability to support a linear map that exceeds 51 +* bits of VA space, depending on the placement of the ID map. Given +* that the placement of the ID map may be randomized, let's simply +* limit the kernel's linear map to 51 bits as well if we detect this +* configuration. +*/ +if (IS_ENABLED (CONFIG_KVM ) && vabits_actual ==52 && +is_hyp_mode_available () && !is_kernel_in_hyp_mode ()) { +pr_info ("Capping linear region to 51 bits for KVM in nVHE mode on LVA capable hardware.\n" ); + linear_region_size =min_t (u64, linear_region_size,BIT (51 )); + }/* Handle linux,usable-memory-range property */ fdt_enforce_memory_region ();
arch/mips/kernel/cacheinfo.c +2 -5
@@ -17,7 +17,7 @@ do { \ leaf++; \ }while (0 ) -static int __init_cache_level(unsigned int cpu) +int init_cache_level(unsigned int cpu) {struct cpuinfo_mips *c = ¤t_cpu_data;struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);
@@ -74,7 +74,7 @@ static void fill_cpumask_cluster(int cpu, cpumask_t *cpu_map)cpumask_set_cpu (cpu1, cpu_map); } -static int __populate_cache_leaves (unsigned int cpu) +int populate_cache_leaves (unsigned int cpu) {struct cpuinfo_mips *c = ¤t_cpu_data;struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);
@@ -114,6 +114,3 @@ static int __populate_cache_leaves(unsigned int cpu)return 0 ; } - -DEFINE_SMP_CALL_CACHE_FUNCTION (init_cache_level) -DEFINE_SMP_CALL_CACHE_FUNCTION (populate_cache_leaves)
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +5 -1
@@ -16,10 +16,14 @@ / { aliases { ethernet0 = &emac1; + serial0 = &serial0; + serial1 = &serial1; + serial2 = &serial2; + serial3 = &serial3; }; chosen { - stdout-path = &serial0; + stdout-path = "serial0:115200n8"; }; cpus {
arch/riscv/kernel/cacheinfo.c +2 -5
@@ -113,7 +113,7 @@ static void fill_cacheinfo(struct cacheinfo **this_leaf, } } -static int __init_cache_level (unsigned int cpu) +int init_cache_level (unsigned int cpu) {struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);struct device_node *np =of_cpu_device_node_get (cpu);
@@ -155,7 +155,7 @@ static int __init_cache_level(unsigned int cpu)return 0 ; } -static int __populate_cache_leaves (unsigned int cpu) +int populate_cache_leaves (unsigned int cpu) {struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);struct cacheinfo *this_leaf = this_cpu_ci->info_list;
@@ -187,6 +187,3 @@ static int __populate_cache_leaves(unsigned int cpu)return 0 ; } - -DEFINE_SMP_CALL_CACHE_FUNCTION (init_cache_level) -DEFINE_SMP_CALL_CACHE_FUNCTION (populate_cache_leaves)
arch/s390/include/asm/stacktrace.h +10 -10
@@ -34,16 +34,6 @@ static inline bool on_stack(struct stack_info *info,return addr >= info->begin && addr + len <= info->end; } -static __always_inline unsigned long get_stack_pointer (struct task_struct *task, -struct pt_regs *regs) -{ -if (regs) -return (unsigned long )kernel_stack_pointer (regs); -if (task == current) -return current_stack_pointer (); -return (unsigned long ) task->thread.ksp; -} -/* * Stack layout of a C stack frame. */
@@ -74,6 +64,16 @@ struct stack_frame { ((unsigned long )__builtin_frame_address (0 ) - \ offsetof(struct stack_frame, back_chain)) +static __always_inline unsigned long get_stack_pointer (struct task_struct *task, +struct pt_regs *regs) +{ +if (regs) +return (unsigned long )kernel_stack_pointer (regs); +if (task == current) +return current_frame_address (); +return (unsigned long )task->thread.ksp; +} +/* * To keep this simple mark register 2-6 as being changed (volatile) * by the called function, even though register 6 is saved/nonvolatile.
arch/s390/include/asm/unwind.h +4 -4
@@ -55,10 +55,10 @@ static inline bool unwind_error(struct unwind_state *state)return state->error; } -static inline void unwind_start (struct unwind_state *state, -struct task_struct *task, -struct pt_regs *regs, -unsigned long first_frame) +static __always_inline void unwind_start(struct unwind_state *state, +struct task_struct *task, +struct pt_regs *regs, +unsigned long first_frame) { task = task ?: current; first_frame = first_frame ?:get_stack_pointer (task, regs);
arch/s390/kernel/entry.S +2 -2
@@ -140,10 +140,10 @@ _LPP_OFFSET = __LC_LPP TSTMSK __LC_MCCK_CODE,(MCCK_CODE_STG_ERROR|MCCK_CODE_STG_KEY_ERROR) jnz \errlabel TSTMSK __LC_MCCK_CODE,MCCK_CODE_STG_DEGRAD - jz oklabel\@ + jz .Loklabel\@ TSTMSK __LC_MCCK_CODE,MCCK_CODE_STG_FAIL_ADDR jnz \errlabel -oklabel\@: +.Loklabel\@: .endm #if IS_ENABLED(CONFIG_KVM)
arch/s390/kernel/setup.c +7 -3
@@ -50,6 +50,7 @@#include <linux/compat.h> #include <linux/start_kernel.h> #include <linux/hugetlb.h> +#include <linux/kmemleak.h> #include <asm/boot_data.h> #include <asm/ipl.h>
@@ -312,9 +313,12 @@ void *restart_stack;unsigned long stack_alloc (void ) {#ifdef CONFIG_VMAP_STACK -return (unsigned long )__vmalloc_node (THREAD_SIZE ,THREAD_SIZE , -THREADINFO_GFP ,NUMA_NO_NODE , -__builtin_return_address (0 )); +void *ret; + + ret =__vmalloc_node (THREAD_SIZE ,THREAD_SIZE ,THREADINFO_GFP , +NUMA_NO_NODE ,__builtin_return_address (0 )); +kmemleak_not_leak (ret); +return (unsigned long )ret;#else return __get_free_pages (GFP_KERNEL ,THREAD_SIZE_ORDER );#endif
arch/um/drivers/virtio_uml.c +3 -1
@@ -1139,7 +1139,7 @@ static int virtio_uml_probe(struct platform_device *pdev) rc =os_connect_socket (pdata->socket_path); }while (rc == -EINTR );if (rc <0 ) -return rc; + goto error_free; vu_dev->sock = rc;spin_lock_init (&vu_dev->sock_lock);
@@ -1160,6 +1160,8 @@ static int virtio_uml_probe(struct platform_device *pdev) error_init:os_close_file (vu_dev->sock); +error_free: +kfree (vu_dev);return rc; }
arch/um/kernel/skas/clone.c +1 -2
@@ -24,8 +24,7 @@void __attribute__ ((__section__ (".__syscall_stub" )))stub_clone_handler (void ) { -int stack; -struct stub_data *data = (void *) ((unsigned long )&stack & ~(UM_KERN_PAGE_SIZE -1 )); +struct stub_data *data =get_stub_page ();long err; err = stub_syscall2(__NR_clone, CLONE_PARENT | CLONE_FILES | SIGCHLD,
arch/x86/kernel/cpu/cacheinfo.c +2 -5
@@ -985,7 +985,7 @@ static void ci_leaf_init(struct cacheinfo *this_leaf, this_leaf->priv = base->nb; } -static int __init_cache_level (unsigned int cpu) +int init_cache_level (unsigned int cpu) {struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);
@@ -1014,7 +1014,7 @@ static void get_cache_id(int cpu, struct _cpuid4_info_regs *id4_regs) id4_regs->id = c->apicid >> index_msb; } -static int __populate_cache_leaves (unsigned int cpu) +int populate_cache_leaves (unsigned int cpu) {unsigned int idx, ret;struct cpu_cacheinfo *this_cpu_ci =get_cpu_cacheinfo (cpu);
@@ -1033,6 +1033,3 @@ static int __populate_cache_leaves(unsigned int cpu)return 0 ; } - -DEFINE_SMP_CALL_CACHE_FUNCTION (init_cache_level) -DEFINE_SMP_CALL_CACHE_FUNCTION (populate_cache_leaves)
arch/x86/um/shared/sysdep/stub_32.h +12 -0
@@ -101,4 +101,16 @@ static inline void remap_stack_and_trap(void) "memory"); } +static __always_inline void *get_stub_page(void) +{ +unsigned long ret; + + asmvolatile ( +"movl %%esp,%0 ;" +"andl %1,%0" + :"=a" (ret) + :"g" (~(UM_KERN_PAGE_SIZE -1 ))); + +return (void *)ret; +}#endif
arch/x86/um/shared/sysdep/stub_64.h +12 -0
@@ -108,4 +108,16 @@ static inline void remap_stack_and_trap(void) __syscall_clobber, "r10", "r8", "r9"); } +static __always_inline void *get_stub_page(void) +{ +unsigned long ret; + + asmvolatile ( +"movq %%rsp,%0 ;" +"andq %1,%0" + :"=a" (ret) + :"g" (~(UM_KERN_PAGE_SIZE -1 ))); + +return (void *)ret; +}#endif
arch/x86/um/stub_segv.c +1 -2
@@ -11,9 +11,8 @@void __attribute__ ((__section__ (".__syscall_stub" )))stub_segv_handler (int sig,siginfo_t *info,void *p) { -int stack; +struct faultinfo *f =get_stub_page ();ucontext_t *uc = p; -struct faultinfo *f = (void *)(((unsigned long )&stack) & ~(UM_KERN_PAGE_SIZE -1 ));GET_FAULTINFO_FROM_MC (*f, &uc->uc_mcontext);trap_myself ();
block/blk-mq.c +13 -1
@@ -2135,6 +2135,18 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) } } +/* +* Allow 4x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple +* queues. This is important for md arrays to benefit from merging +* requests. +*/ +static inline unsigned short blk_plug_max_rq_count (struct blk_plug *plug) +{ +if (plug->multiple_queues) +return BLK_MAX_REQUEST_COUNT *4 ; +return BLK_MAX_REQUEST_COUNT ; +} +/** * blk_mq_submit_bio - Create and send a request to block device. * @bio: Bio pointer.
@@ -2231,7 +2243,7 @@ blk_qc_t blk_mq_submit_bio(struct bio *bio)else last =list_entry_rq (plug->mq_list.prev); -if (request_count >=BLK_MAX_REQUEST_COUNT || (last && +if (request_count >=blk_plug_max_rq_count (plug) || (last &&blk_rq_bytes (last) >=BLK_PLUG_FLUSH_SIZE )) {blk_flush_plug_list (plug, false);trace_block_plug (q);
block/blk-throttle.c +1 -0
@@ -2458,6 +2458,7 @@ int blk_throtl_init(struct request_queue *q)void blk_throtl_exit (struct request_queue *q) {BUG_ON (!q->td); +del_timer_sync (&q->td->service_queue.pending_timer);throtl_shutdown_wq (q);blkcg_deactivate_policy (q, &blkcg_policy_throtl);free_percpu (q->td->latency_buckets[READ ]);
block/genhd.c +7 -2
@@ -164,6 +164,7 @@ static struct blk_major_name {void (*probe)(dev_t devt); } *major_names[BLKDEV_MAJOR_HASH_SIZE ];static DEFINE_MUTEX (major_names_lock); +static DEFINE_SPINLOCK (major_names_spinlock);/* index in the above - for now: assume no multimajor ranges */ static inline int major_to_index (unsigned major)
@@ -176,11 +177,11 @@ void blkdev_show(struct seq_file *seqf, off_t offset) {struct blk_major_name *dp; -mutex_lock (&major_names_lock); +spin_lock (&major_names_spinlock);for (dp = major_names[major_to_index (offset)]; dp; dp = dp->next)if (dp->major == offset)seq_printf (seqf,"%3d %s\n" , dp->major, dp->name); -mutex_unlock (&major_names_lock); +spin_unlock (&major_names_spinlock); }#endif /* CONFIG_PROC_FS */
@@ -252,6 +253,7 @@ int __register_blkdev(unsigned int major, const char *name, p->next =NULL ; index =major_to_index (major); +spin_lock (&major_names_spinlock);for (n = &major_names[index]; *n; n = &(*n)->next) {if ((*n)->major == major)break ;
@@ -260,6 +262,7 @@ int __register_blkdev(unsigned int major, const char *name, *n = p; else ret = -EBUSY ; +spin_unlock (&major_names_spinlock);if (ret <0 ) { printk("register_blkdev: cannot get major %u for %s\n",
@@ -279,6 +282,7 @@ void unregister_blkdev(unsigned int major, const char *name)int index =major_to_index (major);mutex_lock (&major_names_lock); +spin_lock (&major_names_spinlock);for (n = &major_names[index]; *n; n = &(*n)->next)if ((*n)->major == major)break ;
@@ -288,6 +292,7 @@ void unregister_blkdev(unsigned int major, const char *name) p = *n; *n = p->next; } +spin_unlock (&major_names_spinlock);mutex_unlock (&major_names_lock);kfree (p); }
drivers/acpi/x86/s2idle.c +39 -28
88 lines not on this page · raw message
drivers/base/power/main.c +1 -1
@@ -1642,7 +1642,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async) } dev->power.may_skip_resume = true; - dev->power.must_resume = false; + dev->power.must_resume = !dev_pm_test_driver_flags (dev,DPM_FLAG_MAY_SKIP_RESUME );dpm_watchdog_set (&wd, dev);device_lock (dev);
drivers/block/n64cart.c +2 -2
@@ -129,8 +129,8 @@ static int __init n64cart_probe(struct platform_device *pdev) } reg_base =devm_platform_ioremap_resource (pdev,0 ); -if (!reg_base) -return -EINVAL ; +if (IS_ERR (reg_base)) +return PTR_ERR (reg_base); disk =blk_alloc_disk (NUMA_NO_NODE );if (!disk)
drivers/cxl/Makefile +1 -3
@@ -1,11 +1,9 @@ # SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_CXL_BUS) += cxl_core.o +obj-$(CONFIG_CXL_BUS) += core/ obj-$(CONFIG_CXL_MEM) += cxl_pci.o obj-$(CONFIG_CXL_ACPI) += cxl_acpi.o obj-$(CONFIG_CXL_PMEM) += cxl_pmem.o -ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=CXL -cxl_core-y := core.o cxl_pci-y := pci.o cxl_acpi-y := acpi.o cxl_pmem-y := pmem.o
drivers/cxl/core.c deleted +0 -1067
1,067 lines not on this page · raw message
drivers/cxl/core/Makefile new file +5 -0
@@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_CXL_BUS) += cxl_core.o + +ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=CXL -I$(srctree)/drivers/cxl +cxl_core-y := bus.o
drivers/cxl/core/bus.c new file +1067 -0
1,067 lines not on this page · raw message
drivers/cxl/cxlmem.h new file +96 -0
96 lines not on this page · raw message
drivers/cxl/mem.h deleted +0 -81
81 lines not on this page · raw message
drivers/cxl/pci.c +39 -28
132 lines not on this page · raw message
drivers/cxl/pmem.c +1 -1
@@ -6,7 +6,7 @@#include <linux/ndctl.h> #include <linux/async.h> #include <linux/slab.h> -#include "mem.h" +#include "cxlmem.h" #include "cxl.h" /*
drivers/dma-buf/Kconfig +2 -0
@@ -42,6 +42,7 @@ config UDMABUF config DMABUF_MOVE_NOTIFY bool "Move notify between drivers (EXPERIMENTAL)" default n + depends on DMA_SHARED_BUFFER help Don't pin buffers if the dynamic DMA-buf interface is available on both the exporter as well as the importer. This fixes a security
@@ -52,6 +53,7 @@ config DMABUF_MOVE_NOTIFY config DMABUF_DEBUG bool "DMA-BUF debug checks" + depends on DMA_SHARED_BUFFER default y if DMA_API_DEBUG help This option enables additional checks for DMA-BUF importers and
drivers/dma/Kconfig +2 -2
@@ -279,7 +279,7 @@ config INTEL_IDMA64 config INTEL_IDXD tristate "Intel Data Accelerators support" - depends on PCI && X86_64 + depends on PCI && X86_64 && !UML depends on PCI_MSI depends on SBITMAP select DMA_ENGINE
@@ -315,7 +315,7 @@ config INTEL_IDXD_PERFMON config INTEL_IOATDMA tristate "Intel I/OAT DMA support" - depends on PCI && X86_64 + depends on PCI && X86_64 && !UML select DMA_ENGINE select DMA_ENGINE_RAID select DCA
drivers/dma/acpi-dma.c +7 -3
@@ -70,10 +70,14 @@ static int acpi_dma_parse_resource_group(const struct acpi_csrt_group *grp, si = (const struct acpi_csrt_shared_info *)&grp[1 ]; -/* Match device by MMIO and IRQ */ +/* Match device by MMIO */ if (si->mmio_base_low !=lower_32_bits (mem) || - si->mmio_base_high !=upper_32_bits (mem) || - si->gsi_interrupt != irq) + si->mmio_base_high !=upper_32_bits (mem)) +return 0 ; + +/* Match device by Linux vIRQ */ + ret =acpi_register_gsi (NULL , si->gsi_interrupt, si->interrupt_mode, si->interrupt_polarity); +if (ret != irq)return 0 ; dev_dbg(&adev->dev, "matches with %.4s%04X (rev %u)\n",
drivers/dma/idxd/device.c +71 -27
10 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +33 -17
50 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +16 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/command_buffer.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/debugfs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/device.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/habanalabs.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/habanalabs_drv.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/memory.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/mmu/mmu_v1.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/common/sysfs.c +7 -13
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pci-aardvark.c +63 -4
67 lines not on this page · raw message
drivers/platform/chrome/cros_ec_sensorhub_ring.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/platform/chrome/cros_ec_trace.h +94 -0
94 lines not on this page · raw message
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/thermal/qcom/qcom-spmi-adc-tm5.c +6 -0
Lines of this file are not shown. View the raw message.
fs/btrfs/volumes.c +31 -17
48 lines not on this page · raw message
fs/ceph/caps.c +56 -19
75 lines not on this page · raw message
tools/bootconfig/scripts/ftrace2bconf.sh +2 -2
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.