1. 20 Sep, 2019 29 commits
  2. 17 Sep, 2019 11 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7f2444d3
      Linus Torvalds authored
      Pull core timer updates from Thomas Gleixner:
       "Timers and timekeeping updates:
      
         - A large overhaul of the posix CPU timer code which is a preparation
           for moving the CPU timer expiry out into task work so it can be
           properly accounted on the task/process.
      
           An update to the bogus permission checks will come later during the
           merge window as feedback was not complete before heading of for
           travel.
      
         - Switch the timerqueue code to use cached rbtrees and get rid of the
           homebrewn caching of the leftmost node.
      
         - Consolidate hrtimer_init() + hrtimer_init_sleeper() calls into a
           single function
      
         - Implement the separation of hrtimers to be forced to expire in hard
           interrupt context even when PREEMPT_RT is enabled and mark the
           affected timers accordingly.
      
         - Implement a mechanism for hrtimers and the timer wheel to protect
           RT against priority inversion and live lock issues when a (hr)timer
           which should be canceled is currently executing the callback.
           Instead of infinitely spinning, the task which tries to cancel the
           timer blocks on a per cpu base expiry lock which is held and
           released by the (hr)timer expiry code.
      
         - Enable the Hyper-V TSC page based sched_clock for Hyper-V guests
           resulting in faster access to timekeeping functions.
      
         - Updates to various clocksource/clockevent drivers and their device
           tree bindings.
      
         - The usual small improvements all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (101 commits)
        posix-cpu-timers: Fix permission check regression
        posix-cpu-timers: Always clear head pointer on dequeue
        hrtimer: Add a missing bracket and hide `migration_base' on !SMP
        posix-cpu-timers: Make expiry_active check actually work correctly
        posix-timers: Unbreak CONFIG_POSIX_TIMERS=n build
        tick: Mark sched_timer to expire in hard interrupt context
        hrtimer: Add kernel doc annotation for HRTIMER_MODE_HARD
        x86/hyperv: Hide pv_ops access for CONFIG_PARAVIRT=n
        posix-cpu-timers: Utilize timerqueue for storage
        posix-cpu-timers: Move state tracking to struct posix_cputimers
        posix-cpu-timers: Deduplicate rlimit handling
        posix-cpu-timers: Remove pointless comparisons
        posix-cpu-timers: Get rid of 64bit divisions
        posix-cpu-timers: Consolidate timer expiry further
        posix-cpu-timers: Get rid of zero checks
        rlimit: Rewrite non-sensical RLIMIT_CPU comment
        posix-cpu-timers: Respect INFINITY for hard RTTIME limit
        posix-cpu-timers: Switch thread group sampling to array
        posix-cpu-timers: Restructure expiry array
        posix-cpu-timers: Remove cputime_expires
        ...
      7f2444d3
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c5f12fdb
      Linus Torvalds authored
      Pull x86 apic updates from Thomas Gleixner:
      
       - Cleanup the apic IPI implementation by removing duplicated code and
         consolidating the functions into the APIC core.
      
       - Implement a safe variant of the IPI broadcast mode. Contrary to
         earlier attempts this uses the core tracking of which CPUs have been
         brought online at least once so that a broadcast does not end up in
         some dead end in BIOS/SMM code when the CPU is still waiting for
         init. Once all CPUs have been brought up once, IPI broadcasting is
         enabled. Before that regular one by one IPIs are issued.
      
       - Drop the paravirt CR8 related functions as they have no user anymore
      
       - Initialize the APIC TPR to block interrupt 16-31 as they are reserved
         for CPU exceptions and should never be raised by any well behaving
         device.
      
       - Emit a warning when vector space exhaustion breaks the admin set
         affinity of an interrupt.
      
       - Make sure to use the NMI fallback when shutdown via reboot vector IPI
         fails. The original code had conditions which prevent the code path
         to be reached.
      
       - Annotate various APIC config variables as RO after init.
      
      [ The ipi broadcase change came in earlier through the cpu hotplug
        branch, but I left the explanation in the commit message since it was
        shared between the two different branches    - Linus ]
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
        x86/apic/vector: Warn when vector space exhaustion breaks affinity
        x86/apic: Annotate global config variables as "read-only after init"
        x86/apic/x2apic: Implement IPI shorthands support
        x86/apic/flat64: Remove the IPI shorthand decision logic
        x86/apic: Share common IPI helpers
        x86/apic: Remove the shorthand decision logic
        x86/smp: Enhance native_send_call_func_ipi()
        x86/smp: Move smp_function_call implementations into IPI code
        x86/apic: Provide and use helper for send_IPI_allbutself()
        x86/apic: Add static key to Control IPI shorthands
        x86/apic: Move no_ipi_broadcast() out of 32bit
        x86/apic: Add NMI_VECTOR wait to IPI shorthand
        x86/apic: Remove dest argument from __default_send_IPI_shortcut()
        x86/hotplug: Silence APIC and NMI when CPU is dead
        x86/cpu: Move arch_smt_update() to a neutral place
        x86/apic/uv: Make x2apic_extra_bits static
        x86/apic: Consolidate the apic local headers
        x86/apic: Move apic_flat_64 header into apic directory
        x86/apic: Move ipi header into apic directory
        x86/apic: Cleanup the include maze
        ...
      c5f12fdb
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a572ba63
      Linus Torvalds authored
      Pull core irq updates from Thomas Gleixner:
       "Updates from the irq departement:
      
         - Update the interrupt spreading code so it handles numa node with
           different CPU counts properly.
      
         - A large overhaul of the ARM GiCv3 driver to support new PPI and SPI
           ranges.
      
         - Conversion of all alloc_fwnode() users to use physical addresses
           instead of virtual addresses so the virtual addresses are not
           leaked. The physical address is sufficient to identify the
           associated interrupt chip.
      
         - Add support for Marvel MMP3, Amlogic Meson SM1 interrupt chips.
      
         - Enforce interrupt threading at compile time if RT is enabled.
      
         - Small updates and improvements all over the place"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
        irqchip/uniphier-aidet: Use devm_platform_ioremap_resource()
        irqdomain: Add the missing assignment of domain->fwnode for named fwnode
        irqchip/mmp: Coexist with GIC root IRQ controller
        irqchip/mmp: Mask off interrupts from other cores
        irqchip/mmp: Add missing chained_irq_{enter,exit}()
        irqchip/mmp: Do not use of_address_to_resource() to get mux regs
        irqchip/meson-gpio: Add support for meson sm1 SoCs
        dt-bindings: interrupt-controller: New binding for the meson sm1 SoCs
        genirq/affinity: Remove const qualifier from node_to_cpumask argument
        genirq/affinity: Spread vectors on node according to nr_cpu ratio
        genirq/affinity: Improve __irq_build_affinity_masks()
        irqchip: Remove dev_err() usage after platform_get_irq()
        irqchip: Add include guard to irq-partition-percpu.h
        irqchip/mmp: Do not call irq_set_default_host() on DT platforms
        irqchip/gic-v3-its: Remove the redundant set_bit for lpi_map
        irqchip/gic-v3: Add quirks for HIP06/07 invalid GICD_TYPER erratum 161010803
        irqchip/gic: Skip DT quirks when evaluating IIDR-based quirks
        irqchip/gic-v3: Warn about inconsistent implementations of extended ranges
        irqchip/gic-v3: Add EPPI range support
        ...
      a572ba63
    • Linus Torvalds's avatar
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 258b16ec
      Linus Torvalds authored
      Pull x86 interrupt updates from Thomas Gleixner:
       "A small set of changes to simplify and improve the interrupt handling
        in do_IRQ() by moving the common case into common code and thereby
        cleaning it up"
      
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Check for VECTOR_UNUSED directly
        x86/irq: Move IS_ERR_OR_NULL() check into common do_IRQ() code
        x86/irq: Improve definition of VECTOR_SHUTDOWN et al
      258b16ec
    • Linus Torvalds's avatar
      Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3fb7f3a6
      Linus Torvalds authored
      Pull x86 pti updates from Thomas Gleixner:
       "Two small PTI updates:
      
         - Handle unaligned addresses gracefully in pti_clone_pagetable(). Not
           an issue with current callers, but a correctness problem. Adds a
           warning so any caller which hands in an unaligned address gets
           pointed out clearly.
      
         - Prevent PTI functions from being invoked when PTI is disabled at
           boottime. While this does not cause any harm today, it's pointless
           code executed and prone to cause subtle issues if the PTI
           implementation changes internally over time"
      
      * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/pti: Do not invoke PTI functions when PTI is disabled
        x86/mm/pti: Handle unaligned address gracefully in pti_clone_pagetable()
      3fb7f3a6
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3cd04622
      Linus Torvalds authored
      Pull CPU hotplug updates from Thomas Gleixner:
       "A small update for the SMP hotplug code code:
      
         - Track "booted once" CPUs in a cpumask so the x86 APIC code has an
           easy way to decide whether broadcast IPIs are safe to use or not.
      
         - Implement a cpumask_or_equal() helper for the IPI broadcast
           evaluation.
      
           The above two changes have been also pulled into the x86/apic
           branch for implementing the conditional IPI broadcast feature.
      
         - Cache the number of online CPUs instead of reevaluating it over and
           over. num_online_cpus() is an unreliable snapshot anyway except
           when it is used outside a cpu hotplug locked region. The cached
           access is not changing this, but it's definitely faster than
           calculating the bitmap wheight especially in hot paths"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Cache number of online CPUs
        cpumask: Implement cpumask_or_equal()
        smp/hotplug: Track booted once CPUs in a cpumask
      3cd04622
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 16208cd6
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix to prevent the alarm timer code from returning ENOTSUPP
        to user space.
      
        ENOTSUPP is a purely kernel internal error code related to NFSv3 and
        should never be handed back to user space. The risk for ABI breakage
        is low as the number of systems which do not have a working RTC is
        very limited"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
      16208cd6
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.4-1' of git://git.infradead.org/linux-platform-drivers-x86 · ad062195
      Linus Torvalds authored
      Pull x86 platform-drivers updates from Andy Shevchenko:
      
       - ASUS WMI driver got a couple of updates, i.e. support of FAN is fixed
         for recent products and the charge threshold support has been added
      
       - Two uknown key events for Dell laptops are being ignored now to avoid
         spamming users with harmless messages
      
       - HP ZBook 17 G5 and ASUS Zenbook UX430UNR got accelerometer support.
      
       - Intel CherryTrail platforms had a regression with wake up. Now it's
         fixed
      
       - Intel PMC driver got fixed in order to work nicely in Xen
         environment
      
       - Intel Speed Select driver provides bucket vs core count relationship.
         Besides that the tools has been updated for better output
      
       - The PrivacyGuard is enabled on Lenovo ThinkPad laptops
      
       - Three tablets - Trekstor Primebook C11B 2-in-1, Irbis TW90 and Chuwi
         Surbook Mini - got touchscreen support
      
      * tag 'platform-drivers-x86-v5.4-1' of git://git.infradead.org/linux-platform-drivers-x86: (53 commits)
        MAINTAINERS: Switch PDx86 subsystem status to Odd Fixes
        platform/x86: asus-wmi: Refactor charge threshold to use the battery hooking API
        platform/x86: asus-wmi: Rename CHARGE_THRESHOLD to RSOC
        platform/x86: asus-wmi: Reorder ASUS_WMI_CHARGE_THRESHOLD
        tools/power/x86/intel-speed-select: Display core count for bucket
        platform/x86: ISST: Allow additional TRL MSRs
        tools/power/x86/intel-speed-select: Fix memory leak
        tools/power/x86/intel-speed-select: Output success/failed for command output
        tools/power/x86/intel-speed-select: Output human readable CPU list
        tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency
        tools/power/x86/intel-speed-select: Switch output to MHz
        tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq
        tools/power/x86/intel-speed-select: Fix cpu-count output
        tools/power/x86/intel-speed-select: Fix help option typo
        tools/power/x86/intel-speed-select: Fix package typo
        tools/power/x86/intel-speed-select: Fix a read overflow in isst_set_tdp_level_msr()
        platform/x86: intel_int0002_vgpio: Use device_init_wakeup
        platform/x86: intel_int0002_vgpio: Fix wakeups not working on Cherry Trail
        platform/x86: compal-laptop: Initialize "value" in ec_read_u8()
        platform/x86: touchscreen_dmi: Add info for the Trekstor Primebook C11B 2-in-1
        ...
      ad062195
    • Linus Torvalds's avatar
      Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7ac63f6b
      Linus Torvalds authored
      Pull x86 vmware updates from Ingo Molnar:
       "This updates the VMWARE guest driver with support for VMCALL/VMMCALL
        based hypercalls"
      
      * 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        input/vmmouse: Update the backdoor call with support for new instructions
        drm/vmwgfx: Update the backdoor call with support for new instructions
        x86/vmware: Add a header file for hypercall definitions
        x86/vmware: Update platform detection code for VMCALL/VMMCALL hypercalls
      7ac63f6b
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e2bddc20
      Linus Torvalds authored
      Pull x86 hyperv updates from Ingo Molnar:
       "Misc updates related to page size abstractions within the HyperV code,
        in preparation for future features"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        drivers: hv: vmbus: Replace page definition with Hyper-V specific one
        x86/hyperv: Add functions to allocate/deallocate page for Hyper-V
        x86/hyperv: Create and use Hyper-V page definitions
      e2bddc20
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6f246714
      Linus Torvalds authored
      Pull x86 platform update from Ingo Molnar:
       "The biggest change is the rework of the intel/iosf_mbi locking code
        which used a few non-standard locking patterns, to make it work under
        lockdep"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/uv: Fix kmalloc() NULL check routine
        x86/platform/intel/iosf_mbi Rewrite locking
      6f246714