1. 01 Oct, 2020 2 commits
  2. 28 Sep, 2020 10 commits
    • Julien Thierry's avatar
      arm_pmu: arm64: Use NMIs for PMU · d8f6267f
      Julien Thierry authored
      Add required PMU interrupt operations for NMIs. Request interrupt lines as
      NMIs when possible, otherwise fall back to normal interrupts.
      
      NMIs are only supported on the arm64 architecture with a GICv3 irqchip.
      
      [Alexandru E.: Added that NMIs only work on arm64 + GICv3, print message
      	when PMU is using NMIs]
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-8-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      d8f6267f
    • Julien Thierry's avatar
      arm_pmu: Introduce pmu_irq_ops · f76b130b
      Julien Thierry authored
      Currently the PMU interrupt can either be a normal irq or a percpu irq.
      Supporting NMI will introduce two cases for each existing one. It becomes
      a mess of 'if's when managing the interrupt.
      
      Define sets of callbacks for operations commonly done on the interrupt. The
      appropriate set of callbacks is selected at interrupt request time and
      simplifies interrupt enabling/disabling and freeing.
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-7-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      f76b130b
    • Julien Thierry's avatar
      KVM: arm64: pmu: Make overflow handler NMI safe · 95e92e45
      Julien Thierry authored
      kvm_vcpu_kick() is not NMI safe. When the overflow handler is called from
      NMI context, defer waking the vcpu to an irq_work queue.
      
      A vcpu can be freed while it's not running by kvm_destroy_vm(). Prevent
      running the irq_work for a non-existent vcpu by calling irq_work_sync() on
      the PMU destroy path.
      
      [Alexandru E.: Added irq_work_sync()]
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Suzuki K Pouloze <suzuki.poulose@arm.com>
      Cc: kvm@vger.kernel.org
      Cc: kvmarm@lists.cs.columbia.edu
      Link: https://lore.kernel.org/r/20200924110706.254996-6-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      95e92e45
    • Julien Thierry's avatar
      arm64: perf: Defer irq_work to IPI_IRQ_WORK · 05ab7281
      Julien Thierry authored
      When handling events, armv8pmu_handle_irq() calls perf_event_overflow(),
      and subsequently calls irq_work_run() to handle any work queued by
      perf_event_overflow(). As perf_event_overflow() raises IPI_IRQ_WORK when
      queuing the work, this isn't strictly necessary and the work could be
      handled as part of the IPI_IRQ_WORK handler.
      
      In the common case the IPI handler will run immediately after the PMU IRQ
      handler, and where the PE is heavily loaded with interrupts other handlers
      may run first, widening the window where some counters are disabled.
      
      In practice this window is unlikely to be a significant issue, and removing
      the call to irq_work_run() would make the PMU IRQ handler NMI safe in
      addition to making it simpler, so let's do that.
      
      [Alexandru E.: Reworded commit message]
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-5-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      05ab7281
    • Julien Thierry's avatar
      arm64: perf: Remove PMU locking · 2a0e2a02
      Julien Thierry authored
      The PMU is disabled and enabled, and the counters are programmed from
      contexts where interrupts or preemption is disabled.
      
      The functions to toggle the PMU and to program the PMU counters access the
      registers directly and don't access data modified by the interrupt handler.
      That, and the fact that they're always called from non-preemptible
      contexts, means that we don't need to disable interrupts or use a spinlock.
      
      [Alexandru E.: Explained why locking is not needed, removed WARN_ONs]
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-4-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      2a0e2a02
    • Mark Rutland's avatar
      arm64: perf: Avoid PMXEV* indirection · 0fdf1bb7
      Mark Rutland authored
      Currently we access the counter registers and their respective type
      registers indirectly. This requires us to write to PMSELR, issue an ISB,
      then access the relevant PMXEV* registers.
      
      This is unfortunate, because:
      
      * Under virtualization, accessing one register requires two traps to
        the hypervisor, even though we could access the register directly with
        a single trap.
      
      * We have to issue an ISB which we could otherwise avoid the cost of.
      
      * When we use NMIs, the NMI handler will have to save/restore the select
        register in case the code it preempted was attempting to access a
        counter or its type register.
      
      We can avoid these issues by directly accessing the relevant registers.
      This patch adds helpers to do so.
      
      In armv8pmu_enable_event() we still need the ISB to prevent the PE from
      reordering the write to PMINTENSET_EL1 register. If the interrupt is
      enabled before we disable the counter and the new event is configured,
      we might get an interrupt triggered by the previously programmed event
      overflowing, but which we wrongly attribute to the event that we are
      enabling. Execute an ISB after we disable the counter.
      
      In the process, remove the comment that refers to the ARMv7 PMU.
      
      [Julien T.: Don't inline read/write functions to avoid big code-size
      	increase, remove unused read_pmevtypern function,
      	fix counter index issue.]
      [Alexandru E.: Removed comment, removed trailing semicolons in macros,
      	added ISB]
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-3-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      0fdf1bb7
    • Alexandru Elisei's avatar
      arm64: perf: Add missing ISB in armv8pmu_enable_counter() · 490d7b7c
      Alexandru Elisei authored
      Writes to the PMXEVTYPER_EL0 register are not self-synchronising. In
      armv8pmu_enable_event(), the PE can reorder configuring the event type
      after we have enabled the counter and the interrupt. This can lead to an
      interrupt being asserted because of the previous event type that we were
      counting using the same counter, not the one that we've just configured.
      
      The same rationale applies to writes to the PMINTENSET_EL1 register. The PE
      can reorder enabling the interrupt at any point in the future after we have
      enabled the event.
      
      Prevent both situations from happening by adding an ISB just before we
      enable the event counter.
      
      Fixes: 03089688 ("arm64: Performance counters support")
      Reported-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> (Developerbox)
      Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20200924110706.254996-2-alexandru.elisei@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      490d7b7c
    • Robin Murphy's avatar
      perf: Add Arm CMN-600 PMU driver · 0ba64770
      Robin Murphy authored
      Initial driver for PMU event counting on the Arm CMN-600 interconnect.
      CMN sports an obnoxiously complex distributed PMU system as part of
      its debug and trace features, which can do all manner of things like
      sampling, cross-triggering and generating CoreSight trace. This driver
      covers the PMU functionality, plus the relevant aspects of watchpoints
      for simply counting matching flits.
      Tested-by: default avatarTsahi Zidenberg <tsahee@amazon.com>
      Tested-by: default avatarTuan Phan <tuanphan@os.amperecomputing.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      0ba64770
    • Robin Murphy's avatar
      perf: Add Arm CMN-600 DT binding · c8fdbbfa
      Robin Murphy authored
      Document the requirements for the CMN-600 DT binding. The internal
      topology is almost entirely discoverable by walking a tree of ID
      registers, but sadly both the starting point for that walk and the
      exact format of those registers are configuration-dependent and not
      discoverable from some sane fixed location. Oh well.
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c8fdbbfa
    • Shaokun Zhang's avatar
      arm64: perf: Add support caps under sysfs · f5be3a61
      Shaokun Zhang authored
      ARMv8.4-PMU introduces the PMMIR_EL1 registers and some new PMU events,
      like STALL_SLOT etc, are related to it. Let's add a caps directory to
      /sys/bus/event_source/devices/armv8_pmuv3_0/ and support slots from
      PMMIR_EL1 registers in this entry. The user programs can get the slots
      from sysfs directly.
      
      /sys/bus/event_source/devices/armv8_pmuv3_0/caps/slots is exposed
      under sysfs. Both ARMv8.4-PMU and STALL_SLOT event are implemented,
      it returns the slots from PMMIR_EL1, otherwise it will return 0.
      Signed-off-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/1600754025-53535-1-git-send-email-zhangshaokun@hisilicon.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      f5be3a61
  3. 18 Sep, 2020 2 commits
    • Mark Salter's avatar
      drivers/perf: thunderx2_pmu: Fix memory resource error handling · 688494a4
      Mark Salter authored
      In tx2_uncore_pmu_init_dev(), a call to acpi_dev_get_resources() is used
      to create a list _CRS resources which is searched for the device base
      address. There is an error check following this:
      
         if (!rentry->res)
                 return NULL
      
      In no case, will rentry->res be NULL, so the test is useless. Even
      if the test worked, it comes before the resource list memory is
      freed. None of this really matters as long as the ACPI table has
      the memory resource. Let's clean it up so that it makes sense and
      will give a meaningful error should firmware leave out the memory
      resource.
      
      Fixes: 69c32972 ("drivers/perf: Add Cavium ThunderX2 SoC UNCORE PMU driver")
      Signed-off-by: default avatarMark Salter <msalter@redhat.com>
      Link: https://lore.kernel.org/r/20200915204110.326138-2-msalter@redhat.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      688494a4
    • Mark Salter's avatar
      drivers/perf: xgene_pmu: Fix uninitialized resource struct · a76b8236
      Mark Salter authored
      This splat was reported on newer Fedora kernels booting on certain
      X-gene based machines:
      
       xgene-pmu APMC0D83:00: X-Gene PMU version 3
       Unable to handle kernel read from unreadable memory at virtual \
       address 0000000000004006
       ...
       Call trace:
        string+0x50/0x100
        vsnprintf+0x160/0x750
        devm_kvasprintf+0x5c/0xb4
        devm_kasprintf+0x54/0x60
        __devm_ioremap_resource+0xdc/0x1a0
        devm_ioremap_resource+0x14/0x20
        acpi_get_pmu_hw_inf.isra.0+0x84/0x15c
        acpi_pmu_dev_add+0xbc/0x21c
        acpi_ns_walk_namespace+0x16c/0x1e4
        acpi_walk_namespace+0xb4/0xfc
        xgene_pmu_probe_pmu_dev+0x7c/0xe0
        xgene_pmu_probe.part.0+0x2c0/0x310
        xgene_pmu_probe+0x54/0x64
        platform_drv_probe+0x60/0xb4
        really_probe+0xe8/0x4a0
        driver_probe_device+0xe4/0x100
        device_driver_attach+0xcc/0xd4
        __driver_attach+0xb0/0x17c
        bus_for_each_dev+0x6c/0xb0
        driver_attach+0x30/0x40
        bus_add_driver+0x154/0x250
        driver_register+0x84/0x140
        __platform_driver_register+0x54/0x60
        xgene_pmu_driver_init+0x28/0x34
        do_one_initcall+0x40/0x204
        do_initcalls+0x104/0x144
        kernel_init_freeable+0x198/0x210
        kernel_init+0x20/0x12c
        ret_from_fork+0x10/0x18
       Code: 91000400 110004e1 eb08009f 540000c0 (38646846)
       ---[ end trace f08c10566496a703 ]---
      
      This is due to use of an uninitialized local resource struct in the xgene
      pmu driver. The thunderx2_pmu driver avoids this by using the resource list
      constructed by acpi_dev_get_resources() rather than using a callback from
      that function. The callback in the xgene driver didn't fully initialize
      the resource. So get rid of the callback and search the resource list as
      done by thunderx2.
      
      Fixes: 832c927d ("perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver")
      Signed-off-by: default avatarMark Salter <msalter@redhat.com>
      Link: https://lore.kernel.org/r/20200915204110.326138-1-msalter@redhat.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      a76b8236
  4. 15 Sep, 2020 1 commit
  5. 07 Sep, 2020 3 commits
  6. 30 Aug, 2020 12 commits
    • Linus Torvalds's avatar
      Linux 5.9-rc3 · f75aef39
      Linus Torvalds authored
      f75aef39
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · e43327c7
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
      
       - fix regression in af_alg that affects iwd
      
       - restore polling delay in qat
      
       - fix double free in ingenic on error path
      
       - fix potential build failure in sa2ul due to missing Kconfig dependency
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: af_alg - Work around empty control messages without MSG_MORE
        crypto: sa2ul - add Kconfig selects to fix build error
        crypto: ingenic - Drop kfree for memory allocated with devm_kzalloc
        crypto: qat - add delay before polling mailbox
      e43327c7
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dcc5c6f0
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Three interrupt related fixes for X86:
      
         - Move disabling of the local APIC after invoking fixup_irqs() to
           ensure that interrupts which are incoming are noted in the IRR and
           not ignored.
      
         - Unbreak affinity setting.
      
           The rework of the entry code reused the regular exception entry
           code for device interrupts. The vector number is pushed into the
           errorcode slot on the stack which is then lifted into an argument
           and set to -1 because that's regs->orig_ax which is used in quite
           some places to check whether the entry came from a syscall.
      
           But it was overlooked that orig_ax is used in the affinity cleanup
           code to validate whether the interrupt has arrived on the new
           target. It turned out that this vector check is pointless because
           interrupts are never moved from one vector to another on the same
           CPU. That check is a historical leftover from the time where x86
           supported multi-CPU affinities, but not longer needed with the now
           strict single CPU affinity. Famous last words ...
      
         - Add a missing check for an empty cpumask into the matrix allocator.
      
           The affinity change added a warning to catch the case where an
           interrupt is moved on the same CPU to a different vector. This
           triggers because a condition with an empty cpumask returns an
           assignment from the allocator as the allocator uses for_each_cpu()
           without checking the cpumask for being empty. The historical
           inconsistent for_each_cpu() behaviour of ignoring the cpumask and
           unconditionally claiming that CPU0 is in the mask struck again.
           Sigh.
      
        plus a new entry into the MAINTAINER file for the HPE/UV platform"
      
      * tag 'x86-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
        x86/irq: Unbreak interrupt affinity setting
        x86/hotplug: Silence APIC only after all interrupts are migrated
        MAINTAINERS: Add entry for HPE Superdome Flex (UV) maintainers
      dcc5c6f0
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d2283cdc
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of fixes for interrupt chip drivers:
      
         - Revert the platform driver conversion of interrupt chip drivers as
           it turned out to create more problems than it solves.
      
         - Fix a trivial typo in the new module helpers which made probing
           reliably fail.
      
         - Small fixes in the STM32 and MIPS Ingenic drivers
      
         - The TI firmware rework which had badly managed dependencies and had
           to wait post rc1"
      
      * tag 'irq-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/ingenic: Leave parent IRQ unmasked on suspend
        irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake
        irqchip: Revert modular support for drivers using IRQCHIP_PLATFORM_DRIVER helperse
        irqchip: Fix probing deferal when using IRQCHIP_PLATFORM_DRIVER helpers
        arm64: dts: k3-am65: Update the RM resource types
        arm64: dts: k3-am65: ti-sci-inta/intr: Update to latest bindings
        arm64: dts: k3-j721e: ti-sci-inta/intr: Update to latest bindings
        irqchip/ti-sci-inta: Add support for INTA directly connecting to GIC
        irqchip/ti-sci-inta: Do not store TISCI device id in platform device id field
        dt-bindings: irqchip: Convert ti, sci-inta bindings to yaml
        dt-bindings: irqchip: ti, sci-inta: Update docs to support different parent.
        irqchip/ti-sci-intr: Add support for INTR being a parent to INTR
        dt-bindings: irqchip: Convert ti, sci-intr bindings to yaml
        dt-bindings: irqchip: ti, sci-intr: Update bindings to drop the usage of gic as parent
        firmware: ti_sci: Add support for getting resource with subtype
        firmware: ti_sci: Drop unused structure ti_sci_rm_type_map
        firmware: ti_sci: Drop the device id to resource type translation
      d2283cdc
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0063a82d
      Linus Torvalds authored
      Pull scheduler fix from Thomas Gleixner:
       "A single fix for the scheduler:
      
         - Make is_idle_task() __always_inline to prevent the compiler from
           putting it out of line into the wrong section because it's used
           inside noinstr sections"
      
      * tag 'sched-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Use __always_inline on is_idle_task()
      0063a82d
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b69bea8a
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A set of fixes for lockdep, tracing and RCU:
      
         - Prevent recursion by using raw_cpu_* operations
      
         - Fixup the interrupt state in the cpu idle code to be consistent
      
         - Push rcu_idle_enter/exit() invocations deeper into the idle path so
           that the lock operations are inside the RCU watching sections
      
         - Move trace_cpu_idle() into generic code so it's called before RCU
           goes idle.
      
         - Handle raw_local_irq* vs. local_irq* operations correctly
      
         - Move the tracepoints out from under the lockdep recursion handling
           which turned out to be fragile and inconsistent"
      
      * tag 'locking-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        lockdep,trace: Expose tracepoints
        lockdep: Only trace IRQ edges
        mips: Implement arch_irqs_disabled()
        arm64: Implement arch_irqs_disabled()
        nds32: Implement arch_irqs_disabled()
        locking/lockdep: Cleanup
        x86/entry: Remove unused THUNKs
        cpuidle: Move trace_cpu_idle() into generic code
        cpuidle: Make CPUIDLE_FLAG_TLB_FLUSHED generic
        sched,idle,rcu: Push rcu_idle deeper into the idle path
        cpuidle: Fixup IRQ state
        lockdep: Use raw_cpu_*() for per-cpu variables
      b69bea8a
    • Linus Torvalds's avatar
      Merge tag '5.9-rc2-smb-fix' of git://git.samba.org/sfrench/cifs-2.6 · 3edd8db2
      Linus Torvalds authored
      Pull cfis fix from Steve French:
       "DFS fix for referral problem when using SMB1"
      
      * tag '5.9-rc2-smb-fix' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix check of tcon dfs in smb1
      3edd8db2
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 8bb5021c
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Revert our removal of PROT_SAO, at least one user expressed an
         interest in using it on Power9. Instead don't allow it to be used in
         guests unless enabled explicitly at compile time.
      
       - A fix for a crash introduced by a recent change to FP handling.
      
       - Revert a change to our idle code that left Power10 with no idle
         support.
      
       - One minor fix for the new scv system call path to set PPR.
      
       - Fix a crash in our "generic" PMU if branch stack events were enabled.
      
       - A fix for the IMC PMU, to correctly identify host kernel samples.
      
       - The ADB_PMU powermac code was found to be incompatible with
         VMAP_STACK, so make them incompatible in Kconfig until the code can
         be fixed.
      
       - A build fix in drivers/video/fbdev/controlfb.c, and a documentation
         fix.
      
      Thanks to Alexey Kardashevskiy, Athira Rajeev, Christophe Leroy,
      Giuseppe Sacco, Madhavan Srinivasan, Milton Miller, Nicholas Piggin,
      Pratik Rajesh Sampat, Randy Dunlap, Shawn Anastasio, Vaidyanathan
      Srinivasan.
      
      * tag 'powerpc-5.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/32s: Disable VMAP stack which CONFIG_ADB_PMU
        Revert "powerpc/powernv/idle: Replace CPU feature check with PVR check"
        powerpc/perf: Fix reading of MSR[HV/PR] bits in trace-imc
        powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
        powerpc/64s: Fix crash in load_fp_state() due to fpexc_mode
        powerpc/64s: scv entry should set PPR
        Documentation/powerpc: fix malformed table in syscall64-abi
        video: fbdev: controlfb: Fix build for COMPILE_TEST=y && PPC_PMAC=n
        selftests/powerpc: Update PROT_SAO test to skip ISA 3.1
        powerpc/64s: Disallow PROT_SAO in LPARs by default
        Revert "powerpc/64s: Remove PROT_SAO support"
      8bb5021c
    • Linus Torvalds's avatar
      Merge tag 'usb-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 6f0306d1
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Let's try this again...  Here are some USB fixes for 5.9-rc3.
      
        This differs from the previous pull request for this release in that
        the usb gadget patch now does not break some systems, and actually
        does what it was intended to do. Many thanks to Marek Szyprowski for
        quickly noticing and testing the patch from Andy Shevchenko to resolve
        this issue.
      
        Additionally, some more new USB quirks have been added to get some new
        devices to work properly based on user reports.
      
        Other than that, the patches are all here, and they contain:
      
         - usb gadget driver fixes
      
         - xhci driver fixes
      
         - typec fixes
      
         - new quirks and ids
      
         - fixes for USB patches that went into 5.9-rc1.
      
        All of these have been tested in linux-next with no reported issues"
      
      * tag 'usb-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (33 commits)
        usb: storage: Add unusual_uas entry for Sony PSZ drives
        USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
        usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
        USB: gadget: u_f: Unbreak offset calculation in VLAs
        USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
        usb: typec: tcpm: Fix Fix source hard reset response for TDA 2.3.1.1 and TDA 2.3.1.2 failures
        USB: PHY: JZ4770: Fix static checker warning.
        USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
        USB: gadget: u_f: add overflow checks to VLA macros
        xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
        xhci: Do warm-reset when both CAS and XDEV_RESUME are set
        usb: host: xhci: fix ep context print mismatch in debugfs
        usb: uas: Add quirk for PNY Pro Elite
        tools: usb: move to tools buildsystem
        USB: Fix device driver race
        USB: Also match device drivers using the ->match vfunc
        usb: host: xhci-tegra: fix tegra_xusb_get_phy()
        usb: host: xhci-tegra: otg usb2/usb3 port init
        usb: hcd: Fix use after free in usb_hcd_pci_remove()
        usb: typec: ucsi: Hold con->lock for the entire duration of ucsi_register_port()
        ...
      6f0306d1
    • Linus Torvalds's avatar
      Merge tag 'edac_urgent_for_v5.9_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 42df60fc
      Linus Torvalds authored
      Pull EDAC fix from Borislav Petkov:
       "A fix to properly clear ghes_edac driver state on driver remove so
        that a subsequent load can probe the system properly (Shiju Jose)"
      
      * tag 'edac_urgent_for_v5.9_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/ghes: Fix NULL pointer dereference in ghes_edac_register()
      42df60fc
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.9-2' of git://git.infradead.org/users/hch/dma-mapping · c4011283
      Linus Torvalds authored
      Pull dma-mapping fix from Christoph Hellwig:
       "Fix a possibly uninitialized variable (Dan Carpenter)"
      
      * tag 'dma-mapping-5.9-2' of git://git.infradead.org/users/hch/dma-mapping:
        dma-pool: Fix an uninitialized variable bug in atomic_pool_expand()
      c4011283
    • Thomas Gleixner's avatar
      genirq/matrix: Deal with the sillyness of for_each_cpu() on UP · 784a0830
      Thomas Gleixner authored
      Most of the CPU mask operations behave the same way, but for_each_cpu() and
      it's variants ignore the cpumask argument and claim that CPU0 is always in
      the mask. This is historical, inconsistent and annoying behaviour.
      
      The matrix allocator uses for_each_cpu() and can be called on UP with an
      empty cpumask. The calling code does not expect that this succeeds but
      until commit e027ffff ("x86/irq: Unbreak interrupt affinity setting")
      this went unnoticed. That commit added a WARN_ON() to catch cases which
      move an interrupt from one vector to another on the same CPU. The warning
      triggers on UP.
      
      Add a check for the cpumask being empty to prevent this.
      
      Fixes: 2f75d9e1 ("genirq: Implement bitmap matrix allocator")
      Reported-by: default avatarkernel test robot <rong.a.chen@intel.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      784a0830
  7. 29 Aug, 2020 6 commits
  8. 28 Aug, 2020 4 commits
    • Linus Torvalds's avatar
      Merge tag 'block-5.9-2020-08-28' of git://git.kernel.dk/linux-block · 4d41ead6
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - nbd timeout fix (Hou)
      
       - device size fix for loop LOOP_CONFIGURE (Martijn)
      
       - MD pull from Song with raid5 stripe size fix (Yufen)
      
      * tag 'block-5.9-2020-08-28' of git://git.kernel.dk/linux-block:
        md/raid5: make sure stripe_size as power of two
        loop: Set correct device size when using LOOP_CONFIGURE
        nbd: restore default timeout when setting it to zero
      4d41ead6
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.9-2020-08-28' of git://git.kernel.dk/linux-block · 24148d86
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A few fixes in here, all based on reports and test cases from folks
        using it. Most of it is stable material as well:
      
         - Hashed work cancelation fix (Pavel)
      
         - poll wakeup signalfd fix
      
         - memlock accounting fix
      
         - nonblocking poll retry fix
      
         - ensure we never return -ERESTARTSYS for reads
      
         - ensure offset == -1 is consistent with preadv2() as documented
      
         - IOPOLL -EAGAIN handling fixes
      
         - remove useless task_work bounce for block based -EAGAIN retry"
      
      * tag 'io_uring-5.9-2020-08-28' of git://git.kernel.dk/linux-block:
        io_uring: don't bounce block based -EAGAIN retry off task_work
        io_uring: fix IOPOLL -EAGAIN retries
        io_uring: clear req->result on IOPOLL re-issue
        io_uring: make offset == -1 consistent with preadv2/pwritev2
        io_uring: ensure read requests go through -ERESTART* transformation
        io_uring: don't use poll handler if file can't be nonblocking read/written
        io_uring: fix imbalanced sqo_mm accounting
        io_uring: revert consumed iov_iter bytes on error
        io-wq: fix hang after cancelling pending hashed work
        io_uring: don't recurse on tsk->sighand->siglock with signalfd
      24148d86
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 005c5344
      Linus Torvalds authored
      Pull device properties framework fix from Rafael Wysocki:
       "Prevent the promotion of the secondary firmware node of a device to
        the primary one from leaking a pointer (Heikki Krogerus)"
      
      * tag 'devprop-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: Fix the secondary firmware node handling in set_primary_fwnode()
      005c5344
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0b2f18e7
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix two recent issues in the ACPI memory mappings management
        code and tighten up error handling in the ACPI driver for AMD SoCs
        (APD).
      
        Specifics:
      
         - Avoid redundant rounding to the page size in acpi_os_map_iomem() to
           address a recently introduced issue with the EFI memory map
           permission check on ARM64 (Ard Biesheuvel).
      
         - Fix acpi_release_memory() to wait until the memory mappings
           released by it have been really unmapped (Rafael Wysocki).
      
         - Make the ACPI driver for AMD SoCs (APD) check the return value of
           acpi_dev_get_property() to avoid failures in the cases when the
           device property under inspection is missing (Furquan Shaikh)"
      
      * tag 'acpi-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: OSL: Prevent acpi_release_memory() from returning too early
        ACPI: ioremap: avoid redundant rounding to OS page size
        ACPI: SoC: APD: Check return value of acpi_dev_get_property()
      0b2f18e7