06 Jan, 2019

1 commit

  • Pull arch/csky updates from Guo Ren:
    "Here are three main features (cpu_hotplug, basic ftrace, basic perf)
    and some bugfixes:

    Features:
    - Add CPU-hotplug support for SMP
    - Add ftrace with function trace and function graph trace
    - Add Perf support
    - Add EM_CSKY_OLD 39
    - optimize kernel panic print.
    - remove syscall_exit_work

    Bugfixes:
    - fix abiv2 mmap(... O_SYNC) failure
    - fix gdb coredump error
    - remove vdsp implement for kernel
    - fix qemu failure to bootup sometimes
    - fix ftrace call-graph panic
    - fix device tree node reference leak
    - remove meaningless header-y
    - fix save hi,lo,dspcr regs in switch_stack
    - remove unused members in processor.h"

    * tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux:
    csky: Add perf support for C-SKY
    csky: Add EM_CSKY_OLD 39
    clocksource/drivers/c-sky: fixup ftrace call-graph panic
    csky: ftrace call graph supported.
    csky: basic ftrace supported
    csky: remove unused members in processor.h
    csky: optimize kernel panic print.
    csky: stacktrace supported.
    csky: CPU-hotplug supported for SMP
    clocksource/drivers/c-sky: fixup qemu fail to bootup sometimes.
    csky: fixup save hi,lo,dspcr regs in switch_stack.
    csky: remove syscall_exit_work
    csky: fixup remove vdsp implement for kernel.
    csky: bugfix gdb coredump error.
    csky: fixup abiv2 mmap(... O_SYNC) failed.
    csky: define syscall_get_arch()
    elf-em.h: add EM_CSKY
    csky: remove meaningless header-y
    csky: Don't leak device tree node reference

    Linus Torvalds
     

31 Dec, 2018

2 commits


26 Dec, 2018

1 commit

  • Pull timer updates from Thomas Gleixner:
    "The timer department delivers the following christmas presents:

    Core code:

    - Use proper seqcount initializer to make lockdep happy

    - SPDX annotations and cleanup of license boilerplates

    - Use DEFINE_SHOW_ATTRIBUTE() instead of open coding it

    - Minor cleanups

    Driver code:

    - Add the sched_clock for the arc timer (Alexey Brodkin)

    - Change the file timer names for riscv, rockchip, tegra20, sun4i and
    meson6 (Daniel Lezcano)

    - Add the DT bindings for r8a7796, r8a77470 and r8a774a1 (Biju Das)

    - Remove the early platform driver registration for timer-ti-dm
    (Bartosz Golaszewski)

    - Provide the sched_clock for the riscv timer (Anup Patel)

    - Add support for ARM64 for the imx-gpt and convert the imx-tpm to
    the timer-of API (Anson Huang)

    - Remove useless irq protection for the imx-gpt (Clément Péron)

    - Remove a duplicate function name for the vt8500 (Dan Carpenter)

    - Remove obsolete inclusion of for the tegra20 (Geert
    Uytterhoeven)

    - Demote the prcmu and the custom sched_clock for the dbx500 and the
    ux500 (Linus Walleij)

    - Add a new timer clock for the RDA8810PL (Manivannan Sadhasivam)

    - Rename the macro to stick to the register name and add the delay
    timer (Martin Blumenstingl)

    - Switch the bcm2835 to the SPDX identifier (Stefan Wahren)

    - Fix the interrupt register access on the fttmr010 (Tao Ren)

    - Add missing of_node_put in the initialization path on the
    integrator-ap (Yangtao Li)"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
    dt-bindings: timer: Document RDA8810PL SoC timer
    clocksource/drivers/rda: Add clock driver for RDA8810PL SoC
    clocksource/drivers/meson6: Change name meson6_timer timer-meson6
    clocksource/drivers/sun4i: Change name sun4i_timer to timer-sun4i
    clocksource/drivers/tegra20: Change name tegra20_timer to timer-tegra20
    clocksource/drivers/rockchip: Change name rockchip_timer to timer-rockchip
    clocksource/drivers/riscv: Change name riscv_timer to timer-riscv
    clocksource/drivers/riscv_timer: Provide the sched_clock
    clocksource/drivers/timer-imx-tpm: Specify clock name for timer-of
    clocksource/drivers/fttmr010: Fix invalid interrupt register access
    clocksource/drivers/integrator-ap: Add missing of_node_put()
    clocksource/drivers/bcm2835: Switch to SPDX identifier
    dt-bindings: timer: renesas, cmt: Document r8a774a1 CMT support
    clocksource/drivers/timer-imx-tpm: Convert the driver to timer-of
    clocksource/drivers/arc_timer: Utilize generic sched_clock
    dt-bindings: timer: renesas, cmt: Document r8a77470 CMT support
    dt-bindings: timer: renesas, cmt: Document r8a7796 CMT support
    clocksource/drivers/imx-gpt: Remove unnecessary irq protection
    clocksource/drivers/imx-gpt: Add support for ARM64
    clocksource/drivers/meson6_timer: Implement the ARM delay timer
    ...

    Linus Torvalds
     

