1. 06 Dec, 2020 25 commits
  2. 05 Dec, 2020 9 commits
  3. 04 Dec, 2020 6 commits
    • Mike Snitzer's avatar
      block: fix incorrect branching in blk_max_size_offset() · 65f33b35
      Mike Snitzer authored
      If non-zero 'chunk_sectors' is passed in to blk_max_size_offset() that
      override will be incorrectly ignored.
      
      Old blk_max_size_offset() branching, prior to commit 3ee16db3,
      must be used only if passed 'chunk_sectors' override is zero.
      
      Fixes: 3ee16db3 ("dm: fix IO splitting")
      Cc: stable@vger.kernel.org # 5.9
      Reported-by: default avatarJohn Dorminy <jdorminy@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      65f33b35
    • Linus Torvalds's avatar
      Merge tag 'for-5.10/dm-fixes' of... · b3298500
      Linus Torvalds authored
      Merge tag 'for-5.10/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix DM's bio splitting changes that were made during v5.9. This
         restores splitting in terms of varied per-target ti->max_io_len
         rather than use block core's single stacked 'chunk_sectors' limit.
      
       - Like DM crypt, update DM integrity to not use crypto drivers that
         have CRYPTO_ALG_ALLOCATES_MEMORY set.
      
       - Fix DM writecache target's argument parsing and status display.
      
       - Remove needless BUG() from dm writecache's persistent_memory_claim()
      
       - Remove old gcc workaround in DM cache target's block_div() for ARM
         link errors now that gcc >= 4.9 is required.
      
       - Fix RCU locking in dm_blk_report_zones and dm_dax_zero_page_range.
      
       - Remove old, and now frowned upon, BUG_ON(in_interrupt()) in
         dm_table_event().
      
       - Remove invalid sparse annotations from dm_prepare_ioctl() and
         dm_unprepare_ioctl().
      
      * tag 'for-5.10/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: remove invalid sparse __acquires and __releases annotations
        dm: fix double RCU unlock in dm_dax_zero_page_range() error path
        dm: fix IO splitting
        dm writecache: remove BUG() and fail gracefully instead
        dm table: Remove BUG_ON(in_interrupt())
        dm: fix bug with RCU locking in dm_blk_report_zones
        Revert "dm cache: fix arm link errors with inline"
        dm writecache: fix the maximum number of arguments
        dm writecache: advance the number of arguments when reporting max_age
        dm integrity: don't use drivers that have CRYPTO_ALG_ALLOCATES_MEMORY
      b3298500
    • Mike Snitzer's avatar
      dm: remove invalid sparse __acquires and __releases annotations · bde3808b
      Mike Snitzer authored
      Fixes sparse warnings:
      drivers/md/dm.c:508:12: warning: context imbalance in 'dm_prepare_ioctl' - wrong count at exit
      drivers/md/dm.c:543:13: warning: context imbalance in 'dm_unprepare_ioctl' - wrong count at exit
      
      Fixes: 971888c4 ("dm: hold DM table for duration of ioctl rather than use blkdev_get")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      bde3808b
    • Mike Snitzer's avatar
      dm: fix double RCU unlock in dm_dax_zero_page_range() error path · f05c4403
      Mike Snitzer authored
      Remove redundant dm_put_live_table() in dm_dax_zero_page_range() error
      path to fix sparse warning:
      drivers/md/dm.c:1208:9: warning: context imbalance in 'dm_dax_zero_page_range' - unexpected unlock
      
      Fixes: cdf6cdcd ("dm,dax: Add dax zero_page_range operation")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      f05c4403
    • Mike Snitzer's avatar
      dm: fix IO splitting · 3ee16db3
      Mike Snitzer authored
      Commit 882ec4e6 ("dm table: stack 'chunk_sectors' limit to account
      for target-specific splitting") caused a couple regressions:
      1) Using lcm_not_zero() when stacking chunk_sectors was a bug because
         chunk_sectors must reflect the most limited of all devices in the
         IO stack.
      2) DM targets that set max_io_len but that do _not_ provide an
         .iterate_devices method no longer had there IO split properly.
      
      And commit 5091cdec ("dm: change max_io_len() to use
      blk_max_size_offset()") also caused a regression where DM no longer
      supported varied (per target) IO splitting. The implication being the
      potential for severely reduced performance for IO stacks that use a DM
      target like dm-cache to hide performance limitations of a slower
      device (e.g. one that requires 4K IO splitting).
      
      Coming full circle: Fix all these issues by discontinuing stacking
      chunk_sectors up using ti->max_io_len in dm_calculate_queue_limits(),
      add optional chunk_sectors override argument to blk_max_size_offset()
      and update DM's max_io_len() to pass ti->max_io_len to its
      blk_max_size_offset() call.
      
      Passing in an optional chunk_sectors override to blk_max_size_offset()
      allows for code reuse of block's centralized calculation for max IO
      size based on provided offset and split boundary.
      
      Fixes: 882ec4e6 ("dm table: stack 'chunk_sectors' limit to account for target-specific splitting")
      Fixes: 5091cdec ("dm: change max_io_len() to use blk_max_size_offset()")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarJohn Dorminy <jdorminy@redhat.com>
      Reported-by: default avatarBruce Johnston <bjohnsto@redhat.com>
      Reported-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Reviewed-by: default avatarJohn Dorminy <jdorminy@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      3ee16db3
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-12-04' of git://anongit.freedesktop.org/drm/drm · e87297fa
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This week's regular fixes.
      
        i915 has fixes for a few races, use-after-free, and gpu hangs. Tegra
        just has some minor fixes that I didn't see much point in hanging on
        to. The nouveau fix is for all pre-nv50 cards and was reported a few
        times. Otherwise it's just some amdgpu, and a few misc fixes.
      
        Summary:
      
        amdgpu:
         - SMU11 manual fan fix
         - Renoir display clock fix
         - VCN3 dynamic powergating fix
      
        i915:
         - Program mocs:63 for cache eviction on gen9 (Chris)
         - Protect context lifetime with RCU (Chris)
         - Split the breadcrumb spinlock between global and contexts (Chris)
         - Retain default context state across shrinking (Venkata)
         - Limit frequency drop to RPe on parking (Chris)
         - Return earlier from intel_modeset_init() without display (Jani)
         - Defer initial modeset until after GGTT is initialized (Chris)
      
        nouveau:
         - pre-nv50 regression fix
      
        rockchip:
         - uninitialised LVDS property fix
      
        omap:
         - bridge fix
      
        panel:
         - race fix
      
        mxsfb:
         - fence sync fix
         - modifiers fix
      
        tegra:
         - idr init fix
         - sor fixes
         - output/of cleanup fix"
      
      * tag 'drm-fixes-2020-12-04' of git://anongit.freedesktop.org/drm/drm: (22 commits)
        drm/amdgpu/vcn3.0: remove old DPG workaround
        drm/amdgpu/vcn3.0: stall DPG when WPTR/RPTR reset
        drm/amd/display: Init clock value by current vbios CLKs
        drm/amdgpu/pm/smu11: Fix fan set speed bug
        drm/i915/display: Defer initial modeset until after GGTT is initialised
        drm/i915/display: return earlier from intel_modeset_init() without display
        drm/i915/gt: Limit frequency drop to RPe on parking
        drm/i915/gt: Retain default context state across shrinking
        drm/i915/gt: Split the breadcrumb spinlock between global and contexts
        drm/i915/gt: Protect context lifetime with RCU
        drm/i915/gt: Program mocs:63 for cache eviction on gen9
        drm/omap: sdi: fix bridge enable/disable
        drm/panel: sony-acx565akm: Fix race condition in probe
        drm/rockchip: Avoid uninitialized use of endpoint id in LVDS
        drm/tegra: sor: Disable clocks on error in tegra_sor_init()
        drm/nouveau: make sure ret is initialized in nouveau_ttm_io_mem_reserve
        drm: mxsfb: Implement .format_mod_supported
        drm: mxsfb: fix fence synchronization
        drm/tegra: output: Do not put OF node twice
        drm/tegra: replace idr_init() by idr_init_base()
        ...
      e87297fa