Skip to content
  1. May 15, 2021
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.13-2021-05-14' of git://git.kernel.dk/linux-block · 56015910
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Just a few minor fixes/changes:
      
         - Fix issue with double free race for linked timeout completions
      
         - Fix reference issue with timeouts
      
         - Remove last few places that make SQPOLL special, since it's just an
           io thread now.
      
         - Bump maximum allowed registered buffers, as we don't allocate as
           much anymore"
      
      * tag 'io_uring-5.13-2021-05-14' of git://git.kernel.dk/linux-block:
        io_uring: increase max number of reg buffers
        io_uring: further remove sqpoll limits on opcodes
        io_uring: fix ltout double free on completion race
        io_uring: fix link timeout refs
      56015910
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.13-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 41f035c0
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
       "This mainly fixes 1 lcluster-sized pclusters for the big pcluster
        feature, which can be forcely generated by mkfs as a specific on-disk
        case for per-(sub)file compression strategies but missed to handle in
        runtime properly.
      
        Also, documentation updates are included to fix the broken
        illustration due to the ReST conversion by accident and complete the
        big pcluster introduction.
      
        Summary:
      
         - update documentation to fix the broken illustration due to ReST
           conversion by accident at that time and complete the big pcluster
           introduction
      
         - fix 1 lcluster-sized pclusters for the big pcluster feature"
      
      * tag 'erofs-for-5.13-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: fix 1 lcluster-sized pcluster for big pcluster
        erofs: update documentation about data compression
        erofs: fix broken illustration in documentation
      41f035c0
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · a5ce4296
      Linus Torvalds authored
      Pull libnvdimm fixes from Dan Williams:
       "A regression fix for a bootup crash condition introduced in this merge
        window and some other minor fixups:
      
         - Fix regression in ACPI NFIT table handling leading to crashes and
           driver load failures.
      
         - Move the nvdimm mailing list
      
         - Miscellaneous minor fixups"
      
      * tag 'libnvdimm-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        ACPI: NFIT: Fix support for variable 'SPA' structure size
        MAINTAINERS: Move nvdimm mailing list
        tools/testing/nvdimm: Make symbol '__nfit_test_ioremap' static
        libnvdimm: Remove duplicate struct declaration
      a5ce4296
    • Linus Torvalds's avatar
      Merge tag 'dax-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 393f42f1
      Linus Torvalds authored
      Pull dax fixes from Dan Williams:
       "A fix for a hang condition due to missed wakeups in the filesystem-dax
        core when exercised by virtiofs.
      
        This bug has been there from the beginning, but the condition has
        not triggered on other filesystems since they hold a lock over
        invalidation events"
      
      * tag 'dax-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: Wake up all waiters after invalidating dax entry
        dax: Add a wakeup mode parameter to put_unlocked_entry()
        dax: Add an enum for specifying dax wakup mode
      393f42f1
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-05-15' of git://anongit.freedesktop.org/drm/drm · 33f85ca4
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Looks like I wasn't the only one not fully switched on this week. The
        msm pull has a missing tag so I missed it, and i915 team were a bit
        late. In my defence I did have a day with the roof of my home office
        removed, so was sitting at my kids desk.
      
        msm:
         - dsi regression fix
         - dma-buf pinning fix
         - displayport fixes
         - llc fix
      
        i915:
         - Fix active callback alignment annotations and subsequent crashes
         - Retract link training strategy to slow and wide, again
         - Avoid division by zero on gen2
         - Use correct width reads for C0DRB3/C1DRB3 registers
         - Fix double free in pdp allocation failure path
         - Fix HDMI 2.1 PCON downstream caps check"
      
      * tag 'drm-fixes-2021-05-15' of git://anongit.freedesktop.org/drm/drm:
        drm/i915: Use correct downstream caps for check Src-Ctl mode for PCON
        drm/i915/overlay: Fix active retire callback alignment
        drm/i915: Fix crash in auto_retire
        drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp
        drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
        drm/i915: Avoid div-by-zero on gen2
        drm/i915/dp: Use slow and wide link training for everything
        drm/msm/dp: initialize audio_comp when audio starts
        drm/msm/dp: check sink_count before update is_connected status
        drm/msm: fix minor version to indicate MSM_PARAM_SUSPENDS support
        drm/msm/dsi: fix msm_dsi_phy_get_clk_provider return code
        drm/msm/dsi: dsi_phy_28nm_8960: fix uninitialized variable access
        drm/msm: fix LLC not being enabled for mmu500 targets
        drm/msm: Do not unpin/evict exported dma-buf's
      33f85ca4
    • Tetsuo Handa's avatar
      tty: vt: always invoke vc->vc_sw->con_resize callback · ffb324e6
      Tetsuo Handa authored
      
      
      syzbot is reporting OOB write at vga16fb_imageblit() [1], for
      resize_screen() from ioctl(VT_RESIZE) returns 0 without checking whether
      requested rows/columns fit the amount of memory reserved for the graphical
      screen if current mode is KD_GRAPHICS.
      
      ----------
        #include <sys/types.h>
        #include <sys/stat.h>
        #include <fcntl.h>
        #include <sys/ioctl.h>
        #include <linux/kd.h>
        #include <linux/vt.h>
      
        int main(int argc, char *argv[])
        {
              const int fd = open("/dev/char/4:1", O_RDWR);
              struct vt_sizes vt = { 0x4100, 2 };
      
              ioctl(fd, KDSETMODE, KD_GRAPHICS);
              ioctl(fd, VT_RESIZE, &vt);
              ioctl(fd, KDSETMODE, KD_TEXT);
              return 0;
        }
      ----------
      
      Allow framebuffer drivers to return -EINVAL, by moving vc->vc_mode !=
      KD_GRAPHICS check from resize_screen() to fbcon_resize().
      
      Link: https://syzkaller.appspot.com/bug?extid=1f29e126cf461c4de3b3 [1]
      Reported-by: default avatarsyzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Tested-by: default avatarsyzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffb324e6
    • Dave Airlie's avatar
      Merge tag 'drm-msm-fixes-2021-05-09' of https://gitlab.freedesktop.org/drm/msm into drm-fixes · 5dce58de
      Dave Airlie authored
      
      
      - dsi regression fix
      - dma-buf pinning fix
      - displayport fixes
      - llc fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Rob Clark <robdclark@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGuqLZDAEJwUFKb6m+h3kyxgjDEKa3DPA1fHA69vxbXH=g@mail.gmail.com
      5dce58de
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 25a12987
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix trace_check_vprintf() for %.*s
      
        The sanity check of all strings being read from the ring buffer to
        make sure they are in safe memory space did not account for the %.*s
        notation having another parameter to process (the length).
      
        Add that to the check"
      
      * tag 'trace-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Handle %.*s in trace_check_vprintf()
      25a12987
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2021-05-14' of... · 89cd34a1
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.13-rc2:
      - Fix active callback alignment annotations and subsequent crashes
      - Retract link training strategy to slow and wide, again
      - Avoid division by zero on gen2
      - Use correct width reads for C0DRB3/C1DRB3 registers
      - Fix double free in pdp allocation failure path
      - Fix HDMI 2.1 PCON downstream caps check
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87a6oxu9ao.fsf@intel.com
      89cd34a1
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · bd3c9cdb
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       "Fixes and cpucaps.h automatic generation:
      
         - Generate cpucaps.h at build time rather than carrying lots of
           #defines. Merged at -rc1 to avoid some conflicts during the merge
           window.
      
         - Initialise RGSR_EL1.SEED in __cpu_setup() as it may be left as 0
           out of reset and the IRG instruction would not function as expected
           if only the architected pseudorandom number generator is
           implemented.
      
         - Fix potential race condition in __sync_icache_dcache() where the
           PG_dcache_clean page flag is set before the actual cache
           maintenance.
      
         - Fix header include in BTI kselftests"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache()
        arm64: tools: Add __ASM_CPUCAPS_H to the endif in cpucaps.h
        arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup
        kselftest/arm64: Add missing stddef.h include to BTI tests
        arm64: Generate cpucaps.h
      bd3c9cdb
    • Linus Torvalds's avatar
      Merge tag 'f2fs-5.13-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · ac524ece
      Linus Torvalds authored
      Pull f2fs fixes from Jaegeuk Kim:
       "This fixes some critical bugs such as memory leak in compression
        flows, kernel panic when handling errors, and swapon failure due to
        newly added condition check"
      
      * tag 'f2fs-5.13-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: return EINVAL for hole cases in swap file
        f2fs: avoid swapon failure by giving a warning first
        f2fs: compress: fix to assign cc.cluster_idx correctly
        f2fs: compress: fix race condition of overwrite vs truncate
        f2fs: compress: fix to free compress page correctly
        f2fs: support iflag change given the mask
        f2fs: avoid null pointer access when handling IPU error
      ac524ece
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm · b5304a4f
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Not much here, mostly amdgpu fixes, with a couple of radeon, and a
        cosmetic vc4.
      
        Two MAINTAINERS file updates also.
      
        amdgpu:
         - Fixes for flexible array conversions
         - Fix sysfs attribute init
         - Harvesting fixes
         - VCN CG/PG fixes for Picasso
      
        radeon:
         - Fixes for flexible array conversions
         - Fix for flickering on Oland with multiple 4K displays
      
        vc4:
         - drop unused function"
      
      * tag 'drm-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: update vcn1.0 Non-DPG suspend sequence
        drm/amdgpu: set vcn mgcg flag for picasso
        drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
        drm/amdgpu: update the method for harvest IP for specific SKU
        drm/amdgpu: add judgement when add ip blocks (v2)
        drm/amd/display: Initialize attribute for hdcp_srm sysfs file
        drm/amd/pm: Fix out-of-bounds bug
        drm/radeon/si_dpm: Fix SMU power state load
        drm/radeon/ni_dpm: Fix booting bug
        MAINTAINERS: Update address for Emma Anholt
        MAINTAINERS: Update my e-mail
        drm/vc4: remove unused function
        drm/ttm: Do not add non-system domain BO into swap list
      b5304a4f
    • Catalin Marinas's avatar
      arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache() · 588a513d
      Catalin Marinas authored
      
      
      To ensure that instructions are observable in a new mapping, the arm64
      set_pte_at() implementation cleans the D-cache and invalidates the
      I-cache to the PoU. As an optimisation, this is only done on executable
      mappings and the PG_dcache_clean page flag is set to avoid future cache
      maintenance on the same page.
      
      When two different processes map the same page (e.g. private executable
      file or shared mapping) there's a potential race on checking and setting
      PG_dcache_clean via set_pte_at() -> __sync_icache_dcache(). While on the
      fault paths the page is locked (PG_locked), mprotect() does not take the
      page lock. The result is that one process may see the PG_dcache_clean
      flag set but the I/D cache maintenance not yet performed.
      
      Avoid test_and_set_bit(PG_dcache_clean) in favour of separate test_bit()
      and set_bit(). In the rare event of a race, the cache maintenance is
      done twice.
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Cc: <stable@vger.kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Steven Price <steven.price@arm.com>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210514095001.13236-1-catalin.marinas@arm.com
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      588a513d
  2. May 14, 2021
    • Pavel Begunkov's avatar
      io_uring: increase max number of reg buffers · 489809e2
      Pavel Begunkov authored
      
      
      Since recent changes instead of storing a large array of struct
      io_mapped_ubuf, we store pointers to them, that is 4 times slimmer and
      we should not to so worry about restricting max number of registererd
      buffer slots, increase the limit 4 times.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/d3dee1da37f46da416aa96a16bf9e5094e10584d.1620990371.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      489809e2
    • Pavel Begunkov's avatar
      io_uring: further remove sqpoll limits on opcodes · 2d74d042
      Pavel Begunkov authored
      
      
      There are three types of requests that left disabled for sqpoll, namely
      epoll ctx, statx, and resources update. Since SQPOLL task is now closely
      mimics a userspace thread, remove the restrictions.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/909b52d70c45636d8d7897582474ea5aab5eed34.1620990306.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2d74d042
    • Pavel Begunkov's avatar
      io_uring: fix ltout double free on completion race · 447c19f3
      Pavel Begunkov authored
      Always remove linked timeout on io_link_timeout_fn() from the master
      request link list, otherwise we may get use-after-free when first
      io_link_timeout_fn() puts linked timeout in the fail path, and then
      will be found and put on master's free.
      
      Cc: stable@vger.kernel.org # 5.10+
      Fixes: 90cd7e42
      
       ("io_uring: track link timeout's master explicitly")
      Reported-and-tested-by: default avatar <syzbot+5a864149dd970b546223@syzkaller.appspotmail.com>
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/69c46bf6ce37fec4fdcd98f0882e18eb07ce693a.1620990121.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      447c19f3
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.13-2021-05-13' of... · 08f0cfbf
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.13-2021-05-13' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.13-2021-05-13:
      
      amdgpu:
      - Fixes for flexible array conversions
      - Fix sysfs attribute init
      - Harvesting fixes
      - VCN CG/PG fixes for Picasso
      
      radeon:
      - Fixes for flexible array conversions
      - Fix for flickering on Oland with multiple 4K displays
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210513163228.3963-1-alexander.deucher@amd.com
      08f0cfbf
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-05-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 1db7aa26
      Dave Airlie authored
      
      
      Remove an unused function and a MAINTAINERS update.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210513133617.xq77wwrehpuh7yn2@hendrix
      1db7aa26
    • Linus Torvalds's avatar
      Merge tag 'pm-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 315d9931
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These close a coverage gap in the intel_pstate driver and fix runtime
        PM child count imbalance related to interactions with system-wide
        suspend.
      
        Specifics:
      
         - Make intel_pstate work as expected on systems where the platform
           firmware enables HWP even though the HWP EPP support is not
           advertised (Rafael Wysocki).
      
         - Fix possible runtime PM child count imbalance that may occur if
           other runtime PM functions are called after invoking
           pm_runtime_force_suspend() and before pm_runtime_force_resume()
           is called (Tony Lindgren)"
      
      * tag 'pm-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: runtime: Fix unpaired parent child_count for force_resume
        cpufreq: intel_pstate: Use HWP if enabled by platform firmware
      315d9931
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2df38a8e
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These revert an unnecessary revert of an ACPI power management commit,
        add a missing device ID to one of the lists and fix a possible memory
        leak in an error path.
      
        Specifics:
      
         - Revert a revert of a recent ACPI power management change that does
           not need to be reverted after all (Rafael Wysocki).
      
         - Add missing fan device ID to the list of device IDs for which the
           devices should not be put into the ACPI PM domain (Sumeet
           Pawnikar).
      
         - Fix possible memory leak in an error path in the ACPI device
           enumeration code (Christophe JAILLET)"
      
      * tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PM: Add ACPI ID of Alder Lake Fan
        ACPI: scan: Fix a memory leak in an error handling path
        Revert "Revert "ACPI: scan: Turn off unused power resources during initialization""
      2df38a8e
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-pm' · fd386517
      Rafael J. Wysocki authored
      * acpi-pm:
        ACPI: PM: Add ACPI ID of Alder Lake Fan
        Revert "Revert "ACPI: scan: Turn off unused power resources during initialization""
      fd386517
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-core' · 78a6948b
      Rafael J. Wysocki authored
      * pm-core:
        PM: runtime: Fix unpaired parent child_count for force_resume
      78a6948b
    • Steven Rostedt (VMware)'s avatar
      tracing: Handle %.*s in trace_check_vprintf() · eb01f535
      Steven Rostedt (VMware) authored
      
      
      If a trace event uses the %*.s notation, the trace_check_vprintf() will
      fail and will warn about a bad processing of strings, because it does not
      take into account the length field when processing the star (*) part.
      Have it handle this case as well.
      
      Link: https://lore.kernel.org/linux-nfs/238C0E2D-C2A4-4578-ADD2-C565B3B99842@oracle.com/
      
      Reported-by: default avatarChuck Lever III <chuck.lever@oracle.com>
      Fixes: 9a6944fe
      
       ("tracing: Add a verifier to check string pointers for trace events")
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      eb01f535
    • Linus Torvalds's avatar
      Merge branch 'resizex' (patches from Maciej) · adc12a74
      Linus Torvalds authored
      Merge VT_RESIZEX fixes from Maciej Rozycki:
       "I got to the bottom of the issue with VT_RESIZEX recently discussed
        and came up with this small patch series, fixing an additional issue
        that I originally thought might be broken VGA hardware emulation with
        my laptop, which however turned out to be intertwined with the
        original problem and also a regression introduced somewhat later.
      
        The fix for that because the first patch, and then to make backporting
        feasible I had to put a revert of the offending change from last
        September next, followed by a proper fix for the framebuffer issue
        that change had tried to address.
      
        See individual change descriptions for details.
      
        These have been verified with true VGA hardware (a Trident TVGA8900
        ISA video adapter) using various combinations of `svgatextmode' and
        `setfont' command invocations to change both the VT size and the font
        size, and also switching between the text console and X11, both by
        starting/stopping the X server and by switching between VTs.
      
        All this to ensure bringing the behaviour of VGA text console back to
        correct operation as it used to be with Linux 2.6.18"
      
      * emailed patches from Maciej W. Rozycki <macro@orcam.me.uk>:
        vt: Fix character height handling with VT_RESIZEX
        vt_ioctl: Revert VT_RESIZEX parameter handling removal
        vgacon: Record video mode changes with VT_RESIZEX
      adc12a74
    • Maciej W. Rozycki's avatar
      vt: Fix character height handling with VT_RESIZEX · 860dafa9
      Maciej W. Rozycki authored
      Restore the original intent of the VT_RESIZEX ioctl's `v_clin' parameter
      which is the number of pixel rows per character (cell) rather than the
      height of the font used.
      
      For framebuffer devices the two values are always the same, because the
      former is inferred from the latter one.  For VGA used as a true text
      mode device these two parameters are independent from each other: the
      number of pixel rows per character is set in the CRT controller, while
      font height is in fact hardwired to 32 pixel rows and fonts of heights
      below that value are handled by padding their data with blanks when
      loaded to hardware for use by the character generator.  One can change
      the setting in the CRT controller and it will update the screen contents
      accordingly regardless of the font loaded.
      
      The `v_clin' parameter is used by the `vgacon' driver to set the height
      of the character cell and then the cursor position within.  Make the
      parameter explicit then, by defining a new `vc_cell_height' struct
      member of `vc_data', set it instead of `vc_font.height' from `v_clin' in
      the VT_RESIZEX ioctl, and then use it throughout the `vgacon' driver
      except where actual font data is accessed which as noted above is
      independent from the CRTC setting.
      
      This way the framebuffer console driver is free to ignore the `v_clin'
      parameter as irrelevant, as it always should have, avoiding any issues
      attempts to give the parameter a meaning there could have caused, such
      as one that has led to commit 988d0763
      
       ("vt_ioctl: make VT_RESIZEX
      behave like VT_RESIZE"):
      
       "syzbot is reporting UAF/OOB read at bit_putcs()/soft_cursor() [1][2],
        for vt_resizex() from ioctl(VT_RESIZEX) allows setting font height
        larger than actual font height calculated by con_font_set() from
        ioctl(PIO_FONT). Since fbcon_set_font() from con_font_set() allocates
        minimal amount of memory based on actual font height calculated by
        con_font_set(), use of vt_resizex() can cause UAF/OOB read for font
        data."
      
      The problem first appeared around Linux 2.5.66 which predates our repo
      history, but the origin could be identified with the old MIPS/Linux repo
      also at: <git://git.kernel.org/pub/scm/linux/kernel/git/ralf/linux.git>
      as commit 9736a3546de7 ("Merge with Linux 2.5.66."), where VT_RESIZEX
      code in `vt_ioctl' was updated as follows:
      
       		if (clin)
      -			video_font_height = clin;
      +			vc->vc_font.height = clin;
      
      making the parameter apply to framebuffer devices as well, perhaps due
      to the use of "font" in the name of the original `video_font_height'
      variable.  Use "cell" in the new struct member then to avoid ambiguity.
      
      References:
      
      [1] https://syzkaller.appspot.com/bug?id=32577e96d88447ded2d3b76d71254fb855245837
      [2] https://syzkaller.appspot.com/bug?id=6b8355d27b2b94fb5cedf4655e3a59162d9e48e3
      
      Signed-off-by: default avatarMaciej W. Rozycki <macro@orcam.me.uk>
      Fixes: 1da177e4
      
       ("Linux-2.6.12-rc2")
      Cc: stable@vger.kernel.org # v2.6.12+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      860dafa9
    • Maciej W. Rozycki's avatar
      vt_ioctl: Revert VT_RESIZEX parameter handling removal · a90c275e
      Maciej W. Rozycki authored
      
      
      Revert the removal of code handling extra VT_RESIZEX ioctl's parameters
      beyond those that VT_RESIZE supports, fixing a functional regression
      causing `svgatextmode' not to resize the VT anymore.
      
      As a consequence of the reverted change when the video adapter is
      reprogrammed from the original say 80x25 text mode using a 9x16
      character cell (720x400 pixel resolution) to say 80x37 text mode and the
      same character cell (720x592 pixel resolution), the VT geometry does not
      get updated and only upper two thirds of the screen are used for the VT,
      and the lower part remains blank.  The proportions change according to
      text mode geometries chosen.
      
      Revert the change verbatim then, bringing back previous VT resizing.
      
      Signed-off-by: default avatarMaciej W. Rozycki <macro@orcam.me.uk>
      Fixes: 988d0763
      
       ("vt_ioctl: make VT_RESIZEX behave like VT_RESIZE")
      Cc: stable@vger.kernel.org # v5.10+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a90c275e
    • Maciej W. Rozycki's avatar
      vgacon: Record video mode changes with VT_RESIZEX · d4d0ad57
      Maciej W. Rozycki authored
      
      
      Fix an issue with VGA console font size changes made after the initial
      video text mode has been changed with a user tool like `svgatextmode'
      calling the VT_RESIZEX ioctl.  As it stands in that case the original
      screen geometry continues being used to validate further VT resizing.
      
      Consequently when the video adapter is firstly reprogrammed from the
      original say 80x25 text mode using a 9x16 character cell (720x400 pixel
      resolution) to say 80x37 text mode and the same character cell (720x592
      pixel resolution), and secondly the CRTC character cell updated to 9x8
      (by loading a suitable font with the KD_FONT_OP_SET request of the
      KDFONTOP ioctl), the VT geometry does not get further updated from 80x37
      and only upper half of the screen is used for the VT, with the lower
      half showing rubbish corresponding to whatever happens to be there in
      the video memory that maps to that part of the screen.  Of course the
      proportions change according to text mode geometries and font sizes
      chosen.
      
      Address the problem then, by updating the text mode geometry defaults
      rather than checking against them whenever the VT is resized via a user
      ioctl.
      
      Signed-off-by: default avatarMaciej W. Rozycki <macro@orcam.me.uk>
      Fixes: e400b6ec
      
       ("vt/vgacon: Check if screen resize request comes from userspace")
      Cc: stable@vger.kernel.org # v2.6.24+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d4d0ad57
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.13-rc2' of... · d1e7c13a
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fix bugs/regressions in adm9240, ltc2992, pmbus/fsp-3y, and occ
        drivers, plus a minor cleanup in the corsair-psu driver"
      
      * tag 'hwmon-for-v5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (adm9240) Fix writes into inX_max attributes
        hwmon: (ltc2992) Put fwnode in error case during ->probe()
        hwmon: (pmbus/fsp-3y) Fix FSP-3Y YH-5151E non-compliant vout encoding
        hwmon: (occ) Fix poll rate limiting
        hwmon: (corsair-psu) Remove unneeded semicolons
      d1e7c13a
    • Mark Brown's avatar
      arm64: tools: Add __ASM_CPUCAPS_H to the endif in cpucaps.h · af44068c
      Mark Brown authored
      
      
      Anshuman suggested this.
      
      Suggested-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210513151819.12526-1-broonie@kernel.org
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      af44068c
  3. May 13, 2021
    • Sathishkumar S's avatar
      drm/amdgpu: update vcn1.0 Non-DPG suspend sequence · 5c1efb5f
      Sathishkumar S authored
      
      
      update suspend register settings in Non-DPG mode.
      
      Signed-off-by: default avatarSathishkumar S <sathishkumar.sundararaju@amd.com>
      Reviewed-by: default avatarLeo Liu <leo.liu@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      5c1efb5f
    • Sathishkumar S's avatar
      drm/amdgpu: set vcn mgcg flag for picasso · 3666f83a
      Sathishkumar S authored
      
      
      enable vcn mgcg flag for picasso.
      
      Signed-off-by: default avatarSathishkumar S <sathishkumar.sundararaju@amd.com>
      Reviewed-by: default avatarLeo Liu <leo.liu@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      3666f83a
    • Kai-Heng Feng's avatar
      drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected · 227545b9
      Kai-Heng Feng authored
      
      
      Screen flickers rapidly when two 4K 60Hz monitors are in use. This issue
      doesn't happen when one monitor is 4K 60Hz (pixelclock 594MHz) and
      another one is 4K 30Hz (pixelclock 297MHz).
      
      The issue is gone after setting "power_dpm_force_performance_level" to
      "high". Following the indication, we found that the issue occurs when
      sclk is too low.
      
      So resolve the issue by disabling sclk switching when there are two
      monitors requires high pixelclock (> 297MHz).
      
      v2:
       - Only apply the fix to Oland.
      Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      227545b9
    • Likun Gao's avatar
      drm/amdgpu: update the method for harvest IP for specific SKU · 5c1a3768
      Likun Gao authored
      
      
      Update the method of disabling VCN IP for specific SKU for navi1x ASIC,
      it will judge whether should add the related IP at the function of
      amdgpu_device_ip_block_add().
      
      Signed-off-by: default avatarLikun Gao <Likun.Gao@amd.com>
      Reviewed-by: default avatarGuchun Chen <guchun.chen@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      5c1a3768
    • Likun GAO's avatar
      drm/amdgpu: add judgement when add ip blocks (v2) · 83a0b863
      Likun GAO authored
      
      
      Judgement whether to add an sw ip according to the harvest info.
      
      v2: fix indentation (Alex)
      
      Signed-off-by: default avatarLikun Gao <Likun.Gao@amd.com>
      Reviewed-by: default avatarGuchun Chen <guchun.chen@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      83a0b863
    • David Ward's avatar
      drm/amd/display: Initialize attribute for hdcp_srm sysfs file · fe1c97d0
      David Ward authored
      It is stored in dynamically allocated memory, so sysfs_bin_attr_init() must
      be called to initialize it. (Note: "initialization" only sets the .attr.key
      member in this struct; it does not change the value of any other members.)
      
      Otherwise, when CONFIG_DEBUG_LOCK_ALLOC=y this message appears during boot:
      
          BUG: key ffff9248900cd148 has not been registered!
      
      Fixes: 9037246b
      
       ("drm/amd/display: Add sysfs interface for set/get srm")
      Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1586
      Reported-by: default avatarMikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
      Signed-off-by: default avatarDavid Ward <david.ward@gatech.edu>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      fe1c97d0
    • Gustavo A. R. Silva's avatar
      drm/amd/pm: Fix out-of-bounds bug · 939baec9
      Gustavo A. R. Silva authored
      Create new structure SISLANDS_SMC_SWSTATE_SINGLE, as initialState.levels
      and ACPIState.levels are never actually used as flexible arrays. Those
      arrays can be used as simple objects of type
      SISLANDS_SMC_HW_PERFORMANCE_LEVEL, instead.
      
      Currently, the code fails because flexible array _levels_ in
      struct SISLANDS_SMC_SWSTATE doesn't allow for code that accesses
      the first element of initialState.levels and ACPIState.levels
      arrays:
      
      drivers/gpu/drm/amd/pm/powerplay/si_dpm.c:
      4820: table->initialState.levels[0].mclk.vDLL_CNTL =
      4821:         cpu_to_be32(si_pi->clock_registers.dll_cntl);
      ...
      5021: table->ACPIState.levels[0].mclk.vDLL_CNTL =
      5022:         cpu_to_be32(dll_cntl);
      
      because such element cannot be accessed without previously allocating
      enough dynamic memory for it to exist (which never actually happens).
      So, there is an out-of-bounds bug in this case.
      
      That's why struct SISLANDS_SMC_SWSTATE should only be used as type
      for object driverState and new struct SISLANDS_SMC_SWSTATE_SINGLE is
      created as type for objects initialState, ACPIState and ULVState.
      
      Also, with the change from one-element array to flexible-array member
      in commit 0e1aa13c ("drm/amd/pm: Replace one-element array with
      flexible-array in struct SISLANDS_SMC_SWSTATE"), the size of
      dpmLevels in struct SISLANDS_SMC_STATETABLE should be fixed to be
      SISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE instead of
      SISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE - 1.
      
      Fixes: 0e1aa13c
      
       ("drm/amd/pm: Replace one-element array with flexible-array in struct SISLANDS_SMC_SWSTATE")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      939baec9
    • Gustavo A. R. Silva's avatar
      drm/radeon/si_dpm: Fix SMU power state load · 1ddeedaa
      Gustavo A. R. Silva authored
      Create new structure SISLANDS_SMC_SWSTATE_SINGLE, as initialState.levels
      and ACPIState.levels are never actually used as flexible arrays. Those
      arrays can be used as simple objects of type
      SISLANDS_SMC_HW_PERFORMANCE_LEVEL, instead.
      
      Currently, the code fails because flexible array _levels_ in
      struct SISLANDS_SMC_SWSTATE doesn't allow for code that access
      the first element of initialState.levels and ACPIState.levels
      arrays:
      
      4353         table->initialState.levels[0].mclk.vDLL_CNTL =
      4354                 cpu_to_be32(si_pi->clock_registers.dll_cntl);
      ...
      4555         table->ACPIState.levels[0].mclk.vDLL_CNTL =
      4556                 cpu_to_be32(dll_cntl);
      
      because such element cannot exist without previously allocating
      any dynamic memory for it (which never actually happens).
      
      That's why struct SISLANDS_SMC_SWSTATE should only be used as type
      for object driverState and new struct SISLANDS_SMC_SWSTATE_SINGLE is
      created as type for objects initialState, ACPIState and ULVState.
      
      Also, with the change from one-element array to flexible-array member
      in commit 96e27e8d ("drm/radeon/si_dpm: Replace one-element array
      with flexible-array in struct SISLANDS_SMC_SWSTATE"), the size of
      dpmLevels in struct SISLANDS_SMC_STATETABLE should be fixed to be
      SISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE instead of
      SISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE - 1.
      
      Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1583
      Fixes: 96e27e8d
      
       ("drm/radeon/si_dpm: Replace one-element array with flexible-array in struct SISLANDS_SMC_SWSTATE")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Tested-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      1ddeedaa
    • Gustavo A. R. Silva's avatar
      drm/radeon/ni_dpm: Fix booting bug · 5d31950a
      Gustavo A. R. Silva authored
      Create new structure NISLANDS_SMC_SWSTATE_SINGLE, as initialState.levels
      and ACPIState.levels are never actually used as flexible arrays. Those
      arrays can be used as simple objects of type
      NISLANDS_SMC_HW_PERFORMANCE_LEVEL, instead.
      
      Currently, the code fails because flexible array _levels_ in
      struct NISLANDS_SMC_SWSTATE doesn't allow for code that access
      the first element of initialState.levels and ACPIState.levels
      arrays:
      
      drivers/gpu/drm/radeon/ni_dpm.c:
      1690         table->initialState.levels[0].mclk.vMPLL_AD_FUNC_CNTL =
      1691                 cpu_to_be32(ni_pi->clock_registers.mpll_ad_func_cntl);
      ...
      1903:   table->ACPIState.levels[0].mclk.vMPLL_AD_FUNC_CNTL = cpu_to_be32(mpll_ad_func_cntl);
      1904:   table->ACPIState.levels[0].mclk.vMPLL_AD_FUNC_CNTL_2 = cpu_to_be32(mpll_ad_func_cntl_2);
      
      because such element cannot exist without previously allocating
      any dynamic memory for it (which never actually happens).
      
      That's why struct NISLANDS_SMC_SWSTATE should only be used as type
      for object driverState and new struct SISLANDS_SMC_SWSTATE_SINGLE is
      created as type for objects initialState, ACPIState and ULVState.
      
      Also, with the change from one-element array to flexible-array member
      in commit 434fb1e7 ("drm/radeon/nislands_smc.h: Replace one-element
      array with flexible-array member in struct NISLANDS_SMC_SWSTATE"), the
      size of dpmLevels in struct NISLANDS_SMC_STATETABLE should be fixed to
      be NISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE instead of
      NISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE - 1.
      
      Bug: https://lore.kernel.org/dri-devel/3eedbe78-1fbd-4763-a7f3-ac5665e76a4a@xenosoft.de/
      Fixes: 434fb1e7
      
       ("drm/radeon/nislands_smc.h: Replace one-element array with flexible-array member in struct NISLANDS_SMC_SWSTATE")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarChristian Zigotzky <chzigotzky@xenosoft.de>
      Tested-by: default avatarChristian Zigotzky <chzigotzky@xenosoft.de>
      Link: https://lore.kernel.org/dri-devel/9bb5fcbd-daf5-1669-b3e7-b8624b3c36f9@xenosoft.de/
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      5d31950a
    • Gao Xiang's avatar
      erofs: fix 1 lcluster-sized pcluster for big pcluster · 0852b6ca
      Gao Xiang authored
      If the 1st NONHEAD lcluster of a pcluster isn't CBLKCNT lcluster type
      rather than a HEAD or PLAIN type instead, which means its pclustersize
      _must_ be 1 lcluster (since its uncompressed size < 2 lclusters),
      as illustrated below:
      
             HEAD     HEAD / PLAIN    lcluster type
         ____________ ____________
        |_:__________|_________:__|   file data (uncompressed)
         .                .
        .____________.
        |____________|                pcluster data (compressed)
      
      Such on-disk case was explained before [1] but missed to be handled
      properly in the runtime implementation.
      
      It can be observed if manually generating 1 lcluster-sized pcluster
      with 2 lclusters (thus CBLKCNT doesn't exist.) Let's fix it now.
      
      [1] https://lore.kernel.org/r/20210407043927.10623-1-xiang@kernel.org
      
      Link: https://lore.kernel.org/r/20210510064715.29123-1-xiang@kernel.org
      Fixes: cec6e93b
      
       ("erofs: support parsing big pcluster compress indexes")
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarGao Xiang <xiang@kernel.org>
      0852b6ca
    • Guenter Roeck's avatar
      hwmon: (adm9240) Fix writes into inX_max attributes · 3b5169c2
      Guenter Roeck authored
      When converting the driver to use the devm_hwmon_device_register_with_info
      API, the wrong register was selected when writing into inX_max attributes.
      Fix it.
      
      Fixes: 124b7e34
      
       ("hwmon: (adm9240) Convert to devm_hwmon_device_register_with_info API")
      Reported-by: default avatarChris Packham <Chris.Packham@alliedtelesis.co.nz>
      Tested-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      3b5169c2