1. 30 Apr, 2021 2 commits
    • Mark Rutland's avatar
      arm64: stacktrace: restore terminal records · 8533d5bf
      Mark Rutland authored
      We removed the terminal frame records in commit:
      
         6106e111 ("arm64: remove EL0 exception frame record")
      
      ... on the assumption that as we no longer used them to find the pt_regs
      at exception boundaries, they were no longer necessary.
      
      However, Leo reports that as an unintended side-effect, this causes
      traces which cross secondary_start_kernel to terminate one entry too
      late, with a spurious "0" entry.
      
      There are a few ways we could sovle this, but as we're planning to use
      terminal records for RELIABLE_STACKTRACE, let's revert the logic change
      for now, keeping the update comments and accounting for the changes in
      commit:
      
        3c026001 ("arm64: stacktrace: Report when we reach the end of the stack")
      
      This is effectively a partial revert of commit:
      
        6106e111 ("arm64: remove EL0 exception frame record")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Fixes: 6106e111 ("arm64: remove EL0 exception frame record")
      Reported-by: default avatarLeo Yan <leo.yan@linaro.org>
      Tested-by: default avatarLeo Yan <leo.yan@linaro.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: "Madhavan T. Venkataraman" <madvenka@linux.microsoft.com>
      Link: https://lore.kernel.org/r/20210429104813.GA33550@C02TD0UTHF1T.localSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      8533d5bf
    • Bill Wendling's avatar
      arm64/vdso: Discard .note.gnu.property sections in vDSO · 38870802
      Bill Wendling authored
      The arm64 assembler in binutils 2.32 and above generates a program
      property note in a note section, .note.gnu.property, to encode used x86
      ISAs and features. But the kernel linker script only contains a single
      NOTE segment:
      
        PHDRS
        {
          text    PT_LOAD    FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
          dynamic PT_DYNAMIC FLAGS(4);               /* PF_R */
          note    PT_NOTE    FLAGS(4);               /* PF_R */
        }
      
      The NOTE segment generated by the vDSO linker script is aligned to 4 bytes.
      But the .note.gnu.property section must be aligned to 8 bytes on arm64.
      
        $ readelf -n vdso64.so
      
        Displaying notes found in: .note
          Owner                Data size      Description
          Linux                0x00000004     Unknown note type: (0x00000000)
           description data: 06 00 00 00
        readelf: Warning: note with invalid namesz and/or descsz found at offset 0x20
        readelf: Warning:  type: 0x78, namesize: 0x00000100, descsize: 0x756e694c, alignment: 8
      
      Since the note.gnu.property section in the vDSO is not checked by the
      dynamic linker, discard the .note.gnu.property sections in the vDSO.
      
      Similar to commit 4caffe6a ("x86/vdso: Discard .note.gnu.property
      sections in vDSO"), but for arm64.
      Signed-off-by: default avatarBill Wendling <morbo@google.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Link: https://lore.kernel.org/r/20210423205159.830854-1-morbo@google.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      38870802
  2. 29 Apr, 2021 2 commits
  3. 23 Apr, 2021 7 commits
  4. 15 Apr, 2021 4 commits
    • Catalin Marinas's avatar
      Merge branch 'for-next/pac-set-get-enabled-keys' into for-next/core · a27a8816
      Catalin Marinas authored
      * for-next/pac-set-get-enabled-keys:
        : Introduce arm64 prctl(PR_PAC_{SET,GET}_ENABLED_KEYS).
        arm64: pac: Optimize kernel entry/exit key installation code paths
        arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS)
        arm64: mte: make the per-task SCTLR_EL1 field usable elsewhere
      a27a8816
    • Catalin Marinas's avatar
      Merge branch 'for-next/mte-async-kernel-mode' into for-next/core · 604df13d
      Catalin Marinas authored
      * for-next/mte-async-kernel-mode:
        : Add MTE asynchronous kernel mode support
        kasan, arm64: tests supports for HW_TAGS async mode
        arm64: mte: Report async tag faults before suspend
        arm64: mte: Enable async tag check fault
        arm64: mte: Conditionally compile mte_enable_kernel_*()
        arm64: mte: Enable TCO in functions that can read beyond buffer limits
        kasan: Add report for async mode
        arm64: mte: Drop arch_enable_tagging()
        kasan: Add KASAN mode kernel parameter
        arm64: mte: Add asynchronous mode support
      604df13d
    • Catalin Marinas's avatar
      Merge branches 'for-next/misc', 'for-next/kselftest', 'for-next/xntable',... · a1e1edde
      Catalin Marinas authored
      Merge branches 'for-next/misc', 'for-next/kselftest', 'for-next/xntable', 'for-next/vdso', 'for-next/fiq', 'for-next/epan', 'for-next/kasan-vmalloc', 'for-next/fgt-boot-init', 'for-next/vhe-only' and 'for-next/neon-softirqs-disabled', remote-tracking branch 'arm64/for-next/perf' into for-next/core
      
      * for-next/misc:
        : Miscellaneous patches
        arm64/sve: Add compile time checks for SVE hooks in generic functions
        arm64/kernel/probes: Use BUG_ON instead of if condition followed by BUG.
        arm64/sve: Remove redundant system_supports_sve() tests
        arm64: mte: Remove unused mte_assign_mem_tag_range()
        arm64: Add __init section marker to some functions
        arm64/sve: Rework SVE access trap to convert state in registers
        docs: arm64: Fix a grammar error
        arm64: smp: Add missing prototype for some smp.c functions
        arm64: setup: name `tcr` register
        arm64: setup: name `mair` register
        arm64: stacktrace: Move start_backtrace() out of the header
        arm64: barrier: Remove spec_bar() macro
        arm64: entry: remove test_irqs_unmasked macro
        ARM64: enable GENERIC_FIND_FIRST_BIT
        arm64: defconfig: Use DEBUG_INFO_REDUCED
      
      * for-next/kselftest:
        : Various kselftests for arm64
        kselftest: arm64: Add BTI tests
        kselftest/arm64: mte: Report filename on failing temp file creation
        kselftest/arm64: mte: Fix clang warning
        kselftest/arm64: mte: Makefile: Fix clang compilation
        kselftest/arm64: mte: Output warning about failing compiler
        kselftest/arm64: mte: Use cross-compiler if specified
        kselftest/arm64: mte: Fix MTE feature detection
        kselftest/arm64: mte: common: Fix write() warnings
        kselftest/arm64: mte: user_mem: Fix write() warning
        kselftest/arm64: mte: ksm_options: Fix fscanf warning
        kselftest/arm64: mte: Fix pthread linking
        kselftest/arm64: mte: Fix compilation with native compiler
      
      * for-next/xntable:
        : Add hierarchical XN permissions for all page tables
        arm64: mm: use XN table mapping attributes for user/kernel mappings
        arm64: mm: use XN table mapping attributes for the linear region
        arm64: mm: add missing P4D definitions and use them consistently
      
      * for-next/vdso:
        : Minor improvements to the compat vdso and sigpage
        arm64: compat: Poison the compat sigpage
        arm64: vdso: Avoid ISB after reading from cntvct_el0
        arm64: compat: Allow signal page to be remapped
        arm64: vdso: Remove redundant calls to flush_dcache_page()
        arm64: vdso: Use GFP_KERNEL for allocating compat vdso and signal pages
      
      * for-next/fiq:
        : Support arm64 FIQ controller registration
        arm64: irq: allow FIQs to be handled
        arm64: Always keep DAIF.[IF] in sync
        arm64: entry: factor irq triage logic into macros
        arm64: irq: rework root IRQ handler registration
        arm64: don't use GENERIC_IRQ_MULTI_HANDLER
        genirq: Allow architectures to override set_handle_irq() fallback
      
      * for-next/epan:
        : Support for Enhanced PAN (execute-only permissions)
        arm64: Support execute-only permissions with Enhanced PAN
      
      * for-next/kasan-vmalloc:
        : Support CONFIG_KASAN_VMALLOC on arm64
        arm64: Kconfig: select KASAN_VMALLOC if KANSAN_GENERIC is enabled
        arm64: kaslr: support randomized module area with KASAN_VMALLOC
        arm64: Kconfig: support CONFIG_KASAN_VMALLOC
        arm64: kasan: abstract _text and _end to KERNEL_START/END
        arm64: kasan: don't populate vmalloc area for CONFIG_KASAN_VMALLOC
      
      * for-next/fgt-boot-init:
        : Booting clarifications and fine grained traps setup
        arm64: Require that system registers at all visible ELs be initialized
        arm64: Disable fine grained traps on boot
        arm64: Document requirements for fine grained traps at boot
      
      * for-next/vhe-only:
        : Dealing with VHE-only CPUs (a.k.a. M1)
        arm64: Get rid of CONFIG_ARM64_VHE
        arm64: Cope with CPUs stuck in VHE mode
        arm64: cpufeature: Allow early filtering of feature override
      
      * arm64/for-next/perf:
        arm64: perf: Remove redundant initialization in perf_event.c
        perf/arm_pmu_platform: Clean up with dev_printk
        perf/arm_pmu_platform: Fix error handling
        perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors
        docs: perf: Address some html build warnings
        docs: perf: Add new description on HiSilicon uncore PMU v2
        drivers/perf: hisi: Add support for HiSilicon PA PMU driver
        drivers/perf: hisi: Add support for HiSilicon SLLC PMU driver
        drivers/perf: hisi: Update DDRC PMU for programmable counter
        drivers/perf: hisi: Add new functions for HHA PMU
        drivers/perf: hisi: Add new functions for L3C PMU
        drivers/perf: hisi: Add PMU version for uncore PMU drivers.
        drivers/perf: hisi: Refactor code for more uncore PMUs
        drivers/perf: hisi: Remove unnecessary check of counter index
        drivers/perf: Simplify the SMMUv3 PMU event attributes
        drivers/perf: convert sysfs sprintf family to sysfs_emit
        drivers/perf: convert sysfs scnprintf family to sysfs_emit_at() and sysfs_emit()
        drivers/perf: convert sysfs snprintf family to sysfs_emit
      
      * for-next/neon-softirqs-disabled:
        : Run kernel mode SIMD with softirqs disabled
        arm64: fpsimd: run kernel mode NEON with softirqs disabled
        arm64: assembler: introduce wxN aliases for wN registers
        arm64: assembler: remove conditional NEON yield macros
      a1e1edde
    • Mark Brown's avatar
      arm64/sve: Add compile time checks for SVE hooks in generic functions · 087dfa5c
      Mark Brown authored
      The FPSIMD code was relying on IS_ENABLED() checks in system_suppors_sve()
      to cause the compiler to delete references to SVE functions in some places,
      add explicit IS_ENABLED() checks back.
      
      Fixes: ef9c5d09 ("arm64/sve: Remove redundant system_supports_sve() tests")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210415121742.36628-1-broonie@kernel.orgSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      087dfa5c
  5. 13 Apr, 2021 5 commits
  6. 12 Apr, 2021 3 commits
  7. 11 Apr, 2021 9 commits
  8. 08 Apr, 2021 8 commits