19 Dec, 2018

22 commits

  • Add clock driver for RDA Micro RDA8810PL SoC supporting OSTIMER
    and HWTIMER.

    RDA8810PL has two independent timers: OSTIMER (56 bit) and HWTIMER
    (64 bit). Each timer provides optional interrupt support. In this
    driver, OSTIMER is used for clockevents and HWTIMER is used for
    clocksource.

    Signed-off-by: Andreas Färber
    Signed-off-by: Manivannan Sadhasivam
    Signed-off-by: Daniel Lezcano

    Manivannan Sadhasivam
     
  • In order to unify the names in this directory, let's rename the driver to be
    prefixed with timer-*

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • In order to unify the names in this directory, let's rename the driver to be
    prefixed with timer-*

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • In order to unify the names in this directory, let's rename the driver to be
    prefixed with timer-*

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • In order to unify the names in this directory, let's rename the driver to be
    prefixed with timer-*

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • In order to unify the names in this directory, let's rename the driver to be
    prefixed with timer-*

    Reviewed-by: Palmer Dabbelt
    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     
  • Currently, we don't have a sched_clock registered for RISC-V systems.
    This means Linux time keeping will use jiffies (running at HZ) as the
    default sched_clock.

    To avoid this, we explicity provide sched_clock using RISC-V rdtime
    instruction (similar to riscv_timer clocksource).

    Signed-off-by: Anup Patel
    Reviewed-by: Palmer Dabbelt
    Signed-off-by: Daniel Lezcano

    Anup Patel
     
  • i.MX TPM needs "ipg" clock for register access and "per" clock for
    timer function, the driver gets "ipg" clock by searching the clock
    name, but timer-of initialization will get first clock in device
    tree TPM node since no clock name specified in of_clk, that means
    the "per" clock MUST be the first clock entry in device tree TPM
    node, this patch specifies clock name for of_clk to avoid this
    restriction, it makes TPM driver work properly with different sequence
    of clock entries in device tree TPM node.

    Signed-off-by: Anson Huang
    Signed-off-by: Daniel Lezcano

    Anson Huang
     
  • TIMER_INTR_MASK register (Base Address of Timer + 0x38) is not designed
    for masking interrupts on ast2500 chips, and it's not even listed in
    ast2400 datasheet, so it's not safe to access TIMER_INTR_MASK on aspeed
    chips.

    Similarly, TIMER_INTR_STATE register (Base Address of Timer + 0x34) is
    not interrupt status register on ast2400 and ast2500 chips. Although
    there is no side effect to reset the register in fttmr010_common_init(),
    it's just misleading to do so.

    Besides, "count_down" is renamed to "is_aspeed" in "fttmr010" structure,
    and more comments are added so the code is more readble.

    Signed-off-by: Tao Ren
    Reviewed-by: Linus Walleij
    Signed-off-by: Daniel Lezcano

    Tao Ren
     
  • The function of_find_node_by_path() acquires a reference to the node
    returned by it and that reference needs to be dropped by its caller.

    integrator_ap_timer_init_of() doesn't do that. The pri_node and the
    sec_node are used as an identifier to compare against the current
    node, so we can directly drop the refcount after getting the node from
    the path as it is not used as pointer.

    By dropping the refcount right after getting it, a single variable is
    needed instead of two.

    Fix this by use a single variable and drop the refcount right after
    of_find_node_by_path().

    Signed-off-by: Yangtao Li
    Signed-off-by: Daniel Lezcano

    Yangtao Li
     
  • Adopt the SPDX license identifier headers to ease license compliance
    management. Also drop the FSF address.

    Cc: Simon Arlott
    Signed-off-by: Stefan Wahren
    Reviewed-by: Eric Anholt
    Acked-by: Daniel Lezcano
    Signed-off-by: Daniel Lezcano

    Stefan Wahren
     
  • Convert the driver to use the timer_of helpers. This allows to handle
    timer base, clock and irq using common timer_of driver and it
    simplifies the code.

    Signed-off-by: Anson Huang
    Signed-off-by: Daniel Lezcano

    Anson Huang
     
  • It turned out we used to use default implementation of sched_clock()
    from kernel/sched/clock.c which was as precise as 1/HZ, i.e.
    by default we had 10 msec granularity of time measurement.

    Now given ARC built-in timers are clocked with the same frequency as
    CPU cores we may get much higher precision of time tracking.

    Thus we switch to generic sched_clock which really reads ARC hardware
    counters.

    This is especially helpful for measuring short events.
    That's what we used to have:
    ------------------------------>8------------------------
    $ perf stat /bin/sh -c /root/lmbench-master/bin/arc/hello > /dev/null

    Performance counter stats for '/bin/sh -c /root/lmbench-master/bin/arc/hello':

    10.000000 task-clock (msec) # 2.832 CPUs utilized
    1 context-switches # 0.100 K/sec
    1 cpu-migrations # 0.100 K/sec
    63 page-faults # 0.006 M/sec
    3049480 cycles # 0.305 GHz
    1091259 instructions # 0.36 insn per cycle
    256828 branches # 25.683 M/sec
    27026 branch-misses # 10.52% of all branches

    0.003530687 seconds time elapsed

    0.000000000 seconds user
    0.010000000 seconds sys
    ------------------------------>8------------------------

    And now we'll see:
    ------------------------------>8------------------------
    $ perf stat /bin/sh -c /root/lmbench-master/bin/arc/hello > /dev/null

    Performance counter stats for '/bin/sh -c /root/lmbench-master/bin/arc/hello':

    3.004322 task-clock (msec) # 0.865 CPUs utilized
    1 context-switches # 0.333 K/sec
    1 cpu-migrations # 0.333 K/sec
    63 page-faults # 0.021 M/sec
    2986734 cycles # 0.994 GHz
    1087466 instructions # 0.36 insn per cycle
    255209 branches # 84.947 M/sec
    26002 branch-misses # 10.19% of all branches

    0.003474829 seconds time elapsed

    0.003519000 seconds user
    0.000000000 seconds sys
    ------------------------------>8------------------------

    Note how much more meaningful is the second output - time spent for
    execution pretty much matches number of cycles spent (we're runnign
    @ 1GHz here).

    Signed-off-by: Alexey Brodkin
    Cc: Daniel Lezcano
    Cc: Vineet Gupta
    Cc: Thomas Gleixner
    Cc: stable@vger.kernel.org
    Acked-by: Vineet Gupta
    Signed-off-by: Daniel Lezcano

    Alexey Brodkin
     
  • shutdown and oneshot are already protected against irq interruptions

    Signed-off-by: Clément Péron
    Signed-off-by: Daniel Lezcano

    Clément Péron
     
  • This patch allows building and compile-testing the i.MX GPT driver
    also for ARM64. The delay_timer is only supported on ARMv7.

    Signed-off-by: Anson Huang
    Signed-off-by: Daniel Lezcano

    Anson Huang
     
  • Implement an ARM delay timer to be used for udelay(). This allows us to
    skip the delay loop calibration at boot.

    With this patch udelay() is now independent of CPU frequency changes.
    This is a good thing on Meson8, Meson8b and Meson8m2 because changing
    the CPU frequency requires running the CPU clock off the XTAL while
    changing the PLL or it's dividers. After changing the CPU clocks we need
    to wait a few usecs for the clock to become stable. So having an
    udelay() implementation that doesn't depend on the CPU frequency is
    beneficial.

    Suggested-by: Jianxin Pan
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Daniel Lezcano

    Martin Blumenstingl
     
  • This makes the driver use the names from S805 datasheet for the
    preprocessor #defines. This makes it easier to spot that the driver
    currently only supports Timer A (as clockevent with interrupt support)
    and Timer E (as clocksource without interrupts). Timer B, C and D (which
    are similar to Timer A) are currently not supported by the driver.

    While here, this also removes the internal "CED_ID" and "CSD_ID" defines
    which are used to identify the timer. These IDs are not described in the
    datasheet and thus make it harder to compare the code to what's written
    in the datasheet.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Daniel Lezcano

    Martin Blumenstingl
     
  • As of commit da4a686a2cfb077a ("ARM: smp_twd: convert to use CLKSRC_OF
    init"), this header file is no longer used.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Thierry Reding
    Signed-off-by: Daniel Lezcano

    Geert Uytterhoeven
     
  • This driver is no longer used as an early platform driver. Remove the
    registration macro.

    Signed-off-by: Bartosz Golaszewski
    Signed-off-by: Daniel Lezcano

    Bartosz Golaszewski
     
  • The two drivers used for Ux500 sched_clock use two Kconfig
    symbols to select which of the two gets used as sched_clock.

    This isn't right: the workaround is trying to make sure that
    the NONSTOP timer is used for sched_clock in order to keep
    that clock ticking consistently over a suspend/resume
    cycle. (Otherwise sched_clock simply stops during suspend
    and continues after resume).

    This will notably affect any timetstamped debug prints,
    so that they show the absolute number of seconds since the
    system was booted and does not loose wall-clock time during
    suspend and resume as if time stood still.

    The real way to fix this problem is to make sched_clock
    take advantage of any NONSTOP clock source on the system
    and adjust accordingly, not to try to work around this by
    using a different sched_clock depending on what system
    we are compiling for. This can solve the problem for
    everyone instead of providing a local solution.

    Cc: Baolin Wang
    Signed-off-by: Linus Walleij
    Signed-off-by: Daniel Lezcano

    Linus Walleij
     
  • Demote the DBx500 PRCMU clocksource to quality 100 and
    mark it as NONSTOP so it will still be used for
    timekeeping across suspend/resume.

    The Nomadik MTU timer which has higher precision will
    be used when the system is up and running, thanks to
    the recent changes properly utilizing the suspend
    clocksources.

    This was discussed back in 2011 when the driver was
    written, but the infrastructure was not available
    upstream to use this timer properly. Now the
    infrastructure is there, so let's finalize the work.

    Cc: Baolin Wang
    Signed-off-by: Linus Walleij
    Reviewed-by: Baolin Wang
    Signed-off-by: Daniel Lezcano

    Linus Walleij
     
  • We print the function name twice in a row in the error message so I've
    removed one.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Daniel Lezcano

    Dan Carpenter
     

12 Nov, 2018

1 commit

  • Pull x86 fixes from Thomas Gleixner:
    "A set of x86 fixes:

    - Cure the LDT remapping to user space on 5 level paging which ended
    up in the KASLR space

    - Remove LDT mapping before freeing the LDT pages

    - Make NFIT MCE handling more robust

    - Unbreak the VSMP build by removing the dependency on paravirt ops

    - Support broken PIT emulation on Microsoft hyperV

    - Don't trace vmware_sched_clock() to avoid tracer recursion

    - Remove -pipe from KBUILD CFLAGS which breaks clang and is also
    slower on GCC

    - Trivial coding style and typo fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cpu/vmware: Do not trace vmware_sched_clock()
    x86/vsmp: Remove dependency on pv_irq_ops
    x86/ldt: Remove unused variable in map_ldt_struct()
    x86/ldt: Unmap PTEs for the slot before freeing LDT pages
    x86/mm: Move LDT remap out of KASLR region on 5-level paging
    acpi/nfit, x86/mce: Validate a MCE's address before using it
    acpi/nfit, x86/mce: Handle only uncorrectable machine checks
    x86/build: Remove -pipe from KBUILD_CFLAGS
    x86/hyper-v: Fix indentation in hv_do_fast_hypercall16()
    Documentation/x86: Fix typo in zero-page.txt
    x86/hyper-v: Enable PIT shutdown quirk
    clockevents/drivers/i8253: Add support for PIT shutdown quirk

    Linus Torvalds
     

05 Nov, 2018

1 commit


04 Nov, 2018

1 commit

  • Add support for platforms where pit_shutdown() doesn't work because of a
    quirk in the PIT emulation. On these platforms setting the counter register
    to zero causes the PIT to start running again, negating the shutdown.

    Provide a global variable that controls whether the counter register is
    zero'ed, which platform specific code can override.

    Signed-off-by: Michael Kelley
    Signed-off-by: Thomas Gleixner
    Cc: "gregkh@linuxfoundation.org"
    Cc: "devel@linuxdriverproject.org"
    Cc: "daniel.lezcano@linaro.org"
    Cc: "virtualization@lists.linux-foundation.org"
    Cc: "jgross@suse.com"
    Cc: "akataria@vmware.com"
    Cc: "olaf@aepfle.de"
    Cc: "apw@canonical.com"
    Cc: vkuznets
    Cc: "jasowang@redhat.com"
    Cc: "marcelo.cerri@canonical.com"
    Cc: KY Srinivasan
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/1541303219-11142-2-git-send-email-mikelley@microsoft.com

    Michael Kelley
     

03 Nov, 2018

2 commits

  • The driver is for gx6605s SOC system timer and there are two
    same timers in gx6605s. We use one for clkevt and another one for
    clksrc.

    The timer is mmio map to access, so we need give mmio address in dts.

    The counter at 0x0 offset is clock event.
    The counter at 0x40 offset is clock source.

    Signed-off-by: Guo Ren
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Signed-off-by: Daniel Lezcano

    Guo Ren
     
  • The driver is for C-SKY SMP timer. It only supports oneshot event
    and 32bit overflow for clocksource. Per cpu core has one timer and
    all timers share one clock-counter-input from the same clocksource.

    This use mfcr&mtcr instructions to access the regs.

    Signed-off-by: Guo Ren
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Signed-off-by: Daniel Lezcano

    Guo Ren
     

26 Oct, 2018

2 commits

  • …l/git/palmer/riscv-linux

    Pull RISC-V updates from Palmer Dabbelt:
    "This patch set contains a lot (at least, for me) of improvements to
    the RISC-V kernel port:

    - The removal of some cacheinfo values that were bogus.

    - On systems with F but without D the kernel will not show the F
    extension to userspace, as it isn't actually supported.

    - Support for futexes.

    - Removal of some unused code.

    - Cleanup of some menuconfig entries.

    - Support for systems without a floating-point unit, and for building
    kernels that will never use the floating-point unit.

    - More fixes to the RV32I port, which regressed again. It's really
    time to get this into a regression test somewhere so I stop
    breaking it. Thanks to Zong for resurrecting it again!

    - Various fixes that resulted from a year old review of our original
    patch set that I finally got around to.

    - Various improvements to SMP support, largely based around having
    switched to logical hart numbering, as well as some interrupt
    improvements. This one is in the same patch set as above, thanks to
    Atish for sheparding everything though as my patch set was a bit of
    a mess.

    I'm pretty sure this is our largest patch set since the original
    kernel contribution, and it's certainly the one with the most
    contributors. While I don't have anything else I know I'm going to
    submit for the merge window, I would be somewhat surprised if I didn't
    screw anything up.

    Thanks for the help, everyone!"

    * tag 'riscv-for-linus-4.20-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: (31 commits)
    RISC-V: Cosmetic menuconfig changes
    riscv: move GCC version check for ARCH_SUPPORTS_INT128 to Kconfig
    RISC-V: remove the unused return_to_handler export
    RISC-V: Add futex support.
    RISC-V: Add FP register ptrace support for gdb.
    RISC-V: Mask out the F extension on systems without D
    RISC-V: Don't set cacheinfo.{physical_line_partition,attributes}
    RISC-V: Show IPI stats
    RISC-V: Show CPU ID and Hart ID separately in /proc/cpuinfo
    RISC-V: Use Linux logical CPU number instead of hartid
    RISC-V: Add logical CPU indexing for RISC-V
    RISC-V: Use WRITE_ONCE instead of direct access
    RISC-V: Use mmgrab()
    RISC-V: Rename im_okay_therefore_i_am to found_boot_cpu
    RISC-V: Rename riscv_of_processor_hart to riscv_of_processor_hartid
    RISC-V: Provide a cleaner raw_smp_processor_id()
    RISC-V: Disable preemption before enabling interrupts
    RISC-V: Comment on the TLB flush in smp_callin()
    RISC-V: Filter ISA and MMU values in cpuinfo
    RISC-V: Don't set cacheinfo.{physical_line_partition,attributes}
    ...

    Linus Torvalds
     
  • Pull timekeeping updates from Thomas Gleixner:
    "The timers and timekeeping departement provides:

    - Another large y2038 update with further preparations for providing
    the y2038 safe timespecs closer to the syscalls.

    - An overhaul of the SHCMT clocksource driver

    - SPDX license identifier updates

    - Small cleanups and fixes all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    tick/sched : Remove redundant cpu_online() check
    clocksource/drivers/dw_apb: Add reset control
    clocksource: Remove obsolete CLOCKSOURCE_OF_DECLARE
    clocksource/drivers: Unify the names to timer-* format
    clocksource/drivers/sh_cmt: Add R-Car gen3 support
    dt-bindings: timer: renesas: cmt: document R-Car gen3 support
    clocksource/drivers/sh_cmt: Properly line-wrap sh_cmt_of_table[] initializer
    clocksource/drivers/sh_cmt: Fix clocksource width for 32-bit machines
    clocksource/drivers/sh_cmt: Fixup for 64-bit machines
    clocksource/drivers/sh_tmu: Convert to SPDX identifiers
    clocksource/drivers/sh_mtu2: Convert to SPDX identifiers
    clocksource/drivers/sh_cmt: Convert to SPDX identifiers
    clocksource/drivers/renesas-ostm: Convert to SPDX identifiers
    clocksource: Convert to using %pOFn instead of device_node.name
    tick/broadcast: Remove redundant check
    RISC-V: Request newstat syscalls
    y2038: signal: Change rt_sigtimedwait to use __kernel_timespec
    y2038: socket: Change recvmmsg to use __kernel_timespec
    y2038: sched: Change sched_rr_get_interval to use __kernel_timespec
    y2038: utimes: Rework #ifdef guards for compat syscalls
    ...

    Linus Torvalds
     

23 Oct, 2018

3 commits

  • Setup the cpu_logical_map during boot. Moreover, every SBI call
    and PLIC context are based on the physical hartid. Use the logical
    CPU to hartid mapping to pass correct hartid to respective functions.

    Signed-off-by: Atish Patra
    Reviewed-by: Anup Patel
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Palmer Dabbelt

    Atish Patra
     
  • It's a bit confusing exactly what this function does: it actually
    returns the hartid of an OF processor node, failing with -1 on invalid
    nodes. I've changed the name to _hartid() in order to make that a bit
    more clear, as well as adding a comment.

    Signed-off-by: Palmer Dabbelt
    [Atish: code comment formatting update]
    Signed-off-by: Atish Patra
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Palmer Dabbelt

    Palmer Dabbelt
     
  • Pull arm64 updates from Catalin Marinas:
    "Apart from some new arm64 features and clean-ups, this also contains
    the core mmu_gather changes for tracking the levels of the page table
    being cleared and a minor update to the generic
    compat_sys_sigaltstack() introducing COMPAT_SIGMINSKSZ.

    Summary:

    - Core mmu_gather changes which allow tracking the levels of
    page-table being cleared together with the arm64 low-level flushing
    routines

    - Support for the new ARMv8.5 PSTATE.SSBS bit which can be used to
    mitigate Spectre-v4 dynamically without trapping to EL3 firmware

    - Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack

    - Optimise emulation of MRS instructions to ID_* registers on ARMv8.4

    - Support for Common Not Private (CnP) translations allowing threads
    of the same CPU to share the TLB entries

    - Accelerated crc32 routines

    - Move swapper_pg_dir to the rodata section

    - Trap WFI instruction executed in user space

    - ARM erratum 1188874 workaround (arch_timer)

    - Miscellaneous fixes and clean-ups"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (78 commits)
    arm64: KVM: Guests can skip __install_bp_hardening_cb()s HYP work
    arm64: cpufeature: Trap CTR_EL0 access only where it is necessary
    arm64: cpufeature: Fix handling of CTR_EL0.IDC field
    arm64: cpufeature: ctr: Fix cpu capability check for late CPUs
    Documentation/arm64: HugeTLB page implementation
    arm64: mm: Use __pa_symbol() for set_swapper_pgd()
    arm64: Add silicon-errata.txt entry for ARM erratum 1188873
    Revert "arm64: uaccess: implement unsafe accessors"
    arm64: mm: Drop the unused cpu parameter
    MAINTAINERS: fix bad sdei paths
    arm64: mm: Use #ifdef for the __PAGETABLE_P?D_FOLDED defines
    arm64: Fix typo in a comment in arch/arm64/mm/kasan_init.c
    arm64: xen: Use existing helper to check interrupt status
    arm64: Use daifflag_restore after bp_hardening
    arm64: daifflags: Use irqflags functions for daifflags
    arm64: arch_timer: avoid unused function warning
    arm64: Trap WFI executed in userspace
    arm64: docs: Document SSBS HWCAP
    arm64: docs: Fix typos in ELF hwcaps
    arm64/kprobes: remove an extra semicolon in arch_prepare_kprobe
    ...

    Linus Torvalds
     

07 Oct, 2018

1 commit

  • Add code to retrieve the reset property from the dw-apb timers and if
    the property is available, the safe operation is to assert the timer
    into reset, and followed by a deassert of the timer reset (brings the
    timer out of reset).

    This patch is needed for systems where the bootloader has left the timer
    not used in reset.

    - Trivial conflict with commit a74bd1ad7a:
    "Convert to using %pOFn instead of device_node.name"

    Reported-by: Marek Vasut
    Signed-off-by: Dinh Nguyen
    Signed-off-by: Daniel Lezcano

    Dinh Nguyen
     

03 Oct, 2018

3 commits