The following patches are for OpenHarmony 5.10 kernel. These patches refer to some bugfixes (ext4/sched/mm, etc) and 2 major features (arm kasan and kaslr with dependent patches). ------------------------------------------------------------- Ard Biesheuvel (33): ARM: 9028/1: disable KASAN in call stack capturing routines ARM: module: add support for place relative relocations ARM: p2v: move patching code to separate assembler source file ARM: p2v: factor out shared loop processing ARM: p2v: factor out BE8 handling ARM: p2v: drop redundant 'type' argument from __pv_stub ARM: p2v: use relative references in patch site arrays ARM: p2v: simplify __fixup_pv_table() ARM: p2v: switch to MOVW for Thumb2 and ARM/LPAE ARM: p2v: reduce p2v alignment requirement to 2 MiB ARM: head-common.S: use PC-relative insn sequence for __proc_info ARM: head-common.S: use PC-relative insn sequence for idmap creation ARM: head.S: use PC-relative insn sequence for secondary_data ARM: kernel: use relative references for UP/SMP alternatives ARM: head: use PC-relative insn sequence for __smp_alt ARM: sleep.S: use PC-relative insn sequence for sleep_save_sp/mpidr_hash ARM: head.S: use PC relative insn sequence to calculate PHYS_OFFSET ARM: kvm: replace open coded VA->PA calculations with adr_l call ARM: 9031/1: hyp-stub: remove unused .L__boot_cpu_mode_offset symbol asm-generic: add .data.rel.ro sections to __ro_after_init arm-soc: exynos: replace open coded VA->PA conversions arm-soc: mvebu: replace open coded VA->PA conversion arm-soc: various: replace open coded VA->PA calculation of pen_release ARM: kernel: switch to relative exception tables ARM: kernel: make vmlinux buildable as a PIE executable ARM: kernel: use PC-relative symbol references in MMU switch code ARM: kernel: use PC relative symbol references in suspend/resume code ARM: mm: export default vmalloc base address ARM: kernel: refer to swapper_pg_dir via its symbol arm: vectors: use local symbol names for vector entry points ARM: kernel: implement randomization of the kernel load address ARM: decompressor: explicitly map decompressor binary cacheable ARM: decompressor: add KASLR support Arnd Bergmann (1): ARM: kprobes: fix gcc-7 build warning Chen Jun (1): rockchip: Make cdn_dp_resume depend on CONFIG_PM_SLEEP Cheng Jian (1): sched, rt: fix isolated CPUs leaving task_group indefinitely throttled Cui GaoSheng (6): arm32: kaslr: Add missing sections about relocatable arm32: kaslr: Fix the bug of module install failure arm32: kaslr: Fix the bug of hidden symbols when decompressing code is compiled arm32: kaslr: Adapt dts files of multiple memory nodes arm32: kaslr: Fix the bug of symbols relocation arm32: kaslr: Print the real kaslr offset when kernel panic Fangrui Song (1): ARM: 9022/1: Change arch/arm/lib/mem*.S to use WEAK instead of .weak Gaosheng Cui (2): arm32: kaslr: Bugfix of fiq when enabled kaslr arm32: kaslr: Bugfix of BSS size calculation when enabled kaslr Gu Zheng (1): mtd: avoid blktrans_open/release race and avoid insmod ftl.ko deadlock Jan Kara (13): ext4: remove redundant sb checksum recomputation ext4: standardize error message in ext4_protect_reserved_inode() ext4: make ext4_abort() use __ext4_error() ext4: move functions in super.c ext4: simplify ext4 error translation ext4: defer saving error info from atomic context ext4: combine ext4_handle_error() and save_error_info() ext4: drop sync argument of ext4_commit_super() ext4: protect superblock modifications with a buffer lock ext4: save error info to sb through journal if available ext4: use sbi instead of EXT4_SB(sb) in ext4_update_super() ext4: drop ext4_handle_dirty_super() ext4: fix timer use-after-free on failed mount Jens Axboe (1): io_uring: convert io_buffer_idr to XArray JeongHyeon Lee (1): dm verity: allow only one error handling mode Kefeng Wang (2): mm, page_alloc: avoid page_to_pfn() in move_freepages() mm: Move HOLES_IN_ZONE into mm Li Bin (1): sched/deadline.c: pick and check task if double_lock_balance() unlock the rq Linus Walleij (5): ARM: 9013/2: Disable KASan instrumentation for some code ARM: 9014/2: Replace string mem* functions for KASan ARM: 9015/2: Define the virtual space of KASan's shadow region ARM: 9016/2: Initialize the mapping of KASan shadow memory ARM: 9017/2: Enable KASan for ARM Liu Shixin (1): mm/page_alloc: fix counting of managed_pages Lorenzo Stoakes (1): mm: page_alloc: refactor setup_per_zone_lowmem_reserve() Lu Jialin (1): cgroup: Return ERSCH when add Z process into task Matthew Wilcox (Oracle) (1): io_uring: Convert personality_idr to XArray Mauricio Faria de Oliveira (1): loop: fix I/O error on fsync() in detached loop devices Oscar Salvador (1): mm,hwpoison: return -EBUSY when migration fails Xie XiuQi (1): Document: add guideline to submitting patches to OpenHarmony kernel Xiongfeng Wang (3): PCI: add a member in 'struct pci_bus' to record the original 'pci_ops' PCI/AER: increments pci bus reference count in aer-inject process sysrq: avoid concurrently info printing by 'sysrq-trigger' Yang Jihong (1): arm_pmu: Fix write counter error in ARMv7 big-endian mode Yang Yingliang (1): drm/radeon: check the alloc_workqueue return value Ye Bin (6): arm32: kaslr: Add missing sections about relocatable arm: kaslr: Fix memtop calculate, when there is no memory top info, we can't use zero instead it. arm32: kaslr: When boot with vxboot, we must adjust dtb address before kaslr_early_init, and store dtb address after init. arm32: kaslr: pop visibility when compile decompress boot code as we need relocate BSS by GOT. arm32: kaslr: print kaslr offset when kernel panic arm32: kaslr: Fix clock_gettime and gettimeofday performance degradation when configure CONFIG_RANDOMIZE_BASE Yejune Deng (1): io_uring: simplify io_remove_personalities() Zefan Li (2): cgroup: check if cgroup root is alive in cgroupstats_show() cgroup: wait for cgroup destruction to complete when umount Zhou Chengming (1): sched/rt.c: pick and check task if double_lock_balance() unlock the rq liujian (1): driver: input: fix UBSAN warning in input_defuzz_abs_event yangerkun (1): proc: fix ubsan warning in mem_lseek zhangyi (F) (1): aio: add timeout validity check for io_[p]getevents Documentation/arm/memory.rst | 5 + Documentation/dev-tools/kasan.rst | 4 +- .../features/debug/KASAN/arch-support.txt | 2 +- README | 252 +++++++++ arch/arm/Kconfig | 29 +- arch/arm/Makefile | 6 + arch/arm/boot/compressed/Makefile | 19 +- arch/arm/boot/compressed/head.S | 154 +++++- arch/arm/boot/compressed/kaslr.c | 453 ++++++++++++++++ arch/arm/boot/compressed/misc.c | 1 - arch/arm/boot/compressed/string.c | 19 + arch/arm/include/asm/Kbuild | 1 - arch/arm/include/asm/assembler.h | 22 +- arch/arm/include/asm/elf.h | 5 + arch/arm/include/asm/extable.h | 47 ++ arch/arm/include/asm/futex.h | 6 +- arch/arm/include/asm/kasan.h | 33 ++ arch/arm/include/asm/kasan_def.h | 81 +++ arch/arm/include/asm/memory.h | 76 ++- arch/arm/include/asm/pgalloc.h | 8 +- arch/arm/include/asm/pgtable.h | 1 + arch/arm/include/asm/processor.h | 2 +- arch/arm/include/asm/string.h | 26 + arch/arm/include/asm/thread_info.h | 8 + arch/arm/include/asm/uaccess-asm.h | 2 +- arch/arm/include/asm/uaccess.h | 17 +- arch/arm/include/asm/vmlinux.lds.h | 13 +- arch/arm/include/asm/word-at-a-time.h | 6 +- arch/arm/kernel/Makefile | 4 + arch/arm/kernel/entry-armv.S | 44 +- arch/arm/kernel/entry-common.S | 9 +- arch/arm/kernel/fiq.c | 7 + arch/arm/kernel/head-common.S | 88 +--- arch/arm/kernel/head.S | 308 ++++------- arch/arm/kernel/hyp-stub.S | 33 +- arch/arm/kernel/module.c | 20 +- arch/arm/kernel/perf_event_v7.c | 4 +- arch/arm/kernel/phys2virt.S | 238 +++++++++ arch/arm/kernel/setup.c | 32 ++ arch/arm/kernel/sleep.S | 26 +- arch/arm/kernel/swp_emulate.c | 8 +- arch/arm/kernel/unwind.c | 6 +- arch/arm/kernel/vmlinux.lds.S | 19 + arch/arm/lib/backtrace.S | 13 +- arch/arm/lib/getuser.S | 24 +- arch/arm/lib/memcpy.S | 4 +- arch/arm/lib/memmove.S | 6 +- arch/arm/lib/memset.S | 4 +- arch/arm/lib/putuser.S | 15 +- arch/arm/mach-exynos/headsmp.S | 9 +- arch/arm/mach-exynos/sleep.S | 26 +- arch/arm/mach-mvebu/coherency_ll.S | 8 +- arch/arm/mach-prima2/headsmp.S | 11 +- arch/arm/mach-spear/headsmp.S | 11 +- arch/arm/mm/Makefile | 5 + arch/arm/mm/alignment.c | 24 +- arch/arm/mm/extable.c | 2 +- arch/arm/mm/kasan_init.c | 291 +++++++++++ arch/arm/mm/mmu.c | 21 +- arch/arm/mm/pgd.c | 16 +- arch/arm/nwfpe/entry.S | 6 +- arch/arm/plat-versatile/headsmp.S | 9 +- arch/arm/probes/kprobes/Makefile | 4 + arch/arm/vdso/Makefile | 2 + arch/arm/vdso/vgettimeofday.c | 5 + arch/arm64/Kconfig | 4 +- arch/ia64/Kconfig | 5 +- arch/mips/Kconfig | 3 - drivers/block/loop.c | 3 + drivers/gpu/drm/radeon/radeon_display.c | 7 +- drivers/gpu/drm/rockchip/cdn-dp-core.c | 2 + drivers/input/input.c | 13 +- drivers/md/dm-verity-target.c | 40 +- drivers/mtd/mtd_blkdevs.c | 31 +- drivers/mtd/mtdcore.c | 75 ++- drivers/mtd/mtdcore.h | 4 +- drivers/pci/bus.c | 2 + drivers/pci/pcie/aer_inject.c | 9 + drivers/pci/probe.c | 12 +- drivers/tty/sysrq.c | 6 + fs/aio.c | 11 +- fs/ext4/block_validity.c | 10 +- fs/ext4/ext4.h | 50 +- fs/ext4/ext4_jbd2.c | 21 +- fs/ext4/ext4_jbd2.h | 5 - fs/ext4/file.c | 5 +- fs/ext4/inode.c | 8 +- fs/ext4/namei.c | 10 +- fs/ext4/resize.c | 20 +- fs/ext4/super.c | 482 ++++++++++-------- fs/ext4/xattr.c | 5 +- fs/io_uring.c | 116 ++--- fs/proc/base.c | 32 +- fs/read_write.c | 5 - include/asm-generic/vmlinux.lds.h | 2 +- include/linux/cgroup-defs.h | 3 + include/linux/fs.h | 5 + include/linux/pci.h | 1 + kernel/cgroup/cgroup-v1.c | 8 +- kernel/cgroup/cgroup.c | 24 +- kernel/sched/deadline.c | 55 +- kernel/sched/rt.c | 66 ++- mm/Kconfig | 3 + mm/memory-failure.c | 6 +- mm/page_alloc.c | 61 +-- scripts/module.lds.S | 1 + scripts/sorttable.c | 2 +- 107 files changed, 2814 insertions(+), 1079 deletions(-) create mode 100644 arch/arm/boot/compressed/kaslr.c create mode 100644 arch/arm/include/asm/extable.h create mode 100644 arch/arm/include/asm/kasan.h create mode 100644 arch/arm/include/asm/kasan_def.h create mode 100644 arch/arm/kernel/phys2virt.S create mode 100644 arch/arm/mm/kasan_init.c -- 2.22.0