11 Jul, 2018

1 commit


15 Jun, 2018

1 commit

  • HAVE_CC_STACKPROTECTOR should be selected by architectures with stack
    canary implementation. It is not about the compiler support.

    For the consistency with commit 050e9baa9dc9 ("Kbuild: rename
    CC_STACKPROTECTOR[_STRONG] config variables"), remove 'CC_' from the
    config symbol.

    I moved the 'select' lines to keep the alphabetical sorting.

    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

08 Jun, 2018

1 commit

  • Currently the PTE special supports is turned on in per architecture
    header files. Most of the time, it is defined in
    arch/*/include/asm/pgtable.h depending or not on some other per
    architecture static definition.

    This patch introduce a new configuration variable to manage this
    directly in the Kconfig files. It would later replace
    __HAVE_ARCH_PTE_SPECIAL.

    Here notes for some architecture where the definition of
    __HAVE_ARCH_PTE_SPECIAL is not obvious:

    arm
    __HAVE_ARCH_PTE_SPECIAL which is currently defined in
    arch/arm/include/asm/pgtable-3level.h which is included by
    arch/arm/include/asm/pgtable.h when CONFIG_ARM_LPAE is set.
    So select ARCH_HAS_PTE_SPECIAL if ARM_LPAE.

    powerpc
    __HAVE_ARCH_PTE_SPECIAL is defined in 2 files:
    - arch/powerpc/include/asm/book3s/64/pgtable.h
    - arch/powerpc/include/asm/pte-common.h
    The first one is included if (PPC_BOOK3S & PPC64) while the second is
    included in all the other cases.
    So select ARCH_HAS_PTE_SPECIAL all the time.

    sparc:
    __HAVE_ARCH_PTE_SPECIAL is defined if defined(__sparc__) &&
    defined(__arch64__) which are defined through the compiler in
    sparc/Makefile if !SPARC32 which I assume to be if SPARC64.
    So select ARCH_HAS_PTE_SPECIAL if SPARC64

    There is no functional change introduced by this patch.

    Link: http://lkml.kernel.org/r/1523433816-14460-2-git-send-email-ldufour@linux.vnet.ibm.com
    Signed-off-by: Laurent Dufour
    Suggested-by: Jerome Glisse
    Reviewed-by: Jerome Glisse
    Acked-by: David Rientjes
    Cc: Michal Hocko
    Cc: "Aneesh Kumar K . V"
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Jonathan Corbet
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Cc: Rich Felker
    Cc: David S. Miller
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Vineet Gupta
    Cc: Palmer Dabbelt
    Cc: Albert Ou
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: David Rientjes
    Cc: Robin Murphy
    Cc: Christophe LEROY
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Dufour
     

05 Jun, 2018

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "There's been a fair amount of work in the docs tree this time around,
    including:

    - Extensive RST conversions and organizational work in the
    memory-management docs thanks to Mike Rapoport.

    - An update of Documentation/features from Andrea Parri and a script
    to keep it updated.

    - Various LICENSES updates from Thomas, along with a script to check
    SPDX tags.

    - Work to fix dangling references to documentation files; this
    involved a fair number of one-liner comment changes outside of
    Documentation/

    ... and the usual list of documentation improvements, typo fixes, etc"

    * tag 'docs-4.18' of git://git.lwn.net/linux: (103 commits)
    Documentation: document hung_task_panic kernel parameter
    docs/admin-guide/mm: add high level concepts overview
    docs/vm: move ksm and transhuge from "user" to "internals" section.
    docs: Use the kerneldoc comments for memalloc_no*()
    doc: document scope NOFS, NOIO APIs
    docs: update kernel versions and dates in tables
    docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
    docs/vm: transhuge: minor updates
    docs/vm: transhuge: change sections order
    Documentation: arm: clean up Marvell Berlin family info
    Documentation: gpio: driver: Fix a typo and some odd grammar
    docs: ranoops.rst: fix location of ramoops.txt
    scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
    docs: uio-howto.rst: use a code block to solve a warning
    mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
    w1: w1_io.c: fix a kernel-doc warning
    Documentation/process/posting: wrap text at 80 cols
    docs: admin-guide: add cgroup-v2 documentation
    Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
    Documentation: refcount-vs-atomic: Update reference to LKMM doc.
    ...

    Linus Torvalds
     

11 May, 2018

1 commit


08 May, 2018

7 commits


03 Apr, 2018

1 commit

  • Pul removal of obsolete architecture ports from Arnd Bergmann:
    "This removes the entire architecture code for blackfin, cris, frv,
    m32r, metag, mn10300, score, and tile, including the associated device
    drivers.

    I have been working with the (former) maintainers for each one to
    ensure that my interpretation was right and the code is definitely
    unused in mainline kernels. Many had fond memories of working on the
    respective ports to start with and getting them included in upstream,
    but also saw no point in keeping the port alive without any users.

    In the end, it seems that while the eight architectures are extremely
    different, they all suffered the same fate: There was one company in
    charge of an SoC line, a CPU microarchitecture and a software
    ecosystem, which was more costly than licensing newer off-the-shelf
    CPU cores from a third party (typically ARM, MIPS, or RISC-V). It
    seems that all the SoC product lines are still around, but have not
    used the custom CPU architectures for several years at this point. In
    contrast, CPU instruction sets that remain popular and have actively
    maintained kernel ports tend to all be used across multiple licensees.

    [ See the new nds32 port merged in the previous commit for the next
    generation of "one company in charge of an SoC line, a CPU
    microarchitecture and a software ecosystem" - Linus ]

    The removal came out of a discussion that is now documented at
    https://lwn.net/Articles/748074/. Unlike the original plans, I'm not
    marking any ports as deprecated but remove them all at once after I
    made sure that they are all unused. Some architectures (notably tile,
    mn10300, and blackfin) are still being shipped in products with old
    kernels, but those products will never be updated to newer kernel
    releases.

    After this series, we still have a few architectures without mainline
    gcc support:

    - unicore32 and hexagon both have very outdated gcc releases, but the
    maintainers promised to work on providing something newer. At least
    in case of hexagon, this will only be llvm, not gcc.

    - openrisc, risc-v and nds32 are still in the process of finishing
    their support or getting it added to mainline gcc in the first
    place. They all have patched gcc-7.3 ports that work to some
    degree, but complete upstream support won't happen before gcc-8.1.
    Csky posted their first kernel patch set last week, their situation
    will be similar

    [ Palmer Dabbelt points out that RISC-V support is in mainline gcc
    since gcc-7, although gcc-7.3.0 is the recommended minimum - Linus ]"

    This really says it all:

    2498 files changed, 95 insertions(+), 467668 deletions(-)

    * tag 'arch-removal' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (74 commits)
    MAINTAINERS: UNICORE32: Change email account
    staging: iio: remove iio-trig-bfin-timer driver
    tty: hvc: remove tile driver
    tty: remove bfin_jtag_comm and hvc_bfin_jtag drivers
    serial: remove tile uart driver
    serial: remove m32r_sio driver
    serial: remove blackfin drivers
    serial: remove cris/etrax uart drivers
    usb: Remove Blackfin references in USB support
    usb: isp1362: remove blackfin arch glue
    usb: musb: remove blackfin port
    usb: host: remove tilegx platform glue
    pwm: remove pwm-bfin driver
    i2c: remove bfin-twi driver
    spi: remove blackfin related host drivers
    watchdog: remove bfin_wdt driver
    can: remove bfin_can driver
    mmc: remove bfin_sdh driver
    input: misc: remove blackfin rotary driver
    input: keyboard: remove bf54x driver
    ...

    Linus Torvalds
     

26 Mar, 2018

1 commit

  • A number of architecture ports are obsolete and getting dropped,
    so we no longer want to track the respective features.

    We already removed the lines for metag and mn10300, this does
    the same edits for all the others.

    For the remaining 21 architectures, this shows how many are known
    to implement each given feature:

    19 time/modern-timekeeping/arch-support.txt
    19 time/clockevents/arch-support.txt
    15 core/tracehook/arch-support.txt
    14 core/generic-idle-thread/arch-support.txt
    13 locking/lockdep/arch-support.txt
    12 io/dma-api-debug/arch-support.txt
    11 debug/kgdb/arch-support.txt
    10 time/virt-cpuacct/arch-support.txt
    9 debug/kretprobes/arch-support.txt
    9 debug/kprobes/arch-support.txt
    8 vm/THP/arch-support.txt
    8 vm/pte_special/arch-support.txt
    8 vm/numa-memblock/arch-support.txt
    8 io/sg-chain/arch-support.txt
    7 perf/kprobes-event/arch-support.txt
    7 locking/rwsem-optimized/arch-support.txt
    7 debug/gcov-profile-all/arch-support.txt
    7 core/jump-labels/arch-support.txt
    7 core/BPF-JIT/arch-support.txt
    6 vm/ELF-ASLR/arch-support.txt
    6 time/context-tracking/arch-support.txt
    6 seccomp/seccomp-filter/arch-support.txt
    6 debug/stackprotector/arch-support.txt
    5 time/irq-time-acct/arch-support.txt
    5 io/dma-contiguous/arch-support.txt
    5 debug/uprobes/arch-support.txt
    4 vm/ioremap_prot/arch-support.txt
    4 time/arch-tick-broadcast/arch-support.txt
    4 perf/perf-stackdump/arch-support.txt
    4 perf/perf-regs/arch-support.txt
    3 debug/KASAN/arch-support.txt
    2 vm/PG_uncached/arch-support.txt
    2 vm/huge-vmap/arch-support.txt
    2 sched/numa-balancing/arch-support.txt
    2 sched/membarrier-sync-core/arch-support.txt
    2 locking/cmpxchg-local/arch-support.txt
    2 debug/optprobes/arch-support.txt
    2 debug/kprobes-on-ftrace/arch-support.txt
    1 vm/TLB/arch-support.txt
    1 locking/queued-spinlocks/arch-support.txt
    1 locking/queued-rwlocks/arch-support.txt
    1 debug/user-ret-profiler/arch-support.txt
    0 lib/strncasecmp/arch-support.txt

    Note that the list does not include riscv or nds32 yet, these still
    need to be added.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

10 Mar, 2018

1 commit


22 Feb, 2018

1 commit


11 Feb, 2018

2 commits

  • Ensure we gather architecture requirements about each architecture
    supporting the "sync_core" membarrier command in a single file under
    Documentation/features.

    Signed-off-by: Mathieu Desnoyers
    Cc: Andrea Parri
    Cc: Andrew Hunter
    Cc: Andy Lutomirski
    Cc: Avi Kivity
    Cc: Benjamin Herrenschmidt
    Cc: Boqun Feng
    Cc: Dave Watson
    Cc: David Sehr
    Cc: Greg Hackmann
    Cc: Jonathan Corbet
    Cc: Linus Torvalds
    Cc: Maged Michael
    Cc: Michael Ellerman
    Cc: Paul E. McKenney
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: linux-api@vger.kernel.org
    Cc: linux-arch@vger.kernel.org
    Cc: linux-doc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1518208256-22034-1-git-send-email-mathieu.desnoyers@efficios.com
    Signed-off-by: Ingo Molnar

    Mathieu Desnoyers
     
  • The list-arch.sh script considers lines beginning with "#" as match for
    the feature table.

    Given that those tables are never in lines beginning with "#",
    add a reverse grep on "^#" when matching the "ok/TODO" state of
    the architecture.

    This allows adding comments within the feature files, for instance
    describing the architecture requirements for the feature in each
    architecture.

    Signed-off-by: Mathieu Desnoyers
    Cc: Jonathan Corbet
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-doc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1518282058-24226-1-git-send-email-mathieu.desnoyers@efficios.com
    Signed-off-by: Ingo Molnar

    Mathieu Desnoyers
     

10 Feb, 2018

1 commit

  • Ensure we gather architecture requirements about each architecture
    supporting the "sync_core" membarrier command in a single file under
    Documentation/features.

    Signed-off-by: Mathieu Desnoyers
    Cc: Andrea Parri
    Cc: Andrew Hunter
    Cc: Andy Lutomirski
    Cc: Avi Kivity
    Cc: Benjamin Herrenschmidt
    Cc: Boqun Feng
    Cc: Dave Watson
    Cc: David Sehr
    Cc: Greg Hackmann
    Cc: Linus Torvalds
    Cc: Maged Michael
    Cc: Michael Ellerman
    Cc: Paul E. McKenney
    Cc: Paul Mackerras
    Cc: Peter Zijlstra (Intel)
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: linux-api@vger.kernel.org
    Cc: linux-arch@vger.kernel.org
    Link: http://lkml.kernel.org/r/1518208256-22034-1-git-send-email-mathieu.desnoyers@efficios.com
    Signed-off-by: Ingo Molnar

    Mathieu Desnoyers
     

30 Jan, 2018

1 commit

  • Pull Xtensa updates from Max Filippov:

    - add SSP support

    - add KASAN support

    - improvements to xtensa-specific assembly:
    - use ENTRY and ENDPROC consistently
    - clean up and unify word alignment macros
    - clean up and unify fixup marking
    - use 'call' instead of 'callx' where possible

    - various cleanups:
    - consiolidate kernel stack size related definitions
    - replace #ifdef'fed/commented out debug printk statements with
    pr_debug
    - use struct exc_table instead of flat array for exception handling
    data

    - build kernel with -mtext-section-literals; simplify xtensa linker
    script

    - fix futex_atomic_cmpxchg_inatomic()

    * tag 'xtensa-20180129' of git://github.com/jcmvbkbc/linux-xtensa: (21 commits)
    xtensa: fix futex_atomic_cmpxchg_inatomic
    xtensa: shut up gcc-8 warnings
    xtensa: print kernel sections info in mem_init
    xtensa: use generic strncpy_from_user with KASAN
    xtensa: use __memset in __xtensa_clear_user
    xtensa: add support for KASAN
    xtensa: move fixmap and kmap just above the KSEG
    xtensa: don't clear swapper_pg_dir in paging_init
    xtensa: extract init_kio
    xtensa: implement early_trap_init
    xtensa: clean up exception handling structure
    xtensa: clean up custom-controlled debug output
    xtensa: enable stack protector
    xtensa: print hardware config ID on startup
    xtensa: consolidate kernel stack size related definitions
    xtensa: clean up functions in assembly code
    xtensa: clean up word alignment macros in assembly code
    xtensa: clean up fixups in assembly code
    xtensa: use call instead of callx in assembly code
    xtensa: build kernel with text-section-literals
    ...

    Linus Torvalds
     

17 Dec, 2017

2 commits

  • Cover kernel addresses above 0x90000000 by the shadow map. Enable
    HAVE_ARCH_KASAN when MMU is enabled. Provide kasan_early_init that fills
    shadow map with writable copies of kasan_zero_page. Call
    kasan_early_init right after mmu initialization in the setup_arch.
    Provide kasan_init that allocates proper shadow map pages from the
    memblock and puts these pages into the shadow map for addresses from
    VMALLOC area to the end of KSEG. Call kasan_init right after memblock
    initialization. Don't use KASAN for the boot code, MMU and KASAN
    initialization and page fault handler. Make kernel stack size 4 times
    larger when KASAN is enabled to avoid stack overflows.
    GCC 7.3, 8 or newer is required to build the xtensa kernel with KASAN.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • The implementation is adopted from the ARM arch. GCC 7.3, 8 or newer is
    required for building the xtensa kernel with SSP.

    Signed-off-by: Max Filippov

    Max Filippov
     

04 Oct, 2017

1 commit


08 Aug, 2017

1 commit

  • Since commit 64e2a42bca12 ("parisc: Add ARCH_TRACEHOOK and regset
    support") in v4.7, parisc selects HAVE_ARCH_TRACEHOOK, so update its
    entry in Documentation/features from TODO to ok.

    Signed-off-by: James Hogan
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Cc: Ingo Molnar
    Signed-off-by: Jonathan Corbet

    James Hogan
     

06 May, 2017

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Highlights include:

    - Larger virtual address space on 64-bit server CPUs. By default we
    use a 128TB virtual address space, but a process can request access
    to the full 512TB by passing a hint to mmap().

    - Support for the new Power9 "XIVE" interrupt controller.

    - TLB flushing optimisations for the radix MMU on Power9.

    - Support for CAPI cards on Power9, using the "Coherent Accelerator
    Interface Architecture 2.0".

    - The ability to configure the mmap randomisation limits at build and
    runtime.

    - Several small fixes and cleanups to the kprobes code, as well as
    support for KPROBES_ON_FTRACE.

    - Major improvements to handling of system reset interrupts,
    correctly treating them as NMIs, giving them a dedicated stack and
    using a new hypervisor call to trigger them, all of which should
    aid debugging and robustness.

    - Many fixes and other minor enhancements.

    Thanks to: Alastair D'Silva, Alexey Kardashevskiy, Alistair Popple,
    Andrew Donnellan, Aneesh Kumar K.V, Anshuman Khandual, Anton
    Blanchard, Balbir Singh, Ben Hutchings, Benjamin Herrenschmidt,
    Bhupesh Sharma, Chris Packham, Christian Zigotzky, Christophe Leroy,
    Christophe Lombard, Daniel Axtens, David Gibson, Gautham R. Shenoy,
    Gavin Shan, Geert Uytterhoeven, Guilherme G. Piccoli, Hamish Martin,
    Hari Bathini, Kees Cook, Laurent Dufour, Madhavan Srinivasan, Mahesh J
    Salgaonkar, Mahesh Salgaonkar, Masami Hiramatsu, Matt Brown, Matthew
    R. Ochs, Michael Neuling, Naveen N. Rao, Nicholas Piggin, Oliver
    O'Halloran, Pan Xinhui, Paul Mackerras, Rashmica Gupta, Russell
    Currey, Sukadev Bhattiprolu, Thadeu Lima de Souza Cascardo, Tobin C.
    Harding, Tyrel Datwyler, Uma Krishnan, Vaibhav Jain, Vipin K Parashar,
    Yang Shi"

    * tag 'powerpc-4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (214 commits)
    powerpc/64s: Power9 has no LPCR[VRMASD] field so don't set it
    powerpc/powernv: Fix TCE kill on NVLink2
    powerpc/mm/radix: Drop support for CPUs without lockless tlbie
    powerpc/book3s/mce: Move add_taint() later in virtual mode
    powerpc/sysfs: Move #ifdef CONFIG_HOTPLUG_CPU out of the function body
    powerpc/smp: Document irq enable/disable after migrating IRQs
    powerpc/mpc52xx: Don't select user-visible RTAS_PROC
    powerpc/powernv: Document cxl dependency on special case in pnv_eeh_reset()
    powerpc/eeh: Clean up and document event handling functions
    powerpc/eeh: Avoid use after free in eeh_handle_special_event()
    cxl: Mask slice error interrupts after first occurrence
    cxl: Route eeh events to all drivers in cxl_pci_error_detected()
    cxl: Force context lock during EEH flow
    powerpc/64: Allow CONFIG_RELOCATABLE if COMPILE_TEST
    powerpc/xmon: Teach xmon oops about radix vectors
    powerpc/mm/hash: Fix off-by-one in comment about kernel contexts ids
    powerpc/pseries: Enable VFIO
    powerpc/powernv: Fix iommu table size calculation hook for small tables
    powerpc/powernv: Check kzalloc() return value in pnv_pci_table_alloc
    powerpc: Add arch/powerpc/tools directory
    ...

    Linus Torvalds
     

01 May, 2017

1 commit


24 Apr, 2017

1 commit

  • Allow kprobes to be placed on ftrace _mcount() call sites. This optimization
    avoids the use of a trap, by riding on ftrace infrastructure.

    This depends on HAVE_DYNAMIC_FTRACE_WITH_REGS which depends on MPROFILE_KERNEL,
    which is only currently enabled on powerpc64le with newer toolchains.

    Based on the x86 code by Masami.

    Signed-off-by: Naveen N. Rao
    Signed-off-by: Michael Ellerman

    Naveen N. Rao
     

24 Dec, 2016

1 commit

  • Pull more ARC updates from Vineet Gupta:

    - Fix for aliasing VIPT dcache in old ARC700 cores

    - micro-optimization in ARC700 ProtV handler

    - Enable SG_CHAIN [Vladimir]

    - ARC HS38 core intc default to prio 1

    * tag 'arc-4.10-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache
    ARC: mm: No need to save cache version in @cpuinfo
    ARC: enable SG chaining
    ARCv2: intc: default all interrupts to priority 1
    ARCv2: entry: document intr disable in hard isr
    ARC: ARCompact entry: elide re-reading ECR in ProtV handler

    Linus Torvalds
     

19 Dec, 2016

1 commit


16 Dec, 2016

1 commit


13 Oct, 2016

1 commit

  • This should have been part of 40e084a506eb ('MIPS: Add uprobes support.').

    Signed-off-by: Ralf Baechle
    Fixes: 40e084a506eb ("MIPS: Add uprobes support.")
    Acked-by: Jonathan Corbet
    Cc: linux-mips@linux-mips.org
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/14392/
    Signed-off-by: Ralf Baechle

    Ralf Baechle
     

11 May, 2016

1 commit

  • With perf regs support enabled for powerpc, in commit ed4a4ef85cf5
    ("powerpc/perf: Add support for sampling interrupt register state"),
    the support for obtaining perf user stack dump is already enabled. This
    patch declares the support for same and also updates documentation to
    mark the support for perf-regs and perf-stackdump.

    Signed-off-by: Chandan Kumar
    Signed-off-by: Michael Ellerman

    Chandan Kumar
     

18 Mar, 2016

1 commit

  • Pull arm64 updates from Catalin Marinas:
    "Here are the main arm64 updates for 4.6. There are some relatively
    intrusive changes to support KASLR, the reworking of the kernel
    virtual memory layout and initial page table creation.

    Summary:

    - Initial page table creation reworked to avoid breaking large block
    mappings (huge pages) into smaller ones. The ARM architecture
    requires break-before-make in such cases to avoid TLB conflicts but
    that's not always possible on live page tables

    - Kernel virtual memory layout: the kernel image is no longer linked
    to the bottom of the linear mapping (PAGE_OFFSET) but at the bottom
    of the vmalloc space, allowing the kernel to be loaded (nearly)
    anywhere in physical RAM

    - Kernel ASLR: position independent kernel Image and modules being
    randomly mapped in the vmalloc space with the randomness is
    provided by UEFI (efi_get_random_bytes() patches merged via the
    arm64 tree, acked by Matt Fleming)

    - Implement relative exception tables for arm64, required by KASLR
    (initial code for ARCH_HAS_RELATIVE_EXTABLE added to lib/extable.c
    but actual x86 conversion to deferred to 4.7 because of the merge
    dependencies)

    - Support for the User Access Override feature of ARMv8.2: this
    allows uaccess functions (get_user etc.) to be implemented using
    LDTR/STTR instructions. Such instructions, when run by the kernel,
    perform unprivileged accesses adding an extra level of protection.
    The set_fs() macro is used to "upgrade" such instruction to
    privileged accesses via the UAO bit

    - Half-precision floating point support (part of ARMv8.2)

    - Optimisations for CPUs with or without a hardware prefetcher (using
    run-time code patching)

    - copy_page performance improvement to deal with 128 bytes at a time

    - Sanity checks on the CPU capabilities (via CPUID) to prevent
    incompatible secondary CPUs from being brought up (e.g. weird
    big.LITTLE configurations)

    - valid_user_regs() reworked for better sanity check of the
    sigcontext information (restored pstate information)

    - ACPI parking protocol implementation

    - CONFIG_DEBUG_RODATA enabled by default

    - VDSO code marked as read-only

    - DEBUG_PAGEALLOC support

    - ARCH_HAS_UBSAN_SANITIZE_ALL enabled

    - Erratum workaround Cavium ThunderX SoC

    - set_pte_at() fix for PROT_NONE mappings

    - Code clean-ups"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (99 commits)
    arm64: kasan: Fix zero shadow mapping overriding kernel image shadow
    arm64: kasan: Use actual memory node when populating the kernel image shadow
    arm64: Update PTE_RDONLY in set_pte_at() for PROT_NONE permission
    arm64: Fix misspellings in comments.
    arm64: efi: add missing frame pointer assignment
    arm64: make mrs_s prefixing implicit in read_cpuid
    arm64: enable CONFIG_DEBUG_RODATA by default
    arm64: Rework valid_user_regs
    arm64: mm: check at build time that PAGE_OFFSET divides the VA space evenly
    arm64: KVM: Move kvm_call_hyp back to its original localtion
    arm64: mm: treat memstart_addr as a signed quantity
    arm64: mm: list kernel sections in order
    arm64: lse: deal with clobbered IP registers after branch via PLT
    arm64: mm: dump: Use VA_START directly instead of private LOWEST_ADDR
    arm64: kconfig: add submenu for 8.2 architectural features
    arm64: kernel: acpi: fix ioremap in ACPI parking protocol cpu_postboot
    arm64: Add support for Half precision floating point
    arm64: Remove fixmap include fragility
    arm64: Add workaround for Cavium erratum 27456
    arm64: mm: Mark .rodata as RO
    ...

    Linus Torvalds
     

19 Feb, 2016

1 commit

  • This wires up the existing generic huge-vmap feature, which allows
    ioremap() to use PMD or PUD sized block mappings. It also adds support
    to the unmap path for dealing with block mappings, which will allow us
    to unmap the __init region using unmap_kernel_range() in a subsequent
    patch.

    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     

27 Jan, 2016

1 commit

  • Commit 669f6f96c680a741257ada44a28b580df2e1fc25 introduced
    the script list-arch.sh, which uses the command "arch":

    ARCH=${1:-$(arch | sed 's/x86_64/x86/' | sed 's/i386/x86/')}

    It turns out that the "arch" command does not exist in my system (arch
    distro). Google found man pages which say "arch is deprecated command since
    release util-linux 2.13. Use uname -m" (util-linux 2.13 was released in 2007).
    I also found a debian bug reporting the lack of arch and being told to use
    uname -m https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446023

    But then, why it works in some distros? Apparently coreutils gained an
    optional arch command that needs to be explicitly enabled during compilation.
    Some distros enable it, others don't. Sigh.

    Signed-off-by: Diego Calleja
    Acked-by: Ingo Molnar
    Signed-off-by: Jonathan Corbet

    dcg
     

21 Jan, 2016

1 commit

  • Move the generic implementation to now that all
    architectures support it and remove the HAVE_DMA_ATTR Kconfig symbol now
    that everyone supports them.

    [valentinrothberg@gmail.com: remove leftovers in Kconfig]
    Signed-off-by: Christoph Hellwig
    Cc: "David S. Miller"
    Cc: Aurelien Jacquiot
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Helge Deller
    Cc: James Hogan
    Cc: Jesper Nilsson
    Cc: Koichi Yasutake
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Mikael Starvik
    Cc: Steven Miao
    Cc: Vineet Gupta
    Cc: Christian Borntraeger
    Cc: Joerg Roedel
    Cc: Sebastian Ott
    Signed-off-by: Valentin Rothberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

16 Jan, 2016

1 commit

  • With new refcounting we don't need to mark PMDs splitting. Let's drop
    code to handle this.

    Signed-off-by: Kirill A. Shutemov
    Tested-by: Sasha Levin
    Tested-by: Aneesh Kumar K.V
    Acked-by: Vlastimil Babka
    Acked-by: Jerome Marchand
    Cc: Andrea Arcangeli
    Cc: Hugh Dickins
    Cc: Dave Hansen
    Cc: Mel Gorman
    Cc: Rik van Riel
    Cc: Naoya Horiguchi
    Cc: Steve Capper
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: Christoph Lameter
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

13 Jan, 2016

1 commit

  • Pull UML updates from Richard Weinberger:
    "This contains beside of random fixes/cleanups two bigger changes:

    - seccomp support by Mickaël Salaün

    - IRQ rework by Anton Ivanov"

    * 'for-linus-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
    um: Use race-free temporary file creation
    um: Do not set unsecure permission for temporary file
    um: Fix build error and kconfig for i386
    um: Add seccomp support
    um: Add full asm/syscall.h support
    selftests/seccomp: Remove the need for HAVE_ARCH_TRACEHOOK
    um: Fix ptrace GETREGS/SETREGS bugs
    um: link with -lpthread
    um: Update UBD to use pread/pwrite family of functions
    um: Do not change hard IRQ flags in soft IRQ processing
    um: Prevent IRQ handler reentrancy
    uml: flush stdout before forking
    uml: fix hostfs mknod()

    Linus Torvalds
     

11 Jan, 2016

1 commit

  • This brings SECCOMP_MODE_STRICT and SECCOMP_MODE_FILTER support through
    prctl(2) and seccomp(2) to User-mode Linux for i386 and x86_64
    subarchitectures.

    secure_computing() is called first in handle_syscall() so that the
    syscall emulation will be aborted quickly if matching a seccomp rule.

    This is inspired from Meredydd Luff's patch
    (https://gerrit.chromium.org/gerrit/21425).

    Signed-off-by: Mickaël Salaün
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: Ingo Molnar
    Cc: Kees Cook
    Cc: Andy Lutomirski
    Cc: Will Drewry
    Cc: Chris Metcalf
    Cc: Michael Ellerman
    Cc: James Hogan
    Cc: Meredydd Luff
    Cc: David Drysdale
    Signed-off-by: Richard Weinberger
    Acked-by: Kees Cook

    Mickaël Salaün
     

04 Dec, 2015

1 commit

  • arm64 relies on the arm_arch_timer for sched_clock, so we can select
    HAVE_IRQ_TIME_ACCOUNTING and have the core sched-clock code enable the
    feature at runtime based on the rate.

    Reported-by: Mario Smarduch
    Signed-off-by: Will Deacon

    Will Deacon