1. 25 Oct, 2021 3 commits
  2. 24 Oct, 2021 6 commits
    • Andreas Gruenbacher's avatar
      iov_iter: Introduce nofault flag to disable page faults · 3337ab08
      Andreas Gruenbacher authored
      Introduce a new nofault flag to indicate to iov_iter_get_pages not to
      fault in user pages.
      
      This is implemented by passing the FOLL_NOFAULT flag to get_user_pages,
      which causes get_user_pages to fail when it would otherwise fault in a
      page. We'll use the ->nofault flag to prevent iomap_dio_rw from faulting
      in pages when page faults are not allowed.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      3337ab08
    • Andreas Gruenbacher's avatar
      gup: Introduce FOLL_NOFAULT flag to disable page faults · 55b8fe70
      Andreas Gruenbacher authored
      Introduce a new FOLL_NOFAULT flag that causes get_user_pages to return
      -EFAULT when it would otherwise trigger a page fault.  This is roughly
      similar to FOLL_FAST_ONLY but available on all architectures, and less
      fragile.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      55b8fe70
    • Andreas Gruenbacher's avatar
      iomap: Add done_before argument to iomap_dio_rw · 4fdccaa0
      Andreas Gruenbacher authored
      Add a done_before argument to iomap_dio_rw that indicates how much of
      the request has already been transferred.  When the request succeeds, we
      report that done_before additional bytes were tranferred.  This is
      useful for finishing a request asynchronously when part of the request
      has already been completed synchronously.
      
      We'll use that to allow iomap_dio_rw to be used with page faults
      disabled: when a page fault occurs while submitting a request, we
      synchronously complete the part of the request that has already been
      submitted.  The caller can then take care of the page fault and call
      iomap_dio_rw again for the rest of the request, passing in the number of
      bytes already tranferred.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
      4fdccaa0
    • Andreas Gruenbacher's avatar
      iomap: Support partial direct I/O on user copy failures · 97308f8b
      Andreas Gruenbacher authored
      In iomap_dio_rw, when iomap_apply returns an -EFAULT error and the
      IOMAP_DIO_PARTIAL flag is set, complete the request synchronously and
      return a partial result.  This allows the caller to deal with the page
      fault and retry the remainder of the request.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
      97308f8b
    • Andreas Gruenbacher's avatar
      iomap: Fix iomap_dio_rw return value for user copies · 42c498c1
      Andreas Gruenbacher authored
      When a user copy fails in one of the helpers of iomap_dio_rw, fail with
      -EFAULT instead of returning 0.  This matches what iomap_dio_bio_actor
      returns when it gets an -EFAULT from bio_iov_iter_get_pages.  With these
      changes, iomap_dio_actor now consistently fails with -EFAULT when a user
      page cannot be faulted in.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      42c498c1
    • Andreas Gruenbacher's avatar
      gfs2: Fix mmap + page fault deadlocks for buffered I/O · 00bfe02f
      Andreas Gruenbacher authored
      In the .read_iter and .write_iter file operations, we're accessing
      user-space memory while holding the inode glock.  There is a possibility
      that the memory is mapped to the same file, in which case we'd recurse
      on the same glock.
      
      We could detect and work around this simple case of recursive locking,
      but more complex scenarios exist that involve multiple glocks,
      processes, and cluster nodes, and working around all of those cases
      isn't practical or even possible.
      
      Avoid these kinds of problems by disabling page faults while holding the
      inode glock.  If a page fault would occur, we either end up with a
      partial read or write or with -EFAULT if nothing could be read or
      written.  In either case, we know that we're not done with the
      operation, so we indicate that we're willing to give up the inode glock
      and then we fault in the missing pages.  If that made us lose the inode
      glock, we return a partial read or write.  Otherwise, we resume the
      operation.
      
      This locking problem was originally reported by Jan Kara.  Linus came up
      with the idea of disabling page faults.  Many thanks to Al Viro and
      Matthew Wilcox for their feedback.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      00bfe02f
  3. 20 Oct, 2021 6 commits
    • Andreas Gruenbacher's avatar
      gfs2: Eliminate ip->i_gh · 1b223f70
      Andreas Gruenbacher authored
      Now that gfs2_file_buffered_write is the only remaining user of
      ip->i_gh, we can move the glock holder to the stack (or rather, use the
      one we already have on the stack); there is no need for keeping the
      holder in the inode anymore.
      
      This is slightly complicated by the fact that we're using ip->i_gh for
      the statfs inode in gfs2_file_buffered_write as well.  Writing to the
      statfs inode isn't very common, so allocate the statfs holder
      dynamically when needed.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      1b223f70
    • Andreas Gruenbacher's avatar
      gfs2: Move the inode glock locking to gfs2_file_buffered_write · b924bdab
      Andreas Gruenbacher authored
      So far, for buffered writes, we were taking the inode glock in
      gfs2_iomap_begin and dropping it in gfs2_iomap_end with the intention of
      not holding the inode glock while iomap_write_actor faults in user
      pages.  It turns out that iomap_write_actor is called inside iomap_begin
      ... iomap_end, so the user pages were still faulted in while holding the
      inode glock and the locking code in iomap_begin / iomap_end was
      completely pointless.
      
      Move the locking into gfs2_file_buffered_write instead.  We'll take care
      of the potential deadlocks due to faulting in user pages while holding a
      glock in a subsequent patch.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      b924bdab
    • Bob Peterson's avatar
      gfs2: Introduce flag for glock holder auto-demotion · dc732906
      Bob Peterson authored
      This patch introduces a new HIF_MAY_DEMOTE flag and infrastructure that
      will allow glocks to be demoted automatically on locking conflicts.
      When a locking request comes in that isn't compatible with the locking
      state of an active holder and that holder has the HIF_MAY_DEMOTE flag
      set, the holder will be demoted before the incoming locking request is
      granted.
      
      Note that this mechanism demotes active holders (with the HIF_HOLDER
      flag set), while before we were only demoting glocks without any active
      holders.  This allows processes to keep hold of locks that may form a
      cyclic locking dependency; the core glock logic will then break those
      dependencies in case a conflicting locking request occurs.  We'll use
      this to avoid giving up the inode glock proactively before faulting in
      pages.
      
      Processes that allow a glock holder to be taken away indicate this by
      calling gfs2_holder_allow_demote(), which sets the HIF_MAY_DEMOTE flag.
      Later, they call gfs2_holder_disallow_demote() to clear the flag again,
      and then they check if their holder is still queued: if it is, they are
      still holding the glock; if it isn't, they can re-acquire the glock (or
      abort).
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      dc732906
    • Andreas Gruenbacher's avatar
      gfs2: Clean up function may_grant · 61444649
      Andreas Gruenbacher authored
      Pass the first current glock holder into function may_grant and
      deobfuscate the logic there.
      
      While at it, switch from BUG_ON to GLOCK_BUG_ON in may_grant.  To make
      that build cleanly, de-constify the may_grant arguments.
      
      We're now using function find_first_holder in do_promote, so move the
      function's definition above do_promote.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      61444649
    • Andreas Gruenbacher's avatar
      gfs2: Add wrapper for iomap_file_buffered_write · 2eb7509a
      Andreas Gruenbacher authored
      Add a wrapper around iomap_file_buffered_write.  We'll add code for when
      the operation needs to be retried here later.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      2eb7509a
    • Andreas Gruenbacher's avatar
      iov_iter: Introduce fault_in_iov_iter_writeable · cdd591fc
      Andreas Gruenbacher authored
      Introduce a new fault_in_iov_iter_writeable helper for safely faulting
      in an iterator for writing.  Uses get_user_pages() to fault in the pages
      without actually writing to them, which would be destructive.
      
      We'll use fault_in_iov_iter_writeable in gfs2 once we've determined that
      the iterator passed to .read_iter isn't in memory.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      cdd591fc
  4. 18 Oct, 2021 3 commits
    • Andreas Gruenbacher's avatar
      iov_iter: Turn iov_iter_fault_in_readable into fault_in_iov_iter_readable · a6294593
      Andreas Gruenbacher authored
      Turn iov_iter_fault_in_readable into a function that returns the number
      of bytes not faulted in, similar to copy_to_user, instead of returning a
      non-zero value when any of the requested pages couldn't be faulted in.
      This supports the existing users that require all pages to be faulted in
      as well as new users that are happy if any pages can be faulted in.
      
      Rename iov_iter_fault_in_readable to fault_in_iov_iter_readable to make
      sure this change doesn't silently break things.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      a6294593
    • Andreas Gruenbacher's avatar
      gup: Turn fault_in_pages_{readable,writeable} into fault_in_{readable,writeable} · bb523b40
      Andreas Gruenbacher authored
      Turn fault_in_pages_{readable,writeable} into versions that return the
      number of bytes not faulted in, similar to copy_to_user, instead of
      returning a non-zero value when any of the requested pages couldn't be
      faulted in.  This supports the existing users that require all pages to
      be faulted in as well as new users that are happy if any pages can be
      faulted in.
      
      Rename the functions to fault_in_{readable,writeable} to make sure
      this change doesn't silently break things.
      
      Neither of these functions is entirely trivial and it doesn't seem
      useful to inline them, so move them to mm/gup.c.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      bb523b40
    • Andreas Gruenbacher's avatar
      powerpc/kvm: Fix kvm_use_magic_page · 0c8eb288
      Andreas Gruenbacher authored
      When switching from __get_user to fault_in_pages_readable, commit
      9f9eae5c broke kvm_use_magic_page: like __get_user,
      fault_in_pages_readable returns 0 on success.
      
      Fixes: 9f9eae5c ("powerpc/kvm: Prefer fault_in_pages_readable function")
      Cc: stable@vger.kernel.org # v4.18+
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      0c8eb288
  5. 12 Oct, 2021 1 commit
  6. 11 Oct, 2021 1 commit
  7. 10 Oct, 2021 3 commits
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · efb52a7d
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A bit of a big batch, partly because I didn't send any last week, and
        also just because the BPF fixes happened to land this week.
      
        Summary:
      
         - Fix a regression hit by the IPR SCSI driver, introduced by the
           recent addition of MSI domains on pseries.
      
         - A big series including 8 BPF fixes, some with potential security
           impact and the rest various code generation issues.
      
         - Fix our program check assembler entry path, which was accidentally
           jumping into a gas macro and generating strange stack frames, which
           could confuse find_bug().
      
         - A couple of fixes, and related changes, to fix corner cases in our
           machine check handling.
      
         - Fix our DMA IOMMU ops, which were not always returning the optimal
           DMA mask, leading to at least one device falling back to 32-bit DMA
           when it shouldn't.
      
         - A fix for KUAP handling on 32-bit Book3S.
      
         - Fix crashes seen when kdumping on some pseries systems.
      
        Thanks to Naveen N. Rao, Nicholas Piggin, Alexey Kardashevskiy, Cédric
        Le Goater, Christophe Leroy, Mahesh Salgaonkar, Abdul Haleem,
        Christoph Hellwig, Johan Almbladh, Stan Johnson"
      
      * tag 'powerpc-5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init
        powerpc/32s: Fix kuap_kernel_restore()
        powerpc/pseries/msi: Add an empty irq_write_msi_msg() handler
        powerpc/64s: Fix unrecoverable MCE calling async handler from NMI
        powerpc/64/interrupt: Reconcile soft-mask state in NMI and fix false BUG
        powerpc/64: warn if local irqs are enabled in NMI or hardirq context
        powerpc/traps: do not enable irqs in _exception
        powerpc/64s: fix program check interrupt emergency stack path
        powerpc/bpf ppc32: Fix BPF_SUB when imm == 0x80000000
        powerpc/bpf ppc32: Do not emit zero extend instruction for 64-bit BPF_END
        powerpc/bpf ppc32: Fix JMP32_JSET_K
        powerpc/bpf ppc32: Fix ALU32 BPF_ARSH operation
        powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
        powerpc/security: Add a helper to query stf_barrier type
        powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
        powerpc/bpf: Fix BPF_MOD when imm == 1
        powerpc/bpf: Validate branch ranges
        powerpc/lib: Add helper to check if offset is within conditional branch range
        powerpc/iommu: Report the correct most efficient DMA mask for PCI devices
      efb52a7d
    • Linus Torvalds's avatar
      Merge tag 'objtool_urgent_for_v5.15_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 75cd9b01
      Linus Torvalds authored
      Pull objtool fixes from Borislav Petkov:
      
       - Remove an extra section.len member in favour of section.sh_size
      
       - Align .altinstructions section creation with the kernel's by creating
         them with entry size of 0
      
       - Fix objtool to convert a reloc symbol to a section offset and not to
         not warn about not knowing how
      
      * tag 'objtool_urgent_for_v5.15_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Remove redundant 'len' field from struct section
        objtool: Make .altinstructions section entry size consistent
        objtool: Remove reloc symbol type checks in get_alt_entry()
      75cd9b01
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.15_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c22ccc4a
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - A FPU fix to properly handle invalid MXCSR values: 32-bit masks them
         out due to historical reasons and 64-bit kernels reject them
      
       - A fix to clear X86_FEATURE_SMAP when support for is not
         config-enabled
      
       - Three fixes correcting misspelled Kconfig symbols used in code
      
       - Two resctrl object cleanup fixes
      
       - Yet another attempt at fixing the neverending saga of botched x86
         timers, this time because some incredibly smart hardware decides to
         turn off the HPET timer in a low power state - who cares if the OS is
         relying on it...
      
       - Check the full return value range of an SEV VMGEXIT call to determine
         whether it returned an error
      
      * tag 'x86_urgent_for_v5.15_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Restore the masking out of reserved MXCSR bits
        x86/Kconfig: Correct reference to MWINCHIP3D
        x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
        x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n
        x86/entry: Correct reference to intended CONFIG_64_BIT
        x86/resctrl: Fix kfree() of the wrong type in domain_add_cpu()
        x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
        x86/hpet: Use another crystalball to evaluate HPET usability
        x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0]
      c22ccc4a
  8. 09 Oct, 2021 5 commits
  9. 08 Oct, 2021 12 commits
    • Linus Torvalds's avatar
      Merge tag 's390-5.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · f84fc4e3
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Fix potential memory leak on a error path in eBPF
      
       - Fix handling of zpci device on reserve
      
      * tag 's390-5.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/pci: fix zpci_zdev_put() on reserve
        bpf, s390: Fix potential memory leak about jit_data
      f84fc4e3
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20211008' of git://github.com/jcmvbkbc/linux-xtensa · 5d6ab0bb
      Linus Torvalds authored
      Pull xtensa fixes from Max Filippov:
      
       - fix build/boot issues caused by CONFIG_OF vs CONFIC_USE_OF usage
      
       - fix reset handler for xtfpga boards
      
      * tag 'xtensa-20211008' of git://github.com/jcmvbkbc/linux-xtensa:
        xtensa: xtfpga: Try software restart before simulating CPU reset
        xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
        xtensa: call irqchip_init only when CONFIG_USE_OF is selected
        xtensa: use CONFIG_USE_OF instead of CONFIG_OF
      5d6ab0bb
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.15b-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 3946b46c
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - fix two minor issues in the Xen privcmd driver plus a cleanup patch
         for that driver
      
       - fix multiple issues related to running as PVH guest and some related
         earlyprintk fixes for other Xen guest types
      
       - fix an issue introduced in 5.15 the Xen balloon driver
      
      * tag 'for-linus-5.15b-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/balloon: fix cancelled balloon action
        xen/x86: adjust data placement
        x86/PVH: adjust function/data placement
        xen/x86: hook up xen_banner() also for PVH
        xen/x86: generalize preferred console model from PV to PVH Dom0
        xen/x86: make "earlyprintk=xen" work for HVM/PVH DomU
        xen/x86: allow "earlyprintk=xen" to work for PV Dom0
        xen/x86: make "earlyprintk=xen" work better for PVH Dom0
        xen/x86: allow PVH Dom0 without XEN_PV=y
        xen/x86: prevent PVH type from getting clobbered
        xen/privcmd: drop "pages" parameter from xen_remap_pfn()
        xen/privcmd: fix error handling in mmap-resource processing
        xen/privcmd: replace kcalloc() by kvcalloc() when allocating empty pages
      3946b46c
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-fixes-5.15' of... · 0dcf60d0
      Linus Torvalds authored
      Merge tag 'asm-generic-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
      
      Pull asm-generic fixes from Arnd Bergmann:
       "There is one build fix for Arm platforms that ended up impacting most
        architectures because of the way the drivers/firmware Kconfig file is
        wired up:
      
        The CONFIG_QCOM_SCM dependency have caused a number of randconfig
        regressions over time, and some still remain in v5.15-rc4. The fix we
        agreed on in the end is to make this symbol selected by any driver
        using it, and then building it even for non-Arm platforms with
        CONFIG_COMPILE_TEST.
      
        To make this work on all architectures, the drivers/firmware/Kconfig
        file needs to be included for all architectures to make the symbol
        itself visible.
      
        In a separate discussion, we found that a sound driver patch that is
        pending for v5.16 needs the same change to include this Kconfig file,
        so the easiest solution seems to have my Kconfig rework included in
        v5.15.
      
        Finally, the branch also includes a small unrelated build fix for
        NOMMU architectures"
      
      Link: https://lore.kernel.org/all/20210928153508.101208f8@canb.auug.org.au/
      Link: https://lore.kernel.org/all/20210928075216.4193128-1-arnd@kernel.org/
      Link: https://lore.kernel.org/all/20211007151010.333516-1-arnd@kernel.org/
      
      * tag 'asm-generic-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        asm-generic/io.h: give stub iounmap() on !MMU same prototype as elsewhere
        qcom_scm: hide Kconfig symbol
        firmware: include drivers/firmware/Kconfig unconditionally
      0dcf60d0
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · cdc726fb
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix a recent ACPI-related regression in the PCI subsystem that
        introduced a NULL pointer dereference possible to trigger from
        user space via sysfs on some systems"
      
      * tag 'acpi-5.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PCI: ACPI: Check parent pointer in acpi_pci_find_companion()
      cdc726fb
    • Linus Torvalds's avatar
      Merge tag 'usb-5.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 741668ef
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB fixes for 5.15-rc5 that resolve a number of
        reported issues:
      
         - gadget driver fixes
      
         - xhci build warning fixes
      
         - build configuration fix
      
         - cdc-acm tty handling fixes
      
         - cdc-wdm fix
      
         - typec fixes
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-5.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: cdc-acm: fix break reporting
        USB: cdc-acm: fix racy tty buffer accesses
        usb: gadget: f_uac2: fixed EP-IN wMaxPacketSize
        usb: cdc-wdm: Fix check for WWAN
        usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle
        usb: typec: tcpm: handle SRC_STARTUP state if cc changes
        usb: typec: tcpci: don't handle vSafe0V event if it's not enabled
        usb: typec: tipd: Remove dependency on "connector" child fwnode
        Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
        usb: dwc3: gadget: Revert "set gadgets parent to the right controller"
        usb: xhci: tegra: mark PM functions as __maybe_unused
      741668ef
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 9c7e7050
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "A couple of MMC host fixes:
      
         - meson-gx: Fix read/write access for dram-access-quirk
      
         - sdhci-of-at91: Fix calibration sequence"
      
      * tag 'mmc-v5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
        mmc: sdhci-of-at91: replace while loop with read_poll_timeout
        mmc: sdhci-of-at91: wait for calibration done before proceed
      9c7e7050
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-10-08' of git://anongit.freedesktop.org/drm/drm · 0068dc8c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "I've returned from my tropical island retreat, even managed to bring
        one of my kids on a dive with some turtles. Thanks to Daniel for doing
        last week's work.
      
        Otherwise this is the weekly fixes pull, it's a bit bigger because the
        vc4 reverts in your tree caused some problems with fixes in the
        drm-misc tree so it got left out last week, so this week has the misc
        fixes rebased without the vc4 pieces.
      
        Otherwise it's i915, amdgpu with the usual fixes and a scattering over
        other drivers.
      
        I expect things should calm down a bit more next week.
      
        core:
         - Kconfig fix for fb_simple vs simpledrm.
      
        i915:
         - Fix RKL HDMI audio
         - Fix runtime pm imbalance on i915_gem_shrink() error path
         - Fix Type-C port access before hw/sw state sync
         - Fix VBT backlight struct version/size check
         - Fix VT-d async flip on SKL/BXT with plane stretch workaround
      
        amdgpu:
         - DCN 3.1 DP alt mode fixes
         - S0ix gfxoff fix
         - Fix DRM_AMD_DC_SI dependencies
         - PCIe DPC handling fix
         - DCN 3.1 scaling fix
         - Documentation fix
      
        amdkfd:
         - Fix potential memory leak
         - IOMMUv2 init fixes
      
        vc4 (there were some hdmi fixes but things got reverted, sort it out
             later):
         - compiler fix
      
        nouveau:
         - Cursor fix
         - Fix ttm buffer moves for ampere gpu's by adding minimal
           acceleration support.
         - memory leak fixes
      
        rockchip:
         - crtc/clk fixup
      
        panel:
         - ili9341 Fix DT bindings indent
         - y030xx067a - yellow tint init seq fix
      
        gbefb:
         - Fix gbefb when built with COMPILE_TEST"
      
      * tag 'drm-fixes-2021-10-08' of git://anongit.freedesktop.org/drm/drm: (33 commits)
        drm/amd/display: Fix detection of 4 lane for DPALT
        drm/amd/display: Limit display scaling to up to 4k for DCN 3.1
        drm/amd/display: Skip override for preferred link settings during link training
        drm/nouveau/debugfs: fix file release memory leak
        drm/nouveau/kms/nv50-: fix file release memory leak
        drm/nouveau: avoid a use-after-free when BO init fails
        DRM: delete DRM IRQ legacy midlayer docs
        video: fbdev: gbefb: Only instantiate device when built for IP32
        fbdev: simplefb: fix Kconfig dependencies
        drm/panel: abt-y030xx067a: yellow tint fix
        dt-bindings: panel: ili9341: correct indentation
        drm/nouveau/fifo/ga102: initialise chid on return from channel creation
        drm/rockchip: Update crtc fixup to account for fractional clk change
        drm/nouveau/ga102-: support ttm buffer moves via copy engine
        drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
        drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup
        drm/vc4: hdmi: Remove unused struct
        drm/kmb: Enable alpha blended second plane
        drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume
        drm/amdgpu: init iommu after amdkfd device init
        ...
      0068dc8c
    • Adam Borowski's avatar
      asm-generic/io.h: give stub iounmap() on !MMU same prototype as elsewhere · 2fbc3499
      Adam Borowski authored
      It made -Werror sad.
      Signed-off-by: default avatarAdam Borowski <kilobyte@angband.pl>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      2fbc3499
    • Borislav Petkov's avatar
      x86/fpu: Restore the masking out of reserved MXCSR bits · d298b035
      Borislav Petkov authored
      Ser Olmy reported a boot failure:
      
        init[1] bad frame in sigreturn frame:(ptrval) ip:b7c9fbe6 sp:bf933310 orax:ffffffff \
      	  in libc-2.33.so[b7bed000+156000]
        Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
        CPU: 0 PID: 1 Comm: init Tainted: G        W         5.14.9 #1
        Hardware name: Hewlett-Packard HP PC/HP Board, BIOS  JD.00.06 12/06/2001
        Call Trace:
         dump_stack_lvl
         dump_stack
         panic
         do_exit.cold
         do_group_exit
         get_signal
         arch_do_signal_or_restart
         ? force_sig_info_to_task
         ? force_sig
         exit_to_user_mode_prepare
         syscall_exit_to_user_mode
         do_int80_syscall_32
         entry_INT80_32
      
      on an old 32-bit Intel CPU:
      
        vendor_id       : GenuineIntel
        cpu family      : 6
        model           : 6
        model name      : Celeron (Mendocino)
        stepping        : 5
        microcode       : 0x3
      
      Ser bisected the problem to the commit in Fixes.
      
      tglx suggested reverting the rejection of invalid MXCSR values which
      this commit introduced and replacing it with what the old code did -
      simply masking them out to zero.
      
      Further debugging confirmed his suggestion:
      
        fpu->state.fxsave.mxcsr: 0xb7be13b4, mxcsr_feature_mask: 0xffbf
        WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/signal.c:384 __fpu_restore_sig+0x51f/0x540
      
      so restore the original behavior only for 32-bit kernels where you have
      ancient machines with buggy hardware. For 32-bit programs on 64-bit
      kernels, user space which supplies wrong MXCSR values is considered
      malicious so fail the sigframe restoration there.
      
      Fixes: 6f9866a1 ("x86/fpu/signal: Let xrstor handle the features to init")
      Reported-by: default avatarSer Olmy <ser.olmy@protonmail.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Tested-by: default avatarSer Olmy <ser.olmy@protonmail.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lkml.kernel.org/r/YVtA67jImg3KlBTw@zn.tnic
      d298b035
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.15-2021-10-06' of... · bf79045e
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.15-2021-10-06' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.15-2021-10-06:
      
      amdgpu:
      - DCN 3.1 DP alt mode fixes
      - S0ix gfxoff fix
      - Fix DRM_AMD_DC_SI dependencies
      - PCIe DPC handling fix
      - DCN 3.1 scaling fix
      - Documentation fix
      
      amdkfd:
      - Fix potential memory leak
      - IOMMUv2 init fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211006203828.4818-1-alexander.deucher@amd.com
      bf79045e
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-10-06' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · b28a130f
      Dave Airlie authored
      Rebased drm-misc-fixes for v5.15-rc5:
      - Dropped vc4 patches.
      - Compiler fix for vc4.
      - Cursor fix for nouveau.
      - Fix ttm buffer moves for ampere gpu's by adding minimal acceleration support.
      - Small rockchip fixes.
      - Fix DT bindings indent for ili9341.
      - Fix y030xx067a init sequence to not get a yellow tint.
      - Kconfig fix for fb_simple vs simpledrm.
      - Assorted nouvaeu memory leaks.
      - Fix gbefb when built with COMPILE_TEST.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/3272bf72-2c37-31eb-404e-cf7edd485c7d@linux.intel.com
      b28a130f