01 Dec, 2020

1 commit

  • Currently, '--orphan-handling=warn' is spread out across four different
    architectures in their respective Makefiles, which makes it a little
    unruly to deal with in case it needs to be disabled for a specific
    linker version (in this case, ld.lld 10.0.1).

    To make it easier to control this, hoist this warning into Kconfig and
    the main Makefile so that disabling it is simpler, as the warning will
    only be enabled in a couple places (main Makefile and a couple of
    compressed boot folders that blow away LDFLAGS_vmlinx) and making it
    conditional is easier due to Kconfig syntax. One small additional
    benefit of this is saving a call to ld-option on incremental builds
    because we will have already evaluated it for CONFIG_LD_ORPHAN_WARN.

    To keep the list of supported architectures the same, introduce
    CONFIG_ARCH_WANT_LD_ORPHAN_WARN, which an architecture can select to
    gain this automatically after all of the sections are specified and size
    asserted. A special thanks to Kees Cook for the help text on this
    config.

    Link: https://github.com/ClangBuiltLinux/linux/issues/1187
    Acked-by: Kees Cook
    Acked-by: Michael Ellerman (powerpc)
    Reviewed-by: Nick Desaulniers
    Tested-by: Nick Desaulniers
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Masahiro Yamada

    Nathan Chancellor
     

25 Oct, 2020

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "SoC changes, a substantial part of this is cleanup of some of the
    older platforms that used to have a bunch of board files.

    In particular:

    - Remove non-DT i.MX platforms that haven't seen activity in years,
    it's time to remove them.

    - A bunch of cleanup and removal of platform data for TI/OMAP
    platforms, moving over to genpd for power/reset control (yay!)

    - Major cleanup of Samsung S3C24xx and S3C64xx platforms, moving them
    closer to multiplatform support (not quite there yet, but getting
    close).

    There are a few other changes too, smaller fixlets, etc. For new
    platform support, the primary ones are:

    - New SoC: Hisilicon SD5203, ARM926EJ-S platform.

    - Cpufreq support for i.MX7ULP"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (121 commits)
    ARM: mstar: Select MStar intc
    ARM: stm32: Replace HTTP links with HTTPS ones
    ARM: debug: add UART early console support for SD5203
    ARM: hisi: add support for SD5203 SoC
    ARM: omap3: enable off mode automatically
    clk: imx: imx35: Remove mx35_clocks_init()
    clk: imx: imx31: Remove mx31_clocks_init()
    clk: imx: imx27: Remove mx27_clocks_init()
    ARM: imx: Remove unused definitions
    ARM: imx35: Retrieve the IIM base address from devicetree
    ARM: imx3: Retrieve the AVIC base address from devicetree
    ARM: imx3: Retrieve the CCM base address from devicetree
    ARM: imx31: Retrieve the IIM base address from devicetree
    ARM: imx27: Retrieve the CCM base address from devicetree
    ARM: imx27: Retrieve the SYSCTRL base address from devicetree
    ARM: s3c64xx: bring back notes from removed debug-macro.S
    ARM: s3c24xx: fix Wunused-variable warning on !MMU
    ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
    MAINTAINERS: mark linux-samsung-soc list non-moderated
    ARM: imx: Remove remnant board file support pieces
    ...

    Linus Torvalds
     

23 Oct, 2020

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - Support 'make compile_commands.json' to generate the compilation
    database more easily, avoiding stale entries

    - Support 'make clang-analyzer' and 'make clang-tidy' for static checks
    using clang-tidy

    - Preprocess scripts/modules.lds.S to allow CONFIG options in the
    module linker script

    - Drop cc-option tests from compiler flags supported by our minimal
    GCC/Clang versions

    - Use always 12-digits commit hash for CONFIG_LOCALVERSION_AUTO=y

    - Use sha1 build id for both BFD linker and LLD

    - Improve deb-pkg for reproducible builds and rootless builds

    - Remove stale, useless scripts/namespace.pl

    - Turn -Wreturn-type warning into error

    - Fix build error of deb-pkg when CONFIG_MODULES=n

    - Replace 'hostname' command with more portable 'uname -n'

    - Various Makefile cleanups

    * tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
    kbuild: Use uname for LINUX_COMPILE_HOST detection
    kbuild: Only add -fno-var-tracking-assignments for old GCC versions
    kbuild: remove leftover comment for filechk utility
    treewide: remove DISABLE_LTO
    kbuild: deb-pkg: clean up package name variables
    kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
    kbuild: enforce -Werror=return-type
    scripts: remove namespace.pl
    builddeb: Add support for all required debian/rules targets
    builddeb: Enable rootless builds
    builddeb: Pass -n to gzip for reproducible packages
    kbuild: split the build log of kallsyms
    kbuild: explicitly specify the build id style
    scripts/setlocalversion: make git describe output more reliable
    kbuild: remove cc-option test of -Werror=date-time
    kbuild: remove cc-option test of -fno-stack-check
    kbuild: remove cc-option test of -fno-strict-overflow
    kbuild: move CFLAGS_{KASAN,UBSAN,KCSAN} exports to relevant Makefiles
    kbuild: remove redundant CONFIG_KASAN check from scripts/Makefile.kasan
    kbuild: do not create built-in objects for external module builds
    ...

    Linus Torvalds
     

