1. Mar 25, 2021
  2. Mar 24, 2021
  3. Mar 18, 2021
    • Ashutosh Dixit's avatar
      drm/i915: Disable pread/pwrite ioctl's for future platforms (v3) · f8d1ff10
      Ashutosh Dixit authored
      The rationale for this change is roughly as follows:
      
       1. The functionality can be done entirely in userspace with a
          combination of mmap + memcpy
      
       2. The only reason anyone in userspace is still using it is because
          someone implemented bo_subdata that way in libdrm ages ago and
          they're all too lazy to write the 5 lines of code to do a map.
      
       3. This falls cleanly into the category of things which will only get
          more painful with local memory support.
      
      These ioctls aren't used much anymore by "real" userspace drivers.
      Vulkan has never used them and neither has the iris GL driver.  The old
      i965 GL driver does use PWRITE for glBufferSubData but it only supports
      up through Gen11; Gen12 was never enabled in i965.  The compute driver
      has never used PREAD/PWRITE.  The only remaining user is the media
      driver which uses it exactly twice and they're easily removed [1] so
      expecting them to drop it going forward is reasonable.
      
      IGT changes which handle this kernel change have also been submitted [2].
      
      [1] https://github.com/intel/media-driver/pull/1160
      [2] https://patchwork.freedesktop.org/series/81384/
      
      
      
      v2 (Jason Ekstrand):
       - Improved commit message with the status of all usermode drivers
       - A more future-proof platform check
      
      v3 (Jason Ekstrand):
       - Drop the HAS_LMEM checks as they're already covered by the version
         checks
      
      Signed-off-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
      Signed-off-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210317234014.2271006-4-jason@jlekstrand.net
      f8d1ff10
    • Jason Ekstrand's avatar
      drm/i915/gem: Drop relocation support on all new hardware (v6) · 2eb8e1a6
      Jason Ekstrand authored
      The Vulkan driver in Mesa for Intel hardware never uses relocations if
      it's running on a version of i915 that supports at least softpin which
      all versions of i915 supporting Gen12 do.  On the OpenGL side, Gen12+ is
      only supported by iris which never uses relocations.  The older i965
      driver in Mesa does use relocations but it only supports Intel hardware
      through Gen11 and has been deprecated for all hardware Gen9+.  The
      compute driver also never uses relocations.  This only leaves the media
      driver which is supposed to be switching to softpin going forward.
      Making softpin a requirement for all future hardware seems reasonable.
      
      There is one piece of hardware enabled by default in i915: RKL which was
      enabled by e22fa6f0
      
       which has not yet landed in drm-next so this
      almost but not really a userspace API change for RKL.  If it becomes a
      problem, we can always add !IS_ROCKETLAKE(eb->i915) to the condition.
      
      Rejecting relocations starting with newer Gen12 platforms has the
      benefit that we don't have to bother supporting it on platforms with
      local memory.  Given how much CPU touching of memory is required for
      relocations, not having to do so on platforms where not all memory is
      directly CPU-accessible carries significant advantages.
      
      v2 (Jason Ekstrand):
       - Allow TGL-LP platforms as they've already shipped
      
      v3 (Jason Ekstrand):
       - WARN_ON platforms with LMEM support in case the check is wrong
      
      v4 (Jason Ekstrand):
       - Call out Rocket Lake in the commit message
      
      v5 (Jason Ekstrand):
       - Drop the HAS_LMEM check as it's already covered by the version check
      
      v6 (Jason Ekstrand):
       - Move the check to eb_validate_vma() with all the other exec_object
         validation checks.
      
      Signed-off-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Reviewed-by: default avatarZbigniew Kempczyński <zbigniew.kempczynski@intel.com>
      Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210317234014.2271006-3-jason@jlekstrand.net
      2eb8e1a6
    • Jason Ekstrand's avatar
      drm/i915/gem: Drop legacy execbuffer support (v2) · b5b6f6a6
      Jason Ekstrand authored
      
      
      libdrm has supported the newer execbuffer2 ioctl and using it by default
      when it exists since libdrm commit b50964027bef which landed Mar 2, 2010.
      The i915 and i965 drivers in Mesa at the time both used libdrm and so
      did the Intel X11 back-end.  The SNA back-end for X11 has always used
      execbuffer2.
      
      v2 (Jason Ekstrand):
       - Add a comment saying what Linux version it's being removed in.
      
      Signed-off-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Acked-by: default avatarKeith Packard <keithp@keithp.com>
      Acked-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210317234014.2271006-2-jason@jlekstrand.net
      b5b6f6a6
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2021-03-16' of git://anongit.freedesktop.org/drm/drm-intel into drm-next · 06debd6e
      Dave Airlie authored
      
      
      Highlights:
      - Alderlake S enabling, via topic branch (Aditya, Anusha, Caz, José, Lucas, Matt, Tejas)
      - Refactor display code to shrink intel_display.c etc. (Dave)
      - Support more gen 9 and Tigerlake PCH combinations (Lyude, Tejas)
      - Add eDP MSO support (Jani)
      
      Display:
      - Refactor to support multiple PSR instances (Gwan-gyeong)
      - Link training debug logging updates (Sean)
      - Updates to eDP fixed mode handling (Jani)
      - Disable PSR2 on JSL/EHL (Edmund)
      - Support DDR5 and LPDDR5 for bandwidth computation (Clint, José)
      - Update VBT DP max link rate table (Shawn)
      - Disable the QSES check for HDCP2.2 over MST (Juston)
      - PSR updates, refactoring, selective fetch (José, Gwan-gyeong)
      - Display init sequence refactoring (Lucas)
      - Limit LSPCON to gen 9 and 10 platforms (Ankit)
      - Fix DDI lane polarity per VBT info (Uma)
      - Fix HDMI vswing programming location in mode set (Ville)
      - Various display improvements and refactorings and cleanups (Ville)
      - Clean up DDI clock routing and readout (Ville)
      - Workaround async flip + VT-d corruption on HSW/BDW (Ville)
      - SAGV watermark fixes and cleanups (Ville)
      - Silence pipe tracepoint WARNs (Ville)
      
      Other:
      - Remove require_force_probe protection from RKL, may need to be revisited (Tejas)
      - Detect loss of MMIO access (Matt)
      - GVT display improvements
      - drm/i915: Disable runtime power management during shutdown (Imre)
      - Perf/OA updates (Umesh)
      - Remove references to struct drm_device.pdev, via topic branch (Thomas)
      - Backmerge (Jani)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87v99rnk1g.fsf@intel.com
      06debd6e
  4. Mar 16, 2021
  5. Mar 15, 2021
    • Sean Paul's avatar
      drm/i915/dp_link_training: Convert DRM_DEBUG_KMS to drm_dbg_kms · 41ed4005
      Sean Paul authored
      
      
      One instance of DRM_DEBUG_KMS was leftover in dp_link_training, convert
      it to the new shiny.
      
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210310214845.29021-2-sean@poorly.run
      41ed4005
    • Sean Paul's avatar
      drm/i915/dp_link_training: Add newlines to debug messages · 65e3fe10
      Sean Paul authored
      
      
      This patch adds some newlines which are missing from debug messages.
      This will prevent logs from being stacked up in dmesg.
      
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210310214845.29021-1-sean@poorly.run
      65e3fe10
    • Umesh Nerlige Ramappa's avatar
      i915/perf: Start hrtimer only if sampling the OA buffer · be0bdd67
      Umesh Nerlige Ramappa authored
      SAMPLE_OA parameter enables sampling of OA buffer and results in a call
      to init the OA buffer which initializes the OA unit head/tail pointers.
      The OA_EXPONENT parameter controls the periodicity of the OA reports in
      the OA buffer and results in starting a hrtimer.
      
      Before gen12, all use cases required the use of the OA buffer and i915
      enforced this setting when vetting out the parameters passed. In these
      platforms the hrtimer was enabled if OA_EXPONENT was passed. This worked
      fine since it was implied that SAMPLE_OA is always passed.
      
      With gen12, this changed. Users can use perf without enabling the OA
      buffer as in OAR use cases. While an OAR use case should ideally not
      start the hrtimer, we see that passing an OA_EXPONENT parameter will
      start the hrtimer even though SAMPLE_OA is not specified. This results
      in an uninitialized OA buffer, so the head/tail pointers used to track
      the buffer are zero.
      
      This itself does not fail, but if we ran a use-case that SAMPLED the OA
      buffer previously, then the OA_TAIL register is still pointing to an old
      value. When the timer callback runs, it ends up calculating a
      wrong/large number of available reports. Since we do a spinlock_irq_save
      and start processing a large number of reports, NMI watchdog fires and
      causes a crash.
      
      Start the timer only if SAMPLE_OA is specified.
      
      v2:
      - Drop SAMPLE OA check when appending samples (Ashutosh)
      - Prevent read if OA buffer is not being sampled
      
      Fixes: 00a7f0d7
      
       ("drm/i915/tgl: Add perf support on TGL")
      Signed-off-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
      Reviewed-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
      Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210305210947.58751-1-umesh.nerlige.ramappa@intel.com
      be0bdd67
    • Linus Torvalds's avatar
      Linux 5.12-rc3 · 1e28eed1
      Linus Torvalds authored
      1e28eed1
    • Alexey Dobriyan's avatar
      prctl: fix PR_SET_MM_AUXV kernel stack leak · c995f12a
      Alexey Dobriyan authored
      
      
      Doing a
      
      	prctl(PR_SET_MM, PR_SET_MM_AUXV, addr, 1);
      
      will copy 1 byte from userspace to (quite big) on-stack array
      and then stash everything to mm->saved_auxv.
      AT_NULL terminator will be inserted at the very end.
      
      /proc/*/auxv handler will find that AT_NULL terminator
      and copy original stack contents to userspace.
      
      This devious scheme requires CAP_SYS_RESOURCE.
      
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c995f12a
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 70404fe3
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of irqchip updates:
      
         - Make the GENERIC_IRQ_MULTI_HANDLER configuration correct
      
         - Add a missing DT compatible string for the Ingenic driver
      
         - Remove the pointless debugfs_file pointer from struct irqdomain"
      
      * tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/ingenic: Add support for the JZ4760
        dt-bindings/irq: Add compatible string for the JZ4760B
        irqchip: Do not blindly select CONFIG_GENERIC_IRQ_MULTI_HANDLER
        ARM: ep93xx: Select GENERIC_IRQ_MULTI_HANDLER directly
        irqdomain: Remove debugfs_file from struct irq_domain
      70404fe3
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 802b31c0
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix in for hrtimers to prevent an interrupt storm caused by
        the lack of reevaluation of the timers which expire in softirq context
        under certain circumstances, e.g. when the clock was set"
      
      * tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hrtimer: Update softirq_expires_next correctly after __hrtimer_get_next_event()
      802b31c0
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c72cbc93
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "A set of scheduler updates:
      
         - Prevent a NULL pointer dereference in the migration_stop_cpu()
           mechanims
      
         - Prevent self concurrency of affine_move_task()
      
         - Small fixes and cleanups related to task migration/affinity setting
      
         - Ensure that sync_runqueues_membarrier_state() is invoked on the
           current CPU when it is in the cpu mask"
      
      * tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/membarrier: fix missing local execution of ipi_sync_rq_state()
        sched: Simplify set_affinity_pending refcounts
        sched: Fix affine_move_task() self-concurrency
        sched: Optimize migration_cpu_stop()
        sched: Collate affine_move_task() stoppers
        sched: Simplify migration_cpu_stop()
        sched: Fix migration_cpu_stop() requeueing
      c72cbc93
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 19469d2a
      Linus Torvalds authored
      Pull objtool fix from Thomas Gleixner:
       "A single objtool fix to handle the PUSHF/POPF validation correctly for
        the paravirt changes which modified arch_local_irq_restore not to use
        popf"
      
      * tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool,x86: Fix uaccess PUSHF/POPF validation
      19469d2a
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fa509ff8
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A couple of locking fixes:
      
         - A fix for the static_call mechanism so it handles unaligned
           addresses correctly.
      
         - Make u64_stats_init() a macro so every instance gets a seperate
           lockdep key.
      
         - Make seqcount_latch_init() a macro as well to preserve the static
           variable which is used for the lockdep key"
      
      * tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        seqlock,lockdep: Fix seqcount_latch_init()
        u64_stats,lockdep: Fix u64_stats_init() vs lockdep
        static_call: Fix the module key fixup
      fa509ff8
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 75013c6c
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - Make sure PMU internal buffers are flushed for per-CPU events too and
         properly handle PID/TID for large PEBS.
      
       - Handle the case properly when there's no PMU and therefore return an
         empty list of perf MSRs for VMX to switch instead of reading random
         garbage from the stack.
      
      * tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/perf: Use RET0 as default for guest_get_msrs to handle "no PMU" case
        perf/x86/intel: Set PERF_ATTACH_SCHED_CB for large PEBS and LBR
        perf/core: Flush PMU internal buffers for per-CPU events
      75013c6c
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 836d7f05
      Linus Torvalds authored
      Pull EFI fix from Ard Biesheuvel via Borislav Petkov:
       "Fix an oversight in the handling of EFI_RT_PROPERTIES_TABLE, which was
        added v5.10, but failed to take the SetVirtualAddressMap() RT service
        into account"
      
      * tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table
      836d7f05
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a7c10df
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - A couple of SEV-ES fixes and robustifications: verify usermode stack
         pointer in NMI is not coming from the syscall gap, correctly track
         IRQ states in the #VC handler and access user insn bytes atomically
         in same handler as latter cannot sleep.
      
       - Balance 32-bit fast syscall exit path to do the proper work on exit
         and thus not confuse audit and ptrace frameworks.
      
       - Two fixes for the ORC unwinder going "off the rails" into KASAN
         redzones and when ORC data is missing.
      
      * tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev-es: Use __copy_from_user_inatomic()
        x86/sev-es: Correctly track IRQ states in runtime #VC handler
        x86/sev-es: Check regs->sp is trusted before adjusting #VC IST stack
        x86/sev-es: Introduce ip_within_syscall_gap() helper
        x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls
        x86/unwind/orc: Silence warnings caused by missing ORC data
        x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
      0a7c10df
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · c3c7579f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Some more powerpc fixes for 5.12:
      
         - Fix wrong instruction encoding for lis in ppc_function_entry(),
           which could potentially lead to missed kprobes.
      
         - Fix SET_FULL_REGS on 32-bit and 64e, which prevented ptrace of
           non-volatile GPRs immediately after exec.
      
         - Clean up a missed SRR specifier in the recent interrupt rework.
      
         - Don't treat unrecoverable_exception() as an interrupt handler, it's
           called from other handlers so shouldn't do the interrupt entry/exit
           accounting itself.
      
         - Fix build errors caused by missing declarations for
           [en/dis]able_kernel_vsx().
      
        Thanks to Christophe Leroy, Daniel Axtens, Geert Uytterhoeven, Jiri
        Olsa, Naveen N. Rao, and Nicholas Piggin"
      
      * tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/traps: unrecoverable_exception() is not an interrupt handler
        powerpc: Fix missing declaration of [en/dis]able_kernel_vsx()
        powerpc/64s/exception: Clean up a missed SRR specifier
        powerpc: Fix inverted SET_FULL_REGS bitop
        powerpc/64s: Use symbolic macros for function entry encoding
        powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
      c3c7579f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 9d0c8e79
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "More fixes for ARM and x86"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: LAPIC: Advancing the timer expiration on guest initiated write
        KVM: x86/mmu: Skip !MMU-present SPTEs when removing SP in exclusive mode
        KVM: kvmclock: Fix vCPUs > 64 can't be online/hotpluged
        kvm: x86: annotate RCU pointers
        KVM: arm64: Fix exclusive limit for IPA size
        KVM: arm64: Reject VM creation when the default IPA size is unsupported
        KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
        KVM: arm64: Don't use cbz/adr with external symbols
        KVM: arm64: Fix range alignment when walking page tables
        KVM: arm64: Workaround firmware wrongly advertising GICv2-on-v3 compatibility
        KVM: arm64: Rename __vgic_v3_get_ich_vtr_el2() to __vgic_v3_get_gic_config()
        KVM: arm64: Don't access PMSELR_EL0/PMUSERENR_EL0 when no PMU is available
        KVM: arm64: Turn kvm_arm_support_pmu_v3() into a static key
        KVM: arm64: Fix nVHE hyp panic host context restore
        KVM: arm64: Avoid corrupting vCPU context register in guest exit
        KVM: arm64: nvhe: Save the SPE context early
        kvm: x86: use NULL instead of using plain integer as pointer
        KVM: SVM: Connect 'npt' module param to KVM's internal 'npt_enabled'
        KVM: x86: Ensure deadline timer has truly expired before posting its IRQ
      9d0c8e79
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 50eb842f
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "28 patches.
      
        Subsystems affected by this series: mm (memblock, pagealloc, hugetlb,
        highmem, kfence, oom-kill, madvise, kasan, userfaultfd, memcg, and
        zram), core-kernel, kconfig, fork, binfmt, MAINTAINERS, kbuild, and
        ia64"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (28 commits)
        zram: fix broken page writeback
        zram: fix return value on writeback_store
        mm/memcg: set memcg when splitting page
        mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument
        ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
        ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
        mm/userfaultfd: fix memory corruption due to writeprotect
        kasan: fix KASAN_STACK dependency for HW_TAGS
        kasan, mm: fix crash with HW_TAGS and DEBUG_PAGEALLOC
        mm/madvise: replace ptrace attach requirement for process_madvise
        include/linux/sched/mm.h: use rcu_dereference in in_vfork()
      ...
      50eb842f