1. 27 May, 2022 8 commits
    • Vincent Whitchurch's avatar
      um: Fix out-of-bounds read in LDT setup · 2a4a62a1
      Vincent Whitchurch authored
      syscall_stub_data() expects the data_count parameter to be the number of
      longs, not bytes.
      
       ==================================================================
       BUG: KASAN: stack-out-of-bounds in syscall_stub_data+0x70/0xe0
       Read of size 128 at addr 000000006411f6f0 by task swapper/1
      
       CPU: 0 PID: 1 Comm: swapper Not tainted 5.18.0+ #18
       Call Trace:
        show_stack.cold+0x166/0x2a7
        __dump_stack+0x3a/0x43
        dump_stack_lvl+0x1f/0x27
        print_report.cold+0xdb/0xf81
        kasan_report+0x119/0x1f0
        kasan_check_range+0x3a3/0x440
        memcpy+0x52/0x140
        syscall_stub_data+0x70/0xe0
        write_ldt_entry+0xac/0x190
        init_new_ldt+0x515/0x960
        init_new_context+0x2c4/0x4d0
        mm_init.constprop.0+0x5ed/0x760
        mm_alloc+0x118/0x170
        0x60033f48
        do_one_initcall+0x1d7/0x860
        0x60003e7b
        kernel_init+0x6e/0x3d4
        new_thread_handler+0x1e7/0x2c0
      
       The buggy address belongs to stack of task swapper/1
        and is located at offset 64 in frame:
        init_new_ldt+0x0/0x960
      
       This frame has 2 objects:
        [32, 40) 'addr'
        [64, 80) 'desc'
       ==================================================================
      
      Fixes: 858259cf ("uml: maintain own LDT entries")
      Signed-off-by: default avatarVincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      2a4a62a1
    • Johannes Berg's avatar
      um: chan_user: Fix winch_tramp() return value · 57ae0b67
      Johannes Berg authored
      The previous fix here was only partially correct, it did
      result in returning a proper error value in case of error,
      but it also clobbered the pid that we need to return from
      this function (not just zero for success).
      
      As a result, it returned 0 here, but later this is treated
      as a pid and used to kill the process, but since it's now
      0 we kill(0, SIGKILL), which makes UML kill itself rather
      than just the helper thread.
      
      Fix that and make it more obvious by using a separate
      variable for the pid.
      
      Fixes: ccf1236e ("um: fix error return code in winch_tramp()")
      Reported-and-tested-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      57ae0b67
    • Johannes Berg's avatar
      um: virtio_uml: Fix broken device handling in time-travel · af9fb41e
      Johannes Berg authored
      If a device implementation crashes, virtio_uml will mark it
      as dead by calling virtio_break_device() and scheduling the
      work that will remove it.
      
      This still seems like the right thing to do, but it's done
      directly while reading the message, and if time-travel is
      used, this is in the time-travel handler, outside of the
      normal Linux machinery. Therefore, we cannot acquire locks
      or do normal "linux-y" things because e.g. lockdep will be
      confused about the context.
      
      Move handling this situation out of the read function and
      into the actual IRQ handler and response handling instead,
      so that in the case of time-travel we don't call it in the
      wrong context.
      
      Chances are the system will still crash immediately, since
      the device implementation crashing may also cause the time-
      travel controller to go down, but at least all of that now
      happens without strange warnings from lockdep.
      
      Fixes: c8177aba ("um: time-travel: rework interrupt handling in ext mode")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      af9fb41e
    • Johannes Berg's avatar
      um: line: Use separate IRQs per line · d5a9597d
      Johannes Berg authored
      Today, all possible serial lines (ssl*=) as well as all
      possible consoles (con*=) each share a single interrupt
      (with a fixed number) with others of the same type.
      
      Now, if you have two lines, say ssl0 and ssl1, and one
      of them is connected to an fd you cannot read (e.g. a
      file), but the other gets a read interrupt, then both
      of them get the interrupt since it's shared. Then, the
      read() call will return EOF, since it's a file being
      written and there's nothing to read (at least not at
      the current offset, at the end).
      
      Unfortunately, this is treated as a read error, and we
      close this line, losing all the possible output.
      
      It might be possible to work around this and make the
      IRQ sharing work, however, now that we have dynamically
      allocated IRQs that are easy to use, simply use that to
      achieve separating between the events; then there's no
      interrupt for that line and we never attempt the read
      in the first place, thus not closing the line.
      
      This manifested itself in the wifi hostap/hwsim tests
      where the parallel script communicates via one serial
      console and the kernel messages go to another (a file)
      and sending data on the communication console caused
      the kernel messages to stop flowing into the file.
      Reported-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Acked-By: default avataranton ivanov <anton.ivanov@cambridgegreys.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      d5a9597d
    • Vincent Whitchurch's avatar
      um: Enable ARCH_HAS_GCOV_PROFILE_ALL · 2419ac32
      Vincent Whitchurch authored
      Enable ARCH_HAS_GCOV_PROFILE_ALL so that CONFIG_GCOV_PROFILE_ALL can be
      selected on UML.  I didn't need to explicitly disable GCOV on anything
      to get this to work on the configs I tested.
      Signed-off-by: default avatarVincent Whitchurch <vincent.whitchurch@axis.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      2419ac32
    • Johannes Berg's avatar
      um: Use asm-generic/dma-mapping.h · 36571903
      Johannes Berg authored
      If DMA (PCI over virtio) is enabled, then some drivers may
      enable CONFIG_DMA_OPS as well, and then we pull in the x86
      definition of get_arch_dma_ops(), which uses the dma_ops
      symbol, which isn't defined.
      
      Since we don't have real DMA ops nor any kind of IOMMU fix
      this in the simplest possible way: pull in the asm-generic
      file instead of inheriting the x86 one. It's not clear why
      those drivers that do (e.g. VDPA) "select DMA_OPS", and if
      they'd even work with this, but chances are nobody will be
      wanting to do that anyway, so fixing the build failure is
      good enough.
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Fixes: 68f5d3f3 ("um: add PCI over virtio emulation driver")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      36571903
    • Johannes Berg's avatar
      um: daemon: Make default socket configurable · b0cbccf4
      Johannes Berg authored
      Even if daemon network is deprecated, some configurations may
      still use it (e.g. Debian), and not want to default to the
      /tmp/uml.ctl socket location. Allow configuring the default
      socket location.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Acked-By: default avatarAnton Ivanov <anton.ivanov@cambridgegreys.com>
      Tested-by: default avatarRitesh Raj Sarraf <ritesh@collabora.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      b0cbccf4
    • Johannes Berg's avatar
      um: xterm: Make default terminal emulator configurable · 16aa835a
      Johannes Berg authored
      Make the default terminal emulator configurable so e.g.
      Debian can set it to x-terminal-emulator instead of the
      current default of xterm.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Acked-By: default avatarAnton Ivanov <anton.ivanov@cambridgegreys.com>
      Tested-by: default avatarRitesh Raj Sarraf <ritesh@collabora.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      16aa835a
  2. 16 May, 2022 1 commit
  3. 15 May, 2022 8 commits
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.18-rc7' of... · 0cdd776e
      Linus Torvalds authored
      Merge tag 'driver-core-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg KH:
       "Here is one fix, and three documentation updates for 5.18-rc7.
      
        The fix is for the firmware loader which resolves a long-reported
        problem where the credentials of the firmware loader could be set to a
        userspace process without enough permissions to actually load the
        firmware image. Many Android vendors have been reporting this for
        quite some time.
      
        The documentation updates are for the embargoed-hardware-issues.rst
        file to add a new entry, change an existing one, and sort the list to
        make changes easier in the future.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Documentation/process: Update ARM contact for embargoed hardware issues
        Documentation/process: Add embargoed HW contact for Ampere Computing
        Documentation/process: Make groups alphabetical and use tabs consistently
        firmware_loader: use kernel credentials when reading firmware
      0cdd776e
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 5becde60
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are two small driver fixes for 5.18-rc7 that resolve reported
        problems:
      
         - slimbus driver irq bugfix
      
         - interconnect sync state bugfix
      
        Both of these have been in linux-next with no reported problems"
      
      * tag 'char-misc-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        slimbus: qcom: Fix IRQ check in qcom_slim_probe
        interconnect: Restore sync state by ignoring ipa-virt in provider count
      5becde60
    • Linus Torvalds's avatar
      Merge tag 'tty-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 6811a466
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small tty n_gsm and serial driver fixes for 5.18-rc7
        that resolve reported problems. They include:
      
         - n_gsm fixes for reported issues
      
         - 8250_mtk driver fixes for some platforms
      
         - fsl_lpuart driver fix for reported problem.
      
         - digicolor driver fix for reported problem.
      
        All have been in linux-next for a while with no reported problems"
      
      * tag 'tty-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        fsl_lpuart: Don't enable interrupts too early
        tty: n_gsm: fix invalid gsmtty_write_room() result
        tty: n_gsm: fix mux activation issues in gsm_config()
        tty: n_gsm: fix buffer over-read in gsm_dlci_data()
        serial: 8250_mtk: Fix register address for XON/XOFF character
        serial: 8250_mtk: Make sure to select the right FEATURE_SEL
        serial: 8250_mtk: Fix UART_EFR register address
        tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
      6811a466
    • Linus Torvalds's avatar
      Merge tag 'usb-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · fc49583c
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small fixes for reported issues with some USB drivers.
        They include:
      
         - xhci fixes for xhci-mtk platform driver
      
         - typec driver fixes for reported problems.
      
         - cdc-wdm read-stuck fix
      
         - gadget driver fix for reported race condition
      
         - new usb-serial driver ids
      
        All of these have been in linux-next with no reported problems"
      
      * tag 'usb-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: xhci-mtk: remove bandwidth budget table
        usb: xhci-mtk: fix fs isoc's transfer error
        usb: gadget: fix race when gadget driver register via ioctl
        usb: typec: tcpci_mt6360: Update for BMC PHY setting
        usb: gadget: uvc: allow for application to cleanly shutdown
        usb: typec: tcpci: Don't skip cleanup in .remove() on error
        usb: cdc-wdm: fix reading stuck on device close
        USB: serial: qcserial: add support for Sierra Wireless EM7590
        USB: serial: option: add Fibocom MA510 modem
        USB: serial: option: add Fibocom L610 modem
        USB: serial: pl2303: add device id for HP LM930 Display
      fc49583c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bc403203
      Linus Torvalds authored
      Pull powerpc fix from Michael Ellerman:
      
       - Fix KVM PR on 32-bit, which was broken by some MMU code refactoring.
      
      Thanks to: Alexander Graf, and Matt Evans.
      
      * tag 'powerpc-5.18-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        KVM: PPC: Book3S PR: Enable MSR_DR for switch_mmu_context()
      bc403203
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 79dc4fc2
      Linus Torvalds authored
      Pull x86 fix from Thomas Gleixner:
       "A single fix for the handling of unpopulated sub-pmd spaces.
      
        The copy & pasta from the corresponding s390 code screwed up the
        address calculation for marking the sub-pmd ranges via memset by
        omitting the ALIGN_DOWN() to calculate the proper start address.
      
        It's a mystery why this code is not generic and shared because there
        is nothing architecture specific in there, but that's too intrusive
        for a backportable fix"
      
      * tag 'x86-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Fix marking of unused sub-pmd ranges
      79dc4fc2
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 990e798d
      Linus Torvalds authored
      Pull scheduler fix from Thomas Gleixner:
       "The recent expansion of the sched switch tracepoint inserted a new
        argument in the middle of the arguments. This reordering broke BPF
        programs which relied on the old argument list.
      
        While tracepoints are not considered stable ABI, it's not trivial to
        make BPF cope with such a change, but it's being worked on. For now
        restore the original argument order and move the new argument to the
        end of the argument list"
      
      * tag 'sched-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/tracing: Append prev_state to tp args instead
      990e798d
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fb756280
      Linus Torvalds authored
      Pull irq fix from Thomas Gleixner:
       "A single fix for a recent (introduced in 5.16) regression in the core
        interrupt code.
      
        The consolidation of the interrupt handler invocation code added an
        unconditional warning when generic_handle_domain_irq() is invoked from
        outside hard interrupt context. That's overbroad as the requirement
        for invoking these handlers in hard interrupt context is only required
        for certain interrupt types. The subsequently called code already
        contains a warning which triggers conditionally for interrupt chips
        which indicate this requirement in their properties.
      
        Remove the overbroad one"
      
      * tag 'irq-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Remove WARN_ON_ONCE() in generic_handle_domain_irq()
      fb756280
  4. 14 May, 2022 1 commit
  5. 13 May, 2022 22 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-05-14' of git://anongit.freedesktop.org/drm/drm · ec7f4961
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Turns out I was right, some fixes hadn't made it to me yet. The vmwgfx
        ones also popped up later, but all seem like bad enough things to fix.
        The dma-buf, vc4 and nouveau ones are all pretty small.
      
        The fbdev fixes are a bit more complicated: a fix to cleanup fbdev
        devices properly, uncovered some use-after-free bugs in existing
        drivers. Then the fix for those bugs wasn't correct. This reverts that
        fix, and puts the proper fixes in place in the drivers to avoid the
        use-after-frees.
      
        This has had a fair number of eyes on it at this stage, and I'm
        confident enough that it puts things in the right place, and is less
        dangerous than reverting our way out of the initial change at this
        stage.
      
        fbdev:
         - revert NULL deref fix that turned into a use-after-free
         - prevent use-after-free in fbdev
         - efifb/simplefb/vesafb: fix cleanup paths to avoid use-after-frees
      
        dma-buf:
         - fix panic in stats setup
      
        vc4:
         - fix hdmi build
      
        nouveau:
         - tegra iommu present fix
         - fix leak in backlight name
      
        vmwgfx:
         - Black screen due to fences using FIFO checks on SVGA3
         - Random black screens on boot due to uninitialized drm_mode_fb_cmd2
         - Hangs on SVGA3 due to command buffers being used with gbobjects"
      
      * tag 'drm-fixes-2022-05-14' of git://anongit.freedesktop.org/drm/drm:
        drm/vmwgfx: Disable command buffers on svga3 without gbobjects
        drm/vmwgfx: Initialize drm_mode_fb_cmd2
        drm/vmwgfx: Fix fencing on SVGAv3
        drm/vc4: hdmi: Fix build error for implicit function declaration
        dma-buf: call dma_buf_stats_setup after dmabuf is in valid list
        fbdev: efifb: Fix a use-after-free due early fb_info cleanup
        drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
        drm/nouveau/tegra: Stop using iommu_present()
        fbdev: vesafb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: efifb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: simplefb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: Prevent possible use-after-free in fb_release()
        Revert "fbdev: Make fb_release() return -ENODEV if fbdev was unregistered"
      ec7f4961
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · eb7bac39
      Dave Airlie authored
      Multiple fixes to fbdev to address a regression at unregistration, an
      iommu detection improvement for nouveau, a memory leak fix for nouveau,
      pointer dereference fix for dma_buf_file_release(), and a build breakage
      fix for vc4
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220513073044.ymayac7x7bzatrt7@houat
      eb7bac39
    • Dave Airlie's avatar
      Merge tag 'vmwgfx-drm-fixes-5.18-2022-05-13' of... · 30c60ba3
      Dave Airlie authored
      Merge tag 'vmwgfx-drm-fixes-5.18-2022-05-13' of https://gitlab.freedesktop.org/zack/vmwgfx into drm-fixes
      
      vmwgfx fixes for:
      - Black screen due to fences using FIFO checks on SVGA3
      - Random black screens on boot due to uninitialized drm_mode_fb_cmd2
      - Hangs on SVGA3 due to command buffers being used with gbobjects
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Zack Rusin <zackr@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/a1d32799e4c74b8540216376d7576bb783ca07ba.camel@vmware.com
      30c60ba3
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.18-rc4-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · d928e8f3
      Linus Torvalds authored
      Pull gfs2 fixes from Andreas Gruenbacher:
       "We've finally identified commit dc732906 ("gfs2: Introduce flag
        for glock holder auto-demotion") to be the other cause of the
        filesystem corruption we've been seeing. This feature isn't strictly
        necessary anymore, so we've decided to stop using it for now.
      
        With this and the gfs_iomap_end rounding fix you've already seen
        ("gfs2: Fix filesystem block deallocation for short writes" in this
        pull request), we're corruption free again now.
      
         - Fix filesystem block deallocation for short writes.
      
         - Stop using glock holder auto-demotion for now.
      
         - Get rid of buffered writes inefficiencies due to page faults being
           disabled.
      
         - Minor other cleanups"
      
      * tag 'gfs2-v5.18-rc4-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Stop using glock holder auto-demotion for now
        gfs2: buffered write prefaulting
        gfs2: Align read and write chunks to the page cache
        gfs2: Pull return value test out of should_fault_in_pages
        gfs2: Clean up use of fault_in_iov_iter_{read,write}able
        gfs2: Variable rename
        gfs2: Fix filesystem block deallocation for short writes
      d928e8f3
    • Andreas Gruenbacher's avatar
      gfs2: Stop using glock holder auto-demotion for now · e1fa9ea8
      Andreas Gruenbacher authored
      We're having unresolved issues with the glock holder auto-demotion mechanism
      introduced in commit dc732906.  This mechanism was assumed to be essential
      for avoiding frequent short reads and writes until commit 296abc0d
      ("gfs2: No short reads or writes upon glock contention").  Since then,
      when the inode glock is lost, it is simply re-acquired and the operation
      is resumed.  This means that apart from the performance penalty, we
      might as well drop the inode glock before faulting in pages, and
      re-acquire it afterwards.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      e1fa9ea8
    • Andreas Gruenbacher's avatar
      gfs2: buffered write prefaulting · fa5dfa64
      Andreas Gruenbacher authored
      In gfs2_file_buffered_write, to increase the likelihood that all the
      user memory we're trying to write will be resident in memory, carry out
      the write in chunks and fault in each chunk of user memory before trying
      to write it.  Otherwise, some workloads will trigger frequent short
      "internal" writes, causing filesystem blocks to be allocated and then
      partially deallocated again when writing into holes, which is wasteful
      and breaks reservations.
      
      Neither the chunked writes nor any of the short "internal" writes are
      user visible.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      fa5dfa64
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · f2dd0074
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Four fixes, all in drivers.
      
        These patches mosly fix error legs and exceptional conditions
        (scsi_dh_alua, qla2xxx). The lpfc fixes are for coding issues with
        lpfc features"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: lpfc: Correct BDE DMA address assignment for GEN_REQ_WQE
        scsi: lpfc: Fix split code for FLOGI on FCoE
        scsi: qla2xxx: Fix missed DMA unmap for aborted commands
        scsi: scsi_dh_alua: Properly handle the ALUA transitioning state
      f2dd0074
    • Andreas Gruenbacher's avatar
      gfs2: Align read and write chunks to the page cache · 324d116c
      Andreas Gruenbacher authored
      Align the chunks that reads and writes are carried out in to the page
      cache rather than the user buffers.  This will be more efficient in
      general, especially for allocating writes.  Optimizing the case that the
      user buffer is gfs2 backed isn't very useful; we only need to make sure
      we won't deadlock.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      324d116c
    • Andreas Gruenbacher's avatar
      gfs2: Pull return value test out of should_fault_in_pages · 72382264
      Andreas Gruenbacher authored
      Pull the return value test of the previous read or write operation out
      of should_fault_in_pages().  In a following patch, we'll fault in pages
      before the I/O and there will be no return value to check.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      72382264
    • Andreas Gruenbacher's avatar
      gfs2: Clean up use of fault_in_iov_iter_{read,write}able · 6d22ff47
      Andreas Gruenbacher authored
      No need to store the return value of the fault_in functions in separate
      variables.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      6d22ff47
    • Andreas Gruenbacher's avatar
      gfs2: Variable rename · 42e4c3bd
      Andreas Gruenbacher authored
      Instead of counting the number of bytes read from the filesystem,
      functions gfs2_file_direct_read and gfs2_file_read_iter count the number
      of bytes written into the user buffer.  Conversely, functions
      gfs2_file_direct_write and gfs2_file_buffered_write count the number of
      bytes read from the user buffer.  This is nothing but confusing, so
      change the read functions to count how many bytes they have read, and
      the write functions to count how many bytes they have written.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      42e4c3bd
    • Andreas Gruenbacher's avatar
      gfs2: Fix filesystem block deallocation for short writes · d031a886
      Andreas Gruenbacher authored
      When a write cannot be carried out in full, gfs2_iomap_end() releases
      blocks that have been allocated for this write but haven't been used.
      
      To compute the end of the allocation, gfs2_iomap_end() incorrectly
      rounded the end of the attempted write down to the next block boundary
      to arrive at the end of the allocation.  It would have to round up, but
      the end of the allocation is also available as iomap->offset +
      iomap->length, so just use that instead.
      
      In addition, use round_up() for computing the start of the unused range.
      
      Fixes: 64bc06bb ("gfs2: iomap buffered write support")
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      d031a886
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.18-rc7' of https://github.com/ceph/ceph-client · c3f5e692
      Linus Torvalds authored
      Pull ceph fix from Ilya Dryomov:
       "Two fixes to properly maintain xattrs on async creates and thus
        preserve SELinux context on newly created files and to avoid improper
        usage of folio->private field which triggered BUG_ONs.
      
        Both marked for stable"
      
      * tag 'ceph-for-5.18-rc7' of https://github.com/ceph/ceph-client:
        ceph: check folio PG_private bit instead of folio->private
        ceph: fix setting of xattrs on async created inodes
      c3f5e692
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.18-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 6dd5884d
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "One more pull request. There was a bug in the fix to ensure that gss-
        proxy continues to work correctly after we fixed the AF_LOCAL socket
        leak in the RPC code. This therefore reverts that broken patch, and
        replaces it with one that works correctly.
      
        Stable fixes:
      
         - SUNRPC: Ensure that the gssproxy client can start in a connected
           state
      
        Bugfixes:
      
         - Revert "SUNRPC: Ensure gss-proxy connects on setup"
      
         - nfs: fix broken handling of the softreval mount option"
      
      * tag 'nfs-for-5.18-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        nfs: fix broken handling of the softreval mount option
        SUNRPC: Ensure that the gssproxy client can start in a connected state
        Revert "SUNRPC: Ensure gss-proxy connects on setup"
      6dd5884d
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 364a453a
      Linus Torvalds authored
      Pull misc fixes from Andrew Morton:
       "Seven MM fixes, three of which address issues added in the most recent
        merge window, four of which are cc:stable.
      
        Three non-MM fixes, none very serious"
      
      [ And yes, that's a real pull request from Andrew, not me creating a
        branch from emailed patches. Woo-hoo! ]
      
      * tag 'mm-hotfixes-stable-2022-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        MAINTAINERS: add a mailing list for DAMON development
        selftests: vm: Makefile: rename TARGETS to VMTARGETS
        mm/kfence: reset PG_slab and memcg_data before freeing __kfence_pool
        mailmap: add entry for martyna.szapar-mudlaw@intel.com
        arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
        procfs: prevent unprivileged processes accessing fdinfo dir
        mm: mremap: fix sign for EFAULT error return value
        mm/hwpoison: use pr_err() instead of dump_page() in get_any_page()
        mm/huge_memory: do not overkill when splitting huge_zero_page
        Revert "mm/memory-failure.c: skip huge_zero_page in memory_failure()"
      364a453a
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 91bdba85
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - TLB invalidation workaround for Qualcomm Kryo-4xx "gold" CPUs
      
       - Fix broken dependency in the vDSO Makefile
      
       - Fix pointer authentication overrides in ISAR2 ID register
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Enable repeat tlbi workaround on KRYO4XX gold CPUs
        arm64: cpufeature: remove duplicate ID_AA64ISAR2_EL1 entry
        arm64: vdso: fix makefile dependency on vdso.so
      91bdba85
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.18-rc7' of... · 359ee4f4
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Restrict ltq-cputemp to SOC_XWAY to fix build failure
      
       - Add OF device ID table to tmp401 driver to enable auto-load
      
      * tag 'hwmon-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ltq-cputemp) restrict it to SOC_XWAY
        hwmon: (tmp401) Add OF device ID table
      359ee4f4
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm · 10b4b67a
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Pretty quiet week on the fixes front, 4 amdgpu and one i915 fix.
      
        I think there might be a few misc fbdev ones outstanding, but I'll see
        if they are necessary and pass them on if so.
      
        amdgpu:
      
         - Disable ASPM for VI boards on ADL platforms
      
         - S0ix DCN3.1 display fix
      
         - Resume regression fix
      
         - Stable pstate fix
      
        i915:
      
         - fix for kernel memory corruption when running a lot of OpenCL tests
           in parallel"
      
      * tag 'drm-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu/ctx: only reset stable pstate if the user changed it (v2)
        Revert "drm/amd/pm: keep the BACO feature enabled for suspend"
        drm/i915: Fix race in __i915_vma_remove_closed
        drm/amd/display: undo clearing of z10 related function pointers
        drm/amdgpu: vi: disable ASPM on Intel Alder Lake based systems
      10b4b67a
    • Zack Rusin's avatar
      drm/vmwgfx: Disable command buffers on svga3 without gbobjects · 21d1d192
      Zack Rusin authored
      With very limited vram on svga3 it's difficult to handle all the surface
      migrations. Without gbobjects, i.e. the ability to store surfaces in
      guest mobs, there's no reason to support intermediate svga2 features,
      especially because we can fall back to fb traces and svga3 will never
      support those in-between features.
      
      On svga3 we wither want to use fb traces or screen targets
      (i.e. gbobjects), nothing in between. This fixes presentation on a lot
      of fusion/esxi tech previews where the exposed svga3 caps haven't been
      finalized yet.
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Fixes: 2cd80dbd ("drm/vmwgfx: Add basic support for SVGA3")
      Cc: <stable@vger.kernel.org> # v5.14+
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220318174332.440068-5-zack@kde.org
      21d1d192
    • Zack Rusin's avatar
      drm/vmwgfx: Initialize drm_mode_fb_cmd2 · 3059d9b9
      Zack Rusin authored
      Transition to drm_mode_fb_cmd2 from drm_mode_fb_cmd left the structure
      unitialized. drm_mode_fb_cmd2 adds a few additional members, e.g. flags
      and modifiers which were never initialized. Garbage in those members
      can cause random failures during the bringup of the fbcon.
      
      Initializing the structure fixes random blank screens after bootup due
      to flags/modifiers mismatches during the fbcon bring up.
      
      Fixes: dabdcdc9 ("drm/vmwgfx: Switch to mode_cmd2")
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: <stable@vger.kernel.org> # v4.10+
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Reviewed-by: default avatarMaaz Mombasawala <mombasawalam@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220302152426.885214-7-zack@kde.org
      3059d9b9
    • Zack Rusin's avatar
      drm/vmwgfx: Fix fencing on SVGAv3 · 1d6595b4
      Zack Rusin authored
      Port of the vmwgfx to SVGAv3 lacked support for fencing. SVGAv3 removed
      FIFO's and replaced them with command buffers and extra registers.
      The initial version of SVGAv3 lacked support for most advanced features
      (e.g. 3D) which made fences unnecessary. That is no longer the case,
      especially as 3D support is being turned on.
      
      Switch from FIFO commands and capabilities to command buffers and extra
      registers to enable fences on SVGAv3.
      
      Fixes: 2cd80dbd ("drm/vmwgfx: Add basic support for SVGA3")
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Reviewed-by: default avatarMaaz Mombasawala <mombasawalam@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220302152426.885214-5-zack@kde.org
      1d6595b4
    • Greg Kroah-Hartman's avatar
      Merge tag 'icc-5.18-rc6' of... · d83ea024
      Greg Kroah-Hartman authored
      Merge tag 'icc-5.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-linus
      
      Pull interconnect fixes from Georgi:
       "interconnect fixes for v5.18-rc
      
        This contains an additional fix for sc7180 and sdx55 platforms that helps
        them to enter suspend even on devices that don't have the most recent DT
        changes.
      
        - interconnect: Restore sync state by ignoring ipa-virt in provider count
      
        Signed-off-by: Georgi Djakov <djakov@kernel.org>"
      
      * tag 'icc-5.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
        interconnect: Restore sync state by ignoring ipa-virt in provider count
      d83ea024