21 Oct, 2020

1 commit

  • Pull ARM updates from Russell King:

    - handle inexact watchpoint addresses (Douglas Anderson)

    - decompressor serial debug cleanups (Linus Walleij)

    - update L2 cache prefetch bits (Guillaume Tucker)

    - add text offset and malloc size to the decompressor kexec data

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: add malloc size to decompressor kexec size structure
    ARM: add TEXT_OFFSET to decompressor kexec image structure
    ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
    ARM: 9010/1: uncompress: Print the location of appended DTB
    ARM: 9009/1: uncompress: Enable debug in head.S
    ARM: 9008/1: uncompress: Drop excess whitespace print
    ARM: 9006/1: uncompress: Wait for ready and busy in debug prints
    ARM: 9005/1: debug: Select flow control for all debug UARTs
    ARM: 9004/1: debug: Split waituart to CTS and TXRDY
    ARM: 9003/1: uncompress: Delete unused debug macros
    ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses

    Linus Torvalds
     

24 Sep, 2020

1 commit

  • There was a request to preprocess the module linker script like we
    do for the vmlinux one. (https://lkml.org/lkml/2020/8/21/512)

    The difference between vmlinux.lds and module.lds is that the latter
    is needed for external module builds, thus must be cleaned up by
    'make mrproper' instead of 'make clean'. Also, it must be created
    by 'make modules_prepare'.

    You cannot put it in arch/$(SRCARCH)/kernel/, which is cleaned up by
    'make clean'. I moved arch/$(SRCARCH)/kernel/module.lds to
    arch/$(SRCARCH)/include/asm/module.lds.h, which is included from
    scripts/module.lds.S.

    scripts/module.lds is fine because 'make clean' keeps all the
    build artifacts under scripts/.

    You can add arch-specific sections in .

    Signed-off-by: Masahiro Yamada
    Tested-by: Jessica Yu
    Acked-by: Will Deacon
    Acked-by: Geert Uytterhoeven
    Acked-by: Palmer Dabbelt
    Reviewed-by: Kees Cook
    Acked-by: Jessica Yu

    Masahiro Yamada
     

15 Sep, 2020

1 commit


03 Sep, 2020

1 commit

  • We don't want to depend on the linker's orphan section placement
    heuristics as these can vary between linkers, and may change between
    versions. All sections need to be explicitly handled in the linker
    script.

    Specifically, this would have made a recently fixed bug very obvious:

    ld: warning: orphan section `.fixup' from `arch/arm/lib/copy_from_user.o' being placed in section `.fixup'

    With all sections handled, enable orphan section warning.

    Signed-off-by: Kees Cook
    Signed-off-by: Ingo Molnar
    Reviewed-by: Nick Desaulniers
    Link: https://lore.kernel.org/r/20200902025347.2504702-3-keescook@chromium.org

    Kees Cook
     

21 Aug, 2020

1 commit

  • s3c24xx and s3c64xx have a lot in common, but are split across three
    separate directories, which makes the interaction of the header files
    more complicated than necessary.

    Move all three directories into a new mach-s3c, with a minimal
    set of changes to each file.

    Signed-off-by: Arnd Bergmann
    [krzk: Rebase, add s3c24xx and s3c64xx suffix to several files, add SPDX
    headers to new files, remove plat-samsung from MAINTAINERS]
    Co-developed-by: Krzysztof Kozlowski
    Signed-off-by: Krzysztof Kozlowski
    https://lore.kernel.org/r/20200806182059.2431-39-krzk@kernel.org

    Arnd Bergmann
     

20 Aug, 2020

2 commits

  • The plat-samsung directory and mach-s5pv210 can be build
    completely independently, so split the two Kconfig symbols
    CONFIG_PLAT_SAMSUNG and CONFIG_ARCH_S5PV210.

    Signed-off-by: Arnd Bergmann
    Acked-by: Ulf Hansson
    Acked-by: Thierry Reding
    Acked-by: Mark Brown
    Link: https://lore.kernel.org/r/20200806182059.2431-18-krzk@kernel.org
    Signed-off-by: Krzysztof Kozlowski

    Arnd Bergmann
     
  • Now that no code in arch/arm is shared between mach-exynos and the
    others, make the split formal.

    Signed-off-by: Arnd Bergmann
    Acked-by: Ulf Hansson
    Link: https://lore.kernel.org/r/20200806182059.2431-15-krzk@kernel.org
    Signed-off-by: Krzysztof Kozlowski

    Arnd Bergmann
     

07 Aug, 2020

1 commit

  • Pull ARM updates from Russell King:

    - add arch/arm/Kbuild from Masahiro Yamada.

    - simplify act_mm macro, since it contains an open-coded
    get_thread_info.

    - VFP updates for Clang from Stefan Agner.

    - Fix unwinder for Clang from Nathan Huckleberry.

    - Remove unused it8152 PCI host controller, used by the removed cm-x2xx
    platforms from Mike Rapoport.

    - Further explanation of __range_ok().

    - Remove kimage_voffset that isn't used anymore from Marc Zyngier.

    - Drop ancient Thumb-2 workaround for old binutils from Ard Biesheuvel.

    - Documentation cleanup for mach-* from Pete Zaitcev.

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8996/1: Documentation/Clean up the description of mach-
    ARM: 8995/1: drop Thumb-2 workaround for ancient binutils
    ARM: 8994/1: mm: drop kimage_voffset which was only used by KVM
    ARM: uaccess: add further explanation of __range_ok()
    ARM: 8993/1: remove it8152 PCI controller driver
    ARM: 8992/1: Fix unwind_frame for clang-built kernels
    ARM: 8991/1: use VFP assembler mnemonics if available
    ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
    ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
    ARM: 8982/1: mm: Simplify act_mm macro
    ARM: 8981/1: add arch/arm/Kbuild

    Linus Torvalds
     

28 Jul, 2020

2 commits

  • The CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 workaround addresses an issue
    which was fixed before the oldest supported binutils (2.23 at this time)
    were released. So we can remove it now.

    Acked-by: Dave Martin
    Reviewed-by: Linus Walleij
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Russell King

    Ard Biesheuvel
     
  • Initial support for the MStar/Sigmastar Armv7 based IP camera
    and dashcam SoCs.

    These chips are interesting in that they contain a Cortex-A7,
    peripherals and system memory in a single tiny QFN package that
    can be hand soldered allowing almost anyone to embed Linux
    in their projects.

    Signed-off-by: Daniel Palmer
    Signed-off-by: Arnd Bergmann

    Daniel Palmer
     

21 Jul, 2020

1 commit


07 Jun, 2020

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - fix warnings in 'make clean' for ARCH=um, hexagon, h8300, unicore32

    - ensure to rebuild all objects when the compiler is upgraded

    - exclude system headers from dependency tracking and fixdep processing

    - fix potential bit-size mismatch between the kernel and BPF user-mode
    helper

    - add the new syntax 'userprogs' to build user-space programs for the
    target architecture (the same arch as the kernel)

    - compile user-space sample code under samples/ for the target arch
    instead of the host arch

    - make headers_install fail if a CONFIG option is leaked to user-space

    - sanitize the output format of scripts/checkstack.pl

    - handle ARM 'push' instruction in scripts/checkstack.pl

    - error out before modpost if a module name conflict is found

    - error out when multiple directories are passed to M= because this
    feature is broken for a long time

    - add CONFIG_DEBUG_INFO_COMPRESSED to support compressed debug info

    - a lot of cleanups of modpost

    - dump vmlinux symbols out into vmlinux.symvers, and reuse it in the
    second pass of modpost

    - do not run the second pass of modpost if nothing in modules is
    updated

    - install modules.builtin(.modinfo) by 'make install' as well as by
    'make modules_install' because it is useful even when
    CONFIG_MODULES=n

    - add new command line variables, GZIP, BZIP2, LZOP, LZMA, LZ4, and XZ
    to allow users to use alternatives such as pigz, pbzip2, etc.

    * tag 'kbuild-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (96 commits)
    kbuild: add variables for compression tools
    Makefile: install modules.builtin even if CONFIG_MODULES=n
    mksysmap: Fix the mismatch of '.L' symbols in System.map
    kbuild: doc: rename LDFLAGS to KBUILD_LDFLAGS
    modpost: change elf_info->size to size_t
    modpost: remove is_vmlinux() helper
    modpost: strip .o from modname before calling new_module()
    modpost: set have_vmlinux in new_module()
    modpost: remove mod->skip struct member
    modpost: add mod->is_vmlinux struct member
    modpost: remove is_vmlinux() call in check_for_{gpl_usage,unused}()
    modpost: remove mod->is_dot_o struct member
    modpost: move -d option in scripts/Makefile.modpost
    modpost: remove -s option
    modpost: remove get_next_text() and make {grab,release_}file static
    modpost: use read_text_file() and get_line() for reading text files
    modpost: avoid false-positive file open error
    modpost: fix potential mmap'ed file overrun in get_src_version()
    modpost: add read_text_file() and get_line() helpers
    modpost: do not call get_modinfo() for vmlinux(.o)
    ...

    Linus Torvalds
     

12 May, 2020

1 commit

  • $(AS) is not used anywhere in the kernel build, hence commit
    aa824e0c962b ("kbuild: remove AS variable") killed it.

    Remove the left-over code in arch/{arm,arm64}/Makefile.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Nathan Chancellor
    Acked-by: Will Deacon

    Masahiro Yamada
     

13 Apr, 2020

1 commit

  • Introduce ARCH_REALTEK Kconfig option also for 32-bit Arm.

    Override the text offset to cope with boot ROM occupying first 0xa800
    bytes and further reservations up to 0xf4000 (compare Device Tree).

    Add a custom machine_desc to enforce memory carveout for I/O registers.

    Signed-off-by: Andreas Färber

    Andreas Färber
     

04 Apr, 2020

1 commit

  • Pull ARM SoC updates from Arnd Bergmann:
    "The code changes are mostly for 32-bit platforms and include:

    - Lots of updates for the Nvidia Tegra platform, including cpuidle,
    pmc, and dt-binding changes

    - Microchip at91 power management updates for the recently added
    sam9x60 SoC

    - Treewide setup_irq deprecation by afzal mohammed

    - STMicroelectronics stm32 gains earlycon support

    - Renesas platforms with Cortex-A9 can now use the global timer

    - Some TI OMAP2+ platforms gain cpuidle support

    - Various cleanups for the i.MX6 and Orion platforms, as well as
    Kconfig files across all platforms"

    * tag 'arm-soc-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (75 commits)
    ARM: qcom: Add support for IPQ40xx
    ARM: mmp: replace setup_irq() by request_irq()
    ARM: cns3xxx: replace setup_irq() by request_irq()
    ARM: spear: replace setup_irq() by request_irq()
    ARM: ep93xx: Replace setup_irq() by request_irq()
    ARM: iop32x: replace setup_irq() by request_irq()
    arm: mach-dove: Mark dove_io_desc as __maybe_unused
    ARM: orion: replace setup_irq() by request_irq()
    ARM: debug: stm32: add UART early console support for STM32MP1
    ARM: debug: stm32: add UART early console support for STM32H7
    ARM: debug: stm32: add UART early console configuration for STM32F7
    ARM: debug: stm32: add UART early console configuration for STM32F4
    cpuidle: tegra: Disable CC6 state if LP2 unavailable
    cpuidle: tegra: Squash Tegra114 driver into the common driver
    cpuidle: tegra: Squash Tegra30 driver into the common driver
    cpuidle: Refactor and move out NVIDIA Tegra20 driver into drivers/cpuidle
    ARM: tegra: cpuidle: Remove unnecessary memory barrier
    ARM: tegra: cpuidle: Make abort_flag atomic
    ARM: tegra: cpuidle: Handle case where secondary CPU hangs on entering LP2
    ARM: tegra: Make outer_disable() open-coded
    ...

    Linus Torvalds
     

03 Apr, 2020

1 commit

  • Pull kvm updates from Paolo Bonzini:
    "ARM:
    - GICv4.1 support

    - 32bit host removal

    PPC:
    - secure (encrypted) using under the Protected Execution Framework
    ultravisor

    s390:
    - allow disabling GISA (hardware interrupt injection) and protected
    VMs/ultravisor support.

    x86:
    - New dirty bitmap flag that sets all bits in the bitmap when dirty
    page logging is enabled; this is faster because it doesn't require
    bulk modification of the page tables.

    - Initial work on making nested SVM event injection more similar to
    VMX, and less buggy.

    - Various cleanups to MMU code (though the big ones and related
    optimizations were delayed to 5.8). Instead of using cr3 in
    function names which occasionally means eptp, KVM too has
    standardized on "pgd".

    - A large refactoring of CPUID features, which now use an array that
    parallels the core x86_features.

    - Some removal of pointer chasing from kvm_x86_ops, which will also
    be switched to static calls as soon as they are available.

    - New Tigerlake CPUID features.

    - More bugfixes, optimizations and cleanups.

    Generic:
    - selftests: cleanups, new MMU notifier stress test, steal-time test

    - CSV output for kvm_stat"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (277 commits)
    x86/kvm: fix a missing-prototypes "vmread_error"
    KVM: x86: Fix BUILD_BUG() in __cpuid_entry_get_reg() w/ CONFIG_UBSAN=y
    KVM: VMX: Add a trampoline to fix VMREAD error handling
    KVM: SVM: Annotate svm_x86_ops as __initdata
    KVM: VMX: Annotate vmx_x86_ops as __initdata
    KVM: x86: Drop __exit from kvm_x86_ops' hardware_unsetup()
    KVM: x86: Copy kvm_x86_ops by value to eliminate layer of indirection
    KVM: x86: Set kvm_x86_ops only after ->hardware_setup() completes
    KVM: VMX: Configure runtime hooks using vmx_x86_ops
    KVM: VMX: Move hardware_setup() definition below vmx_x86_ops
    KVM: x86: Move init-only kvm_x86_ops to separate struct
    KVM: Pass kvm_init()'s opaque param to additional arch funcs
    s390/gmap: return proper error code on ksm unsharing
    KVM: selftests: Fix cosmetic copy-paste error in vm_mem_region_move()
    KVM: Fix out of range accesses to memslots
    KVM: X86: Micro-optimize IPI fastpath delay
    KVM: X86: Delay read msr data iff writes ICR MSR
    KVM: PPC: Book3S HV: Add a capability for enabling secure guests
    KVM: arm64: GICv4.1: Expose HW-based SGIs in debugfs
    KVM: arm64: GICv4.1: Allow non-trapping WFI when using HW SGIs
    ...

    Linus Torvalds
     

01 Apr, 2020

1 commit


24 Mar, 2020

1 commit

  • As we're about to drop KVM/arm on the floor, carefully unplug
    it from the build system.

    Signed-off-by: Marc Zyngier
    Acked-by: Olof Johansson
    Acked-by: Arnd Bergmann
    Acked-by: Will Deacon
    Acked-by: Vladimir Murzin
    Acked-by: Catalin Marinas
    Acked-by: Linus Walleij
    Acked-by: Christoffer Dall

    Marc Zyngier
     

22 Feb, 2020

1 commit

  • When using plugins, GCC requires that the -fplugin= options precedes
    any of its plugin arguments appearing on the command line as well.
    This is usually not a concern, but as it turns out, this requirement
    is causing some issues with ARM's per-task stack protector plugin
    and Kbuild's implementation of $(cc-option).

    When the per-task stack protector plugin is enabled, and we tweak
    the implementation of cc-option not to pipe the stderr output of
    GCC to /dev/null, the following output is generated when GCC is
    executed in the context of cc-option:

    cc1: error: plugin arm_ssp_per_task_plugin should be specified before \
    -fplugin-arg-arm_ssp_per_task_plugin-tso=1 in the command line
    cc1: error: plugin arm_ssp_per_task_plugin should be specified before \
    -fplugin-arg-arm_ssp_per_task_plugin-offset=24 in the command line

    These errors will cause any option passed to cc-option to be treated
    as unsupported, which is obviously incorrect.

    The cause of this issue is the fact that the -fplugin= argument is
    added to GCC_PLUGINS_CFLAGS, whereas the arguments above are added
    to KBUILD_CFLAGS, and the contents of the former get filtered out of
    the latter before being passed to the GCC running the cc-option test,
    and so the -fplugin= option does not appear at all on the GCC command
    line.

    Adding the arguments to GCC_PLUGINS_CFLAGS instead of KBUILD_CFLAGS
    would be the correct approach here, if it weren't for the fact that we
    are using $(eval) to defer the moment that they are added until after
    asm-offsets.h is generated, which is after the point where the contents
    of GCC_PLUGINS_CFLAGS are added to KBUILD_CFLAGS. So instead, we have
    to add our plugin arguments to both.

    For similar reasons, we cannot append DISABLE_ARM_SSP_PER_TASK_PLUGIN
    to KBUILD_CFLAGS, as it will be passed to GCC when executing in the
    context of cc-option, whereas the other plugin arguments will have
    been filtered out, resulting in a similar error and false negative
    result as above. So add it to ccflags-y instead.

    Fixes: 189af4657186da08 ("ARM: smp: add support for per-task stack canaries")
    Reported-by: Merlijn Wajer
    Tested-by: Tony Lindgren
    Acked-by: Kees Cook
    Reviewed-by: Masahiro Yamada
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Russell King

    Ard Biesheuvel
     

23 Sep, 2019

1 commit

  • Pull ARM updates from Russell King:

    - fix various clang build and cppcheck issues

    - switch ARM to use new common outgoing-CPU-notification code

    - add some additional explanation about the boot code

    - kbuild "make clean" fixes

    - get rid of another "(____ptrval____)", this time for the VDSO code

    - avoid treating cache maintenance faults as a write

    - add a frame pointer unwinder implementation for clang

    - add EDAC support for Aurora L2 cache

    - improve robustness of adjust_lowmem_bounds() finding the bounds of
    lowmem.

    - add reset control for AMBA primecell devices

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (24 commits)
    ARM: 8906/1: drivers/amba: add reset control to amba bus probe
    ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer
    ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
    ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
    ARM: 8891/1: EDAC: armada_xp: Add support for more SoCs
    ARM: 8888/1: EDAC: Add driver for the Marvell Armada XP SDRAM and L2 cache ECC
    ARM: 8892/1: EDAC: Add missing debugfs_create_x32 wrapper
    ARM: 8890/1: l2x0: add marvell,ecc-enable property for aurora
    ARM: 8889/1: dt-bindings: document marvell,ecc-enable binding
    ARM: 8886/1: l2x0: support parity-enable/disable on aurora
    ARM: 8885/1: aurora-l2: add defines for parity and ECC registers
    ARM: 8887/1: aurora-l2: add prefix to MAX_RANGE_SIZE
    ARM: 8902/1: l2c: move cache-aurora-l2.h to asm/hardware
    ARM: 8900/1: UNWINDER_FRAME_POINTER implementation for Clang
    ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
    ARM: 8896/1: VDSO: Don't leak kernel addresses
    ARM: 8895/1: visit mach-* and plat-* directories when cleaning
    ARM: 8894/1: boot: Replace open-coded nop with macro
    ARM: 8893/1: boot: Explain the 8 nops
    ARM: 8876/1: fix O= building with CONFIG_FPE_FASTFPE
    ...

    Linus Torvalds
     

20 Sep, 2019

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - add modpost warn exported symbols marked as 'static' because 'static'
    and EXPORT_SYMBOL is an odd combination

    - break the build early if gold linker is used

    - optimize the Bison rule to produce .c and .h files by a single
    pattern rule

    - handle PREEMPT_RT in the module vermagic and UTS_VERSION

    - warn CONFIG options leaked to the user-space except existing ones

    - make single targets work properly

    - rebuild modules when module linker scripts are updated

    - split the module final link stage into scripts/Makefile.modfinal

    - fix the missed error code in merge_config.sh

    - improve the error message displayed on the attempt of the O= build in
    unclean source tree

    - remove 'clean-dirs' syntax

    - disable -Wimplicit-fallthrough warning for Clang

    - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC

    - remove ARCH_{CPP,A,C}FLAGS variables

    - add $(BASH) to run bash scripts

    - change *CFLAGS_.o to take the relative path to $(obj)
    instead of the basename

    - stop suppressing Clang's -Wunused-function warnings when W=1

    - fix linux/export.h to avoid genksyms calculating CRC of trimmed
    exported symbols

    - misc cleanups

    * tag 'kbuild-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (63 commits)
    genksyms: convert to SPDX License Identifier for lex.l and parse.y
    modpost: use __section in the output to *.mod.c
    modpost: use MODULE_INFO() for __module_depends
    export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
    export.h: remove defined(__KERNEL__), which is no longer needed
    kbuild: allow Clang to find unused static inline functions for W=1 build
    kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
    kbuild: refactor scripts/Makefile.extrawarn
    merge_config.sh: ignore unwanted grep errors
    kbuild: change *FLAGS_.o to take the path relative to $(obj)
    modpost: add NOFAIL to strndup
    modpost: add guid_t type definition
    kbuild: add $(BASH) to run scripts with bash-extension
    kbuild: remove ARCH_{CPP,A,C}FLAGS
    kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
    kbuild: Do not enable -Wimplicit-fallthrough for clang for now
    kbuild: clean up subdir-ymn calculation in Makefile.clean
    kbuild: remove unneeded '+' marker from cmd_clean
    kbuild: remove clean-dirs syntax
    kbuild: check clean srctree even earlier
    ...

    Linus Torvalds
     

10 Sep, 2019

1 commit

  • Currently, multi_v7_defconfig + CONFIG_FUNCTION_TRACER fails to build
    with clang:

    arm-linux-gnueabi-ld: kernel/softirq.o: in function `_local_bh_enable':
    softirq.c:(.text+0x504): undefined reference to `mcount'
    arm-linux-gnueabi-ld: kernel/softirq.o: in function `__local_bh_enable_ip':
    softirq.c:(.text+0x58c): undefined reference to `mcount'
    arm-linux-gnueabi-ld: kernel/softirq.o: in function `do_softirq':
    softirq.c:(.text+0x6c8): undefined reference to `mcount'
    arm-linux-gnueabi-ld: kernel/softirq.o: in function `irq_enter':
    softirq.c:(.text+0x75c): undefined reference to `mcount'
    arm-linux-gnueabi-ld: kernel/softirq.o: in function `irq_exit':
    softirq.c:(.text+0x840): undefined reference to `mcount'
    arm-linux-gnueabi-ld: kernel/softirq.o:softirq.c:(.text+0xa50): more undefined references to `mcount' follow

    clang can emit a working mcount symbol, __gnu_mcount_nc, when
    '-meabi gnu' is passed to it. Until r369147 in LLVM, this was
    broken and caused the kernel not to boot with '-pg' because the
    calling convention was not correct. Always build with '-meabi gnu'
    when using clang but ensure that '-pg' (which is added with
    CONFIG_FUNCTION_TRACER and its prereq CONFIG_HAVE_FUNCTION_TRACER)
    cannot be added with it unless this is fixed (which means using
    clang 10.0.0 and newer).

    Link: https://github.com/ClangBuiltLinux/linux/issues/35
    Link: https://bugs.llvm.org/show_bug.cgi?id=33845
    Link: https://github.com/llvm/llvm-project/commit/16fa8b09702378bacfa3d07081afe6b353b99e60

    Reviewed-by: Matthias Kaehlcke
    Reviewed-by: Nick Desaulniers
    Reviewed-by: Stefan Agner
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Russell King

    Nathan Chancellor
     

03 Sep, 2019

1 commit

  • …l/aspeed into arm/soc

    ASPEED architecture updates for 5.4

    This adds support for the new ASPEED AST2600 BMC SoC.

    * tag 'aspeed-5.4-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
    ARM: aspeed: Enable SMP boot
    ARM: aspeed: Add ASPEED AST2600 architecture
    ARM: aspeed: Select timer in each SoC
    dt-bindings: arm: cpus: Add ASPEED SMP

    Link: https://lore.kernel.org/r/CACPK8Xc1aSp5fXL3cEzC9SJsCXG2JwsSPpQrW3a09dkvhCyHHA@mail.gmail.com
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     

29 Aug, 2019

1 commit

  • The stackframe setup when compiled with clang is different.
    Since the stack unwinder expects the gcc stackframe setup it
    fails to print backtraces. This patch adds support for the
    clang stackframe setup.

    Link: https://github.com/ClangBuiltLinux/linux/issues/35

    Cc: clang-built-linux@googlegroups.com
    Suggested-by: Tri Vo
    Signed-off-by: Nathan Huckleberry
    Tested-by: Nick Desaulniers
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Russell King

    Nathan Huckleberry
     

25 Aug, 2019

1 commit


23 Aug, 2019

2 commits

  • When you run "make clean" for arm, it never visits mach-* or plat-*
    directories because machine-y and plat-y are just empty.

    When cleaning, all machine, plat directories are accumulated to
    machine-, plat-, respectively. So, let's pass them to core- to
    clean up those directories.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Russell King

    Masahiro Yamada
     
  • To use Fastfpe, a user is supposed to enable CONFIG_FPE_FASTFPE
    and put downstream source files into arch/arm/fastfpe/.

    It is not working for O= build because $(wildcard arch/arm/fastfpe)
    checks if it exists in $(objtree), not in $(srctree).

    Add the $(srctree)/ prefix to fix it.

    While I was here, I slightly refactored the code.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Russell King

    Masahiro Yamada
     

21 Aug, 2019

1 commit


14 Aug, 2019

4 commits

  • Various bits of iop32x are now in their traditional locations in plat-iop,
    mach-iop/include/mach/ and in include/asm/mach/hardware. As nothing
    outside of the iop32x mach code references these any more, this can all
    be moved into one place now.

    The only remaining things in the include/mach/ directory are now the
    NR_IRQS definition, the entry-macros.S file and the the decompressor
    uart access. After the irqchip code has been converted to SPARSE_IRQ
    and GENERIC_IRQ_MULTI_HANDLER, it can be moved to ARCH_MULTIPLATFORM.

    Link: https://lore.kernel.org/r/20190809163334.489360-7-arnd@arndb.de
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • There are three families of IOP machines we support in Linux: iop32x
    (which includes EP80219), iop33x and iop13xx (aka IOP34x aka WP8134x).

    All products we support in the kernel are based on the first of these,
    iop32x, the other families only ever supported the Intel reference
    boards but no actual machine anyone could ever buy.

    While one could clearly make them all three work in a single kernel
    with some work, this takes the easy way out, removing the later two
    platforms entirely, under the assumption that there are no remaining
    users.

    Earlier versions of OpenWRT and Debian both had support for iop32x
    but not the others, and they both dropped iop32x as well in their 2015
    releases.

    Link: https://lore.kernel.org/r/20190809163334.489360-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann
    Acked-by: Wolfram Sang # for I2C parts
    Acked-by: Dan Williams
    Acked-by: Martin Michlmayr
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • This removes the old Winbond w90x900 platform, also known
    as Nuvoton NUC900. Wan Zongshun originally contributed
    the port and maintained it since then.

    From all I can tell, this platform is no longer being used
    with modern kernels, based on various indications:

    - The supported chips (nuc910/950/960) are no longer marketed
    by the manufacturer

    - Newer chips from the same family (nuc97x, nuc980, n329x)
    that are still marketed have Linux BSPs but those were never
    submitted for upstream inclusion.

    - The last patch from the platform maintainer was in 2011.

    - All patches to w90x900 platform specific files afterwards
    are cleanups that were apparently done without access to
    test hardware.

    - Both the website and the email address listed in the
    MAINTAINERS have become unreachable.

    Link: https://lore.kernel.org/r/20190809202749.742267-17-arnd@arndb.de
    Cc: "Wanzongshun (Vincent)"
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • ks8695 is an older SoC originally made by Kendin, which was later acquired
    by Micrel, and subsequently by Microchip.

    The platform port was originally contributed by Andrew Victor and Ben
    Dooks, and later maintained by Greg Ungerer.

    When I recently submitted cleanups, but Greg noted that the platform no
    longer boots and nobody is using it any more, we decided to remove it.

    Link: https://lore.kernel.org/r/20190809202749.742267-2-arnd@arndb.de
    Cc: Andrew Victor
    Acked-by: Ben Dooks
    Link: https://wikidevi.com/wiki/Micrel
    Link: https://lore.kernel.org/linux-arm-kernel/2bc41895-d4f9-896c-0726-0b2862fcbf25@kernel.org/
    Signed-off-by: Arnd Bergmann
    Acked-by: Greg Ungerer
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

22 May, 2019

1 commit

  • After discussing with the subarch maintainers and Hilscher,
    we concluded that the netx subarchitecture (Netx 100/500)
    is no longer maintained or tested, and noone will miss it
    if we delete it. So delete it.

    There is a newer Netx 4000 architecture which we may see
    included at some point, but this will be supported using
    the standard multiplatform and devicetree mechanisms and is
    easier to develop from scratch.

    Cc: Michael Trensch
    Acked-By: Robert Schwebel
    Acked-by: Sascha Hauer
    Signed-off-by: Linus Walleij

    Linus Walleij
     

17 May, 2019

1 commit

  • Pull ARM updates from Russell King:
    "ARM development updates:

    - more unified assembly conversions for clang

    - drop obsolete -mauto-it assembler option

    - remove arm_memory_present in preference to the generic version

    - remove unused asm/limits.h header

    - vdso linker update

    We tried to make the assembler warn if unified syntax was not used,
    but unfortunately older versions of GCC warn, so the commit had to be
    reverted"

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    Revert "ARM: 8846/1: warn if divided syntax assembler is used"
    ARM: 8858/1: vdso: use $(LD) instead of $(CC) to link VDSO
    ARM: 8855/1: remove unused
    ARM: 8850/1: use memblocks_present
    ARM: 8854/1: drop -mauto-it
    ARM: 8846/1: warn if divided syntax assembler is used
    ARM: 8853/1: drop WASM to work around LLVM issue
    ARM: 8852/1: uaccess: use unified assembler language syntax
    ARM: 8851/1: add TUSERCOND() macro for conditional postfix

    Linus Torvalds
     

16 May, 2019

1 commit

  • This reverts commit e8c24bbda7d5eba6df5ca45e5462fd3f96b8f217.

    GCC 4.7, which is still permitted, emits code using the original
    syntax. This means we end up with lots of assembler warnings when
    building with a currently-supported version of gcc.

    Revert the commit (with fixups to keep the follow-on -mauto-it
    change) to avoid these warnings.

    Signed-off-by: Russell King

    Russell King
     

24 Apr, 2019

2 commits

  • The assembler option -mauto-it is no longer a valid option. The last
    remaining references have been removed from the documentation in
    July 2009 [0].

    The currently supported binutils version is 2.20 (released in
    September 2009) or higher where gas supports -mimplicit-it=always.
    Drop the fallback to -mauto-it and use -mimplicit-it=always only.

    [0] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=529707530657a333a304c651c808ea630c955223

    Signed-off-by: Stefan Agner
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Russell King

    Stefan Agner
     
  • Remove the -mno-warn-deprecated assembler flag to make sure the GNU
    assembler warns in case non-unified syntax is used.

    Signed-off-by: Stefan Agner
    Acked-by: Nicolas Pitre
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Russell King

    Stefan Agner