1. 21 Sep, 2022 5 commits
  2. 20 Sep, 2022 5 commits
    • Linus Torvalds's avatar
      Merge tag 'for-6.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 60891ec9
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - two fixes for hangs in the umount sequence where threads depend on
         each other and the work must be finished in the right order
      
       - in zoned mode, wait for flushing all block group metadata IO before
         finishing the zone
      
      * tag 'for-6.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: zoned: wait for extent buffer IOs before finishing a zone
        btrfs: fix hang during unmount when stopping a space reclaim worker
        btrfs: fix hang during unmount when stopping block group reclaim worker
      60891ec9
    • Linus Torvalds's avatar
      Merge tag 'fs.fixes.v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · 84a31938
      Linus Torvalds authored
      Pull vfs fix from Christian Brauner:
       "Beginning of the merge window we introduced the vfs{g,u}id_t types in
        b27c82e1 ("attr: port attribute changes to new types") and changed
        various codepaths over including chown_common().
      
        When userspace passes -1 for an ownership change the ownership fields
        in struct iattr stay uninitialized. Usually this is fine because any
        code making use of any fields in struct iattr must check the
        ->ia_valid field whether the value of interest has been initialized.
        That's true for all struct iattr passing code.
      
        However, over the course of the last year with more heavy use of KMSAN
        we found quite a few places that got this wrong. A recent one I fixed
        was 3cb6ee99 ("9p: only copy valid iattrs in 9P2000.L setattr
        implementation").
      
        But we also have LSM hooks. Actually we have two. The first one is
        security_inode_setattr() in notify_change() which does the right thing
        and passes the full struct iattr down to LSMs and thus LSMs can check
        whether it is initialized.
      
        But then we also have security_path_chown() which passes down a path
        argument and the target ownership as the filesystem would see it. For
        the latter we now generate the target values based on struct iattr and
        pass it down. However, when userspace passes -1 then struct iattr
        isn't initialized.
      
        This patch simply initializes ->ia_vfs{g,u}id with INVALID_VFS{G,U}ID
        so the hook continue to see invalid ownership when -1 is passed from
        userspace. The only LSM that cares about the actual values is Tomoyo.
      
        The vfs codepaths don't look at these fields without ->ia_valid being
        set so there's no harm in initializing ->ia_vfs{g,u}id. Arguably this
        is also safer since we can't end up copying valid ownership values
        when invalid ownership values should be passed.
      
        This only affects mainline. No kernel has been released with this and
        thus no backport is needed. The commit is thus marked with a Fixes:
        tag but annotated with "# mainline only" (I didn't quite remember what
        Greg said about how to tell stable autoselect to not bother with fixes
        for mainline only)"
      
      * tag 'fs.fixes.v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping:
        open: always initialize ownership fields
      84a31938
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · f489921d
      Linus Torvalds authored
      Pull execve reverts from Kees Cook:
       "The recent work to support time namespace unsharing turns out to have
        some undesirable corner cases, so rather than allowing the API to stay
        exposed for another release, it'd be best to remove it ASAP, with the
        replacement getting another cycle of testing. Nothing is known to use
        this yet, so no userspace breakage is expected.
      
        For more details, see:
      
          https://lore.kernel.org/lkml/ed418e43ad28b8688cfea2b7c90fce1c@ispras.ru
      
        Summary:
      
         - Remove the recent 'unshare time namespace on vfork+exec' feature
           (Andrei Vagin)"
      
      * tag 'execve-v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        Revert "fs/exec: allow to unshare a time namespace on vfork+exec"
        Revert "selftests/timens: add a test for vfork+exit"
      f489921d
    • Takashi Iwai's avatar
      Revert "ALSA: usb-audio: Split endpoint setups for hw_params and prepare" · 79764ec7
      Takashi Iwai authored
      This reverts commit ff878b40.
      
      Unfortunately the recent fix seems bringing another regressions with
      PulseAudio / pipewire, at least for Steinberg and MOTU devices.
      
      As a temporary solution, do a straight revert.  The issue for Android
      will be revisited again later by another different fix (if any).
      
      Fixes: ff878b40 ("ALSA: usb-audio: Split endpoint setups for hw_params and prepare")
      Cc: <stable@vger.kernel.org>
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=216500
      Link: https://lore.kernel.org/r/20220920113929.25162-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      79764ec7
    • Tetsuo Handa's avatar
      open: always initialize ownership fields · f52d74b1
      Tetsuo Handa authored
      Beginning of the merge window we introduced the vfs{g,u}id_t types in
      b27c82e1 ("attr: port attribute changes to new types") and changed
      various codepaths over including chown_common().
      
      During that change we forgot to account for the case were the passed
      ownership value is -1. In this case the ownership fields in struct iattr
      aren't initialized but we rely on them being initialized by the time we
      generate the ownership to pass down to the LSMs. All the major LSMs
      don't care about the ownership values at all. Only Tomoyo uses them and
      so it took a while for syzbot to unearth this issue.
      
      Fix this by initializing the ownership fields and do it within the
      retry_deleg block. While notify_change() doesn't alter the ownership
      fields currently we shouldn't rely on it.
      
      Since no kernel has been released with these changes this does not
      needed to be backported to any stable kernels.
      
      [Christian Brauner (Microsoft) <brauner@kernel.org>]
      * rewrote commit message
      * use INVALID_VFS{G,U}ID macros
      
      Fixes: b27c82e1 ("attr: port attribute changes to new types") # mainline only
      Reported-and-tested-by: syzbot+541e21dcc32c4046cba9@syzkaller.appspotmail.com
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Reviewed-by: default avatarSeth Forshee (DigitalOcean) <sforshee@kernel.org>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      f52d74b1
  3. 19 Sep, 2022 2 commits
  4. 18 Sep, 2022 5 commits
  5. 16 Sep, 2022 10 commits
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · a335366b
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - fix the level-low interrupt type support in gpio-mpc8xxx
      
       - convert another two drivers to using immutable irq chips
      
       - MAINTAINERS update
      
      * tag 'gpio-fixes-for-v6.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: mt7621: Make the irqchip immutable
        gpio: ixp4xx: Make irqchip immutable
        MAINTAINERS: Update HiSilicon GPIO Driver maintainer
        gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
      a335366b
    • Jaroslav Kysela's avatar
      ALSA: hda/hdmi: Fix the converter reuse for the silent stream · 5f80d6bd
      Jaroslav Kysela authored
      When the user space pcm stream uses the silent stream converter,
      it is no longer allocated for the silent stream. Clear the appropriate
      flag in the hdmi_pcm_open() function. The silent stream setup may
      be applied in hdmi_pcm_close() (and the error path - open fcn) again.
      
      If the flag is not cleared, the reuse conditions for the silent
      stream converter in hdmi_choose_cvt() may improperly share
      this converter.
      
      Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
      Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20220913070216.3233974-1-perex@perex.czSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5f80d6bd
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 6879c2d3
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Nothing special, just driver fixes:
      
         - Fix IRQ wakeup and pins for UFS and SDC2 issues on the Qualcomm
           SC8180x
      
         - Fix the Rockchip driver to support interrupt on both rising and
           falling edges.
      
         - Name the Allwinner A100 R_PIO properly
      
         - Fix several issues with the Ocelot interrupts"
      
      * tag 'pinctrl-v6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: ocelot: Fix interrupt controller
        pinctrl: sunxi: Fix name for A100 R_PIO
        pinctrl: rockchip: Enhance support for IRQ_TYPE_EDGE_BOTH
        pinctrl: qcom: sc8180x: Fix wrong pin numbers
        pinctrl: qcom: sc8180x: Fix gpio_wakeirq_map
      6879c2d3
    • Linus Torvalds's avatar
      Merge tag 'block-6.0-2022-09-16' of git://git.kernel.dk/linux-block · 68e777e4
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Two fixes for -rc6:
      
         - Fix a mixup of sectors and bytes in the secure erase ioctl
           (Mikulas)
      
         - Fix for a bad return value for a non-blocking bio/blk queue enter
           call (me)"
      
      * tag 'block-6.0-2022-09-16' of git://git.kernel.dk/linux-block:
        blk-lib: fix blkdev_issue_secure_erase
        block: blk_queue_enter() / __bio_queue_enter() must return -EAGAIN for nowait
      68e777e4
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.0-2022-09-16' of git://git.kernel.dk/linux-block · 0158137d
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Two small patches:
      
         - Fix using an unsigned type for the return value, introduced in this
           release (Pavel)
      
         - Stable fix for a missing check for a fixed file on put (me)"
      
      * tag 'io_uring-6.0-2022-09-16' of git://git.kernel.dk/linux-block:
        io_uring/msg_ring: check file type before putting
        io_uring/rw: fix error'ed retry return values
      0158137d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-09-16' of git://anongit.freedesktop.org/drm/drm · 5763d7f2
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is the regular drm fixes pull.
      
        The i915 and misc fixes are fairly regular, but the amdgpu contains
        fixes for new hw blocks, the dcn314 specific path hookups and also has
        a bunch of fixes for clang stack size warnings which are a bit churny
        but fairly straightforward. This means it looks a little larger than
        usual.
      
        amdgpu:
         - BACO fixes for some RDNA2 boards
         - PCI AER fixes uncovered by a core PCI change
         - Properly hook up dirtyfb helper
         - RAS fixes for GC 11.x
         - TMR fix
         - DCN 3.2.x fixes
         - DCN 3.1.4 fixes
         - LLVM DML stack size fixes
      
        i915:
         - Revert a display patch around max DP source rate now that the
           proper WaEdpLinkRateDataReload is in place
         - Fix perf limit reasons bit position
         - Fix unclaimmed mmio registers on suspend flow with GuC
         - A vma_move_to_active fix for a regression with video decoding
         - DP DSP fix
      
        gma500:
         - Locking and IRQ fixes
      
        meson:
         - OSD1 display fixes
      
        panel-edp:
         - Fix Innolux timings
      
        rockchip:
         - DP/HDMI fixes"
      
      * tag 'drm-fixes-2022-09-16' of git://anongit.freedesktop.org/drm/drm: (42 commits)
        drm/amdgpu: make sure to init common IP before gmc
        drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega
        drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega
        drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
        drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage
        drm/amd/display: Reduce number of arguments of dml31's CalculateFlipSchedule()
        drm/amd/display: Reduce number of arguments of dml31's CalculateWatermarksAndDRAMSpeedChangeSupport()
        drm/amd/display: Reduce number of arguments of dml32_CalculatePrefetchSchedule()
        drm/amd/display: Reduce number of arguments of dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport()
        drm/amd/display: Refactor SubVP calculation to remove FPU
        drm/amd/display: Limit user regamma to a valid value
        drm/amd/display: add workaround for subvp cursor corruption for DCN32/321
        drm/amd/display: SW cursor fallback for SubVP
        drm/amd/display: Round cursor width up for MALL allocation
        drm/amd/display: Correct dram channel width for dcn314
        drm/amd/display: Relax swizzle checks for video non-RGB formats on DCN314
        drm/amd/display: Hook up DCN314 specific dml implementation
        drm/amd/display: Enable dlg and vba compilation for dcn314
        drm/amd/display: Fix compilation errors on DCN314
        drm/amd/display: Fix divide by zero in DML
        ...
      5763d7f2
    • Linus Torvalds's avatar
      Merge tag '6.0-rc5-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 714820c6
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Four smb3 fixes for stable:
      
         - important fix to revalidate mapping when doing direct writes
      
         - missing spinlock
      
         - two fixes to socket handling
      
         - trivial change to update internal version number for cifs.ko"
      
      * tag '6.0-rc5-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal module number
        cifs: add missing spinlock around tcon refcount
        cifs: always initialize struct msghdr smb_msg completely
        cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
        cifs: revalidate mapping when doing direct writes
      714820c6
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2022-09-15' of... · 25100377
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2022-09-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Revert a display patch around max DP source rate now
        that the proper WaEdpLinkRateDataReload is in place. (Ville)
      - Fix perf limit reasons bit position. (Ashutosh)
      - Fix unclaimmed mmio registers on suspend flow with GuC. (Umesh)
      - A vma_move_to_active fix for a regression with video decoding. (Nirmoy)
      - DP DSP fix. (Ankit)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/YyMtmGMXRLsURoM5@intel.com
      25100377
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-09-15' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 87d9862b
      Dave Airlie authored
      Short summary of fixes pull:
      
       * gma500: Locking and IRQ fixes
       * meson: OSD1 display fixes
       * panel-edp: Fix Innolux timings
       * rockchip: DP/HDMI fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/YyMUpP1w21CPXq+I@linux-uq9g
      87d9862b
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.0-2022-09-14' of... · e2111ae2
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.0-2022-09-14' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.0-2022-09-14:
      
      amdgpu:
      - BACO fixes for some RDNA2 boards
      - PCI AER fixes uncovered by a core PCI change
      - Properly hook up dirtyfb helper
      - RAS fixes for GC 11.x
      - TMR fix
      - DCN 3.2.x fixes
      - DCN 3.1.4 fixes
      - LLVM DML stack size fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220914184030.6145-1-alexander.deucher@amd.com
      e2111ae2
  6. 15 Sep, 2022 9 commits
  7. 14 Sep, 2022 4 commits
    • Alex Deucher's avatar
      drm/amdgpu: make sure to init common IP before gmc · a8671493
      Alex Deucher authored
      Move common IP init before GMC init so that HDP gets
      remapped before GMC init which uses it.
      
      This fixes the Unsupported Request error reported through
      AER during driver load. The error happens as a write happens
      to the remap offset before real remapping is done.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216373
      
      The error was unnoticed before and got visible because of the commit
      referenced below. This doesn't fix anything in the commit below, rather
      fixes the issue in amdgpu exposed by the commit. The reference is only
      to associate this commit with below one so that both go together.
      
      Fixes: 8795e182 ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      a8671493
    • Alex Deucher's avatar
      drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega · e3163bc8
      Alex Deucher authored
      This mirrors what we do for other asics and this way we are
      sure the sdma doorbell range is properly initialized.
      
      There is a comment about the way doorbells on gfx9 work that
      requires that they are initialized for other IPs before GFX
      is initialized.  However, the statement says that it applies to
      multimedia as well, but the VCN code currently initializes
      doorbells after GFX and there are no known issues there.  In my
      testing at least I don't see any problems on SDMA.
      
      This is a prerequisite for fixing the Unsupported Request error
      reported through AER during driver load.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216373
      
      The error was unnoticed before and got visible because of the commit
      referenced below. This doesn't fix anything in the commit below, rather
      fixes the issue in amdgpu exposed by the commit. The reference is only
      to associate this commit with below one so that both go together.
      
      Fixes: 8795e182 ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      e3163bc8
    • Alex Deucher's avatar
      drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega · dc1d85cb
      Alex Deucher authored
      This mirrors what we do for other asics and this way we are
      sure the ih doorbell range is properly initialized.
      
      There is a comment about the way doorbells on gfx9 work that
      requires that they are initialized for other IPs before GFX
      is initialized.  In this case IH is initialized before GFX,
      so there should be no issue.
      
      This is a prerequisite for fixing the Unsupported Request error
      reported through AER during driver load.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216373
      
      The error was unnoticed before and got visible because of the commit
      referenced below. This doesn't fix anything in the commit below, rather
      fixes the issue in amdgpu exposed by the commit. The reference is only
      to associate this commit with below one so that both go together.
      
      Fixes: 8795e182 ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      dc1d85cb
    • Horatiu Vultur's avatar
      pinctrl: ocelot: Fix interrupt controller · c297561b
      Horatiu Vultur authored
      When an external device generated a level based interrupt then the
      interrupt controller could miss the interrupt. The reason is that the
      interrupt controller can detect only link changes.
      
      In the following example, if there is a PHY that generates an interrupt
      then the following would happen. The GPIO detected that the interrupt
      line changed, and then the 'ocelot_irq_handler' was called. Here it
      detects which GPIO line saw the change and for that will call the
      following:
      1. irq_mask
      2. phy interrupt routine
      3. irq_eoi
      4. irq_unmask
      
      And this works fine for simple cases, but if the PHY generates many
      interrupts, for example when doing PTP timestamping, then the following
      could happen. Again the function 'ocelot_irq_handler' will be called
      and then from here the following could happen:
      1. irq_mask
      2. phy interrupt routine
      3. irq_eoi
      4. irq_unmask
      
      Right before step 3(irq_eoi), the PHY will generate another interrupt.
      Now the interrupt controller will acknowledge the change in the
      interrupt line. So we miss the interrupt.
      
      A solution will be to use 'handle_level_irq' instead of
      'handle_fasteoi_irq', because for this will change routine order of
      handling the interrupt.
      1. irq_mask
      2. irq_ack
      3. phy interrupt routine
      4. irq_unmask
      
      And now if the PHY will generate a new interrupt before irq_unmask, the
      interrupt controller will detect this because it already acknowledge the
      change in interrupt line at step 2(irq_ack).
      
      But this is not the full solution because there is another issue. In
      case there are 2 PHYs that share the interrupt line. For example phy1
      generates an interrupt, then the following can happen:
      1.irq_mask
      2.irq_ack
      3.phy0 interrupt routine
      4.phy1 interrupt routine
      5.irq_unmask
      
      In case phy0 will generate an interrupt while clearing the interrupt
      source in phy1, then the interrupt line will be kept down by phy0. So
      the interrupt controller will not see any changes in the interrupt line.
      The solution here is to update 'irq_unmask' such that it can detect if
      the interrupt line is still active or not. And if it is active then call
      again the procedure to clear the interrupts. But we don't want to do it
      every time, only if we know that the interrupt controller has not seen
      already that the interrupt line has changed.
      
      While at this, add support also for IRQ_TYPE_LEVEL_LOW.
      
      Fixes: be36abb7 ("pinctrl: ocelot: add support for interrupt controller")
      Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
      Link: https://lore.kernel.org/r/20220909145942.844102-1-horatiu.vultur@microchip.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      c297561b