1. 12 May, 2021 8 commits
    • Ingo Molnar's avatar
      rcu: Fix various typos in comments · a616aec9
      Ingo Molnar authored
      Fix ~12 single-word typos in RCU code comments.
      
      [ paulmck: Apply feedback from Randy Dunlap. ]
      Reviewed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      a616aec9
    • Frederic Weisbecker's avatar
      rcu/nocb: Unify timers · e75bcd48
      Frederic Weisbecker authored
      Now that ->nocb_timer and ->nocb_bypass_timer have become quite similar,
      this commit merges them together.  A new RCU_NOCB_WAKE_BYPASS wake level
      is introduced.  As a result, timers perform all kinds of deferred wake
      ups but other deferred wakeup callsites only handle non-bypass wakeups
      in order not to wake up rcuo too early.
      
      The timer also unconditionally executes a full barrier so as to order
      timer_pending() and callback enqueue although the path performing
      RCU_NOCB_WAKE_FORCE that makes use of it is debatable. It should also
      test against the rdp leader instead of the current rdp.
      
      This unconditional full barrier shouldn't bring visible overhead since
      these timers almost never fire.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      e75bcd48
    • Frederic Weisbecker's avatar
      rcu/nocb: Prepare for fine-grained deferred wakeup · 87090516
      Frederic Weisbecker authored
      Tuning the deferred wakeup level must be done from a safe wakeup
      point. Currently those sites are:
      
      * ->nocb_timer
      * user/idle/guest entry
      * CPU down
      * softirq/rcuc
      
      All of these sites perform the wake up for both RCU_NOCB_WAKE and
      RCU_NOCB_WAKE_FORCE.
      
      In order to merge ->nocb_timer and ->nocb_bypass_timer together, we plan
      to add a new RCU_NOCB_WAKE_BYPASS that really should be deferred until
      a timer fires so that we don't wake up the NOCB-gp kthread too early.
      
      To prepare for that, this commit specifies the per-callsite wakeup
      level/limit.
      
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      [ paulmck: Fix non-NOCB rcu_nocb_need_deferred_wakeup() definition. ]
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      87090516
    • Frederic Weisbecker's avatar
      rcu/nocb: Only cancel nocb timer if not polling · f9fc166b
      Frederic Weisbecker authored
      This commit refrains deleting the ->nocb_timer if rcu_nocb is polling
      because it should not ever have been queued in the polling case.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      f9fc166b
    • Frederic Weisbecker's avatar
      rcu/nocb: Delete bypass_timer upon nocb_gp wakeup · 3b2348e2
      Frederic Weisbecker authored
      A NOCB-gp wake p can safely delete the ->nocb_bypass_timer because
      nocb_gp_wait() will recheck again the bypass state and rearm the bypass
      timer if necessary.  This commit therefore deletes this timer.
      Reviewed-by: default avatarBoqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      3b2348e2
    • Frederic Weisbecker's avatar
      rcu/nocb: Cancel nocb_timer upon nocb_gp wakeup · b6e2c4ed
      Frederic Weisbecker authored
      When waking up in nocb_gp_wait(), there is no need to keep the nocb_timer
      around because this function will traverse the whole rdp list. Any
      update performed before the timer was armed will now be visible after
      the ->nocb_gp_lock acquire.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      b6e2c4ed
    • Frederic Weisbecker's avatar
      rcu/nocb: Allow de-offloading rdp leader · 552cac80
      Frederic Weisbecker authored
      The only thing that prevented an rdp leader from being de-offloaded was
      the nocb_bypass_timer that used to lock the nocb_lock of the rdp leader.
      
      If an rdp gets de-offloaded, it will subtlely ignore rcu_nocb_lock()
      calls and do its job in the timer unsafely.  Worse yet:  If it gets
      re-offloaded in the middle of the timer, rcu_nocb_unlock() would try to
      unlock, leaving it imbalanced.
      
      Now that the nocb_bypass_timer doesn't use the nocb_lock anymore,
      de-offloading the rdp leader is now safe.  This commit therefore allows
      the rdp leader to be de-offloaded.
      Reported-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      552cac80
    • Frederic Weisbecker's avatar
      rcu/nocb: Directly call __wake_nocb_gp() from bypass timer · c7ef7500
      Frederic Weisbecker authored
      The bypass timer calls __call_rcu_nocb_wake() instead of directly
      calling __wake_nocb_gp().  The only difference here is that
      rdp->qlen_last_fqs_check gets overridden.  But resetting the deferred
      force quiescent state base shouldn't be relevant for that timer.  In fact
      the bypass queue in question can be for any rdp from the group and not
      necessarily the rdp leader on which the bypass timer is attached.
      
      This commit therefore calls __wake_nocb_gp() directly.  This way we
      don't even need to lock the ->nocb_lock.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      c7ef7500
  2. 10 May, 2021 2 commits
    • Frederic Weisbecker's avatar
      timer: Revert "timer: Add timer_curr_running()" · 258ca95e
      Frederic Weisbecker authored
      This reverts commit dcd42591.
      The only user was RCU/nocb.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      258ca95e
    • Frederic Weisbecker's avatar
      rcu/nocb: Use the rcuog CPU's ->nocb_timer · d76e0926
      Frederic Weisbecker authored
      Currently each CPU has its own ->nocb_timer queued when the nocb_gp
      wakeup must be deferred.  This approach has many drawbacks, compared to
      a solution based on a single timer per NOCB group:
      
      * There are a lot of timers to maintain.
      
      * The per-rdp ->nocb_lock must be held to queue and cancel the timer
        and this lock can already be heavily contended.
      
      * One timer firing doesn't cancel the other timers in the same group:
        - These other timers can thus cause spurious wakeups
        - Each rdp that queued a timer must lock both ->nocb_lock and then
          ->nocb_gp_lock upon exit from the kernel to idle/user/guest mode.
      
      * We can't cancel all of them if we detect an unflushed bypass in
        nocb_gp_wait(). In fact currently we only ever cancel the ->nocb_timer
        of the leader group.
      
      * The leader group's nocb_timer is cancelled without locking ->nocb_lock
        in nocb_gp_wait().  This currently appears to be safe but is an
        accident waiting to happen.
      
      * Since the timer acquires ->nocb_lock, it requires extra care in the
        NOCB (de-)offloading process, requiring that it be either enabled or
        disabled and then flushed.
      
      This commit instead uses the rcuog kthread's CPU's ->nocb_timer instead.
      It is protected by nocb_gp_lock, which is _way_ less contended and
      remains so even after this change.  As a matter of fact, the nocb_timer
      almost never fires and the deferred wakeup is mostly carried out upon
      idle/user/guest entry.  Now the early check performed at this point in
      do_nocb_deferred_wakeup() is done on rdp_gp->nocb_defer_wakeup, which
      is of course racy.  However, this raciness is harmless because we only
      need the guarantee that the timer is queued if we were the last one to
      queue it.  Any other situation (another CPU has queued it and we either
      see it or not) is fine.
      
      This solves all the issues listed above.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      d76e0926
  3. 09 May, 2021 10 commits
    • Linus Torvalds's avatar
      Linux 5.13-rc1 · 6efb943b
      Linus Torvalds authored
      6efb943b
    • Linus Torvalds's avatar
      fbmem: fix horribly incorrect placement of __maybe_unused · 6dae40ae
      Linus Torvalds authored
      Commit b9d79e4c ("fbmem: Mark proc_fb_seq_ops as __maybe_unused")
      places the '__maybe_unused' in an entirely incorrect location between
      the "struct" keyword and the structure name.
      
      It's a wonder that gcc accepts that silently, but clang quite reasonably
      warns about it:
      
          drivers/video/fbdev/core/fbmem.c:736:21: warning: attribute declaration must precede definition [-Wignored-attributes]
          static const struct __maybe_unused seq_operations proc_fb_seq_ops = {
                              ^
      
      Fix it.
      
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6dae40ae
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm · efc58a96
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Bit later than usual, I queued them all up on Friday then promptly
        forgot to write the pull request email. This is mainly amdgpu fixes,
        with some radeon/msm/fbdev and one i915 gvt fix thrown in.
      
        amdgpu:
         - MPO hang workaround
         - Fix for concurrent VM flushes on vega/navi
         - dcefclk is not adjustable on navi1x and newer
         - MST HPD debugfs fix
         - Suspend/resumes fixes
         - Register VGA clients late in case driver fails to load
         - Fix GEM leak in user framebuffer create
         - Add support for polaris12 with 32 bit memory interface
         - Fix duplicate cursor issue when using overlay
         - Fix corruption with tiled surfaces on VCN3
         - Add BO size and stride check to fix BO size verification
      
        radeon:
         - Fix off-by-one in power state parsing
         - Fix possible memory leak in power state parsing
      
        msm:
         - NULL ptr dereference fix
      
        fbdev:
         - procfs disabled warning fix
      
        i915:
         - gvt: Fix a possible division by zero in vgpu display rate
           calculation"
      
      * tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: Use device specific BO size & stride check.
        drm/amdgpu: Init GFX10_ADDR_CONFIG for VCN v3 in DPG mode.
        drm/amd/pm: initialize variable
        drm/radeon: Avoid power table parsing memory leaks
        drm/radeon: Fix off-by-one power_state index heap overwrite
        drm/amd/display: Fix two cursor duplication when using overlay
        drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC
        fbmem: Mark proc_fb_seq_ops as __maybe_unused
        drm/msm/dpu: Delete bonkers code
        drm/i915/gvt: Prevent divided by zero when calculating refresh rate
        amdgpu: fix GEM obj leak in amdgpu_display_user_framebuffer_create
        drm/amdgpu: Register VGA clients after init can no longer fail
        drm/amdgpu: Handling of amdgpu_device_resume return value for graceful teardown
        drm/amdgpu: fix r initial values
        drm/amd/display: fix wrong statement in mst hpd debugfs
        amdgpu/pm: set pp_dpm_dcefclk to readonly on NAVI10 and newer gpus
        amdgpu/pm: Prevent force of DCEFCLK on NAVI10 and SIENNA_CICHLID
        drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2
        drm/amd/display: Reject non-zero src_y and src_x for video planes
      efc58a96
    • Linus Torvalds's avatar
      Merge tag 'block-5.13-2021-05-09' of git://git.kernel.dk/linux-block · 506c3079
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "Turns out the bio max size change still has issues, so let's get it
        reverted for 5.13-rc1. We'll shake out the issues there and defer it
        to 5.14 instead"
      
      * tag 'block-5.13-2021-05-09' of git://git.kernel.dk/linux-block:
        Revert "bio: limit bio max size"
      506c3079
    • Linus Torvalds's avatar
      Merge tag '5.13-rc-smb3-part3' of git://git.samba.org/sfrench/cifs-2.6 · 0a55a1fb
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Three small SMB3 chmultichannel related changesets (also for stable)
        from the SMB3 test event this week.
      
        The other fixes are still in review/testing"
      
      * tag '5.13-rc-smb3-part3' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: if max_channels set to more than one channel request multichannel
        smb3: do not attempt multichannel to server which does not support it
        smb3: when mounting with multichannel include it in requested capabilities
      0a55a1fb
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9819f682
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "A set of scheduler updates:
      
         - Prevent PSI state corruption when schedule() races with cgroup
           move.
      
           A recent commit combined two PSI callbacks to reduce the number of
           cgroup tree updates, but missed that schedule() can drop rq::lock
           for load balancing, which opens the race window for
           cgroup_move_task() which then observes half updated state.
      
           The fix is to solely use task::ps_flags instead of looking at the
           potentially mismatching scheduler state
      
         - Prevent an out-of-bounds access in uclamp caused bu a rounding
           division which can lead to an off-by-one error exceeding the
           buckets array size.
      
         - Prevent unfairness caused by missing load decay when a task is
           attached to a cfs runqueue.
      
           The old load of the task was attached to the runqueue and never
           removed. Fix it by enforcing the load update through the hierarchy
           for unthrottled run queue instances.
      
         - A documentation fix fot the 'sched_verbose' command line option"
      
      * tag 'sched-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix unfairness caused by missing load decay
        sched: Fix out-of-bound access in uclamp
        psi: Fix psi state corruption when schedule() races with cgroup move
        sched,doc: sched_debug_verbose cmdline should be sched_verbose
      9819f682
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 732a27a0
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A set of locking related fixes and updates:
      
         - Two fixes for the futex syscall related to the timeout handling.
      
           FUTEX_LOCK_PI does not support the FUTEX_CLOCK_REALTIME bit and
           because it's not set the time namespace adjustment for clock
           MONOTONIC is applied wrongly.
      
           FUTEX_WAIT cannot support the FUTEX_CLOCK_REALTIME bit because its
           always a relative timeout.
      
         - Cleanups in the futex syscall entry points which became obvious
           when the two timeout handling bugs were fixed.
      
         - Cleanup of queued_write_lock_slowpath() as suggested by Linus
      
         - Fixup of the smp_call_function_single_async() prototype"
      
      * tag 'locking-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Make syscall entry points less convoluted
        futex: Get rid of the val2 conditional dance
        futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI
        Revert 337f1304 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
        locking/qrwlock: Cleanup queued_write_lock_slowpath()
        smp: Fix smp_call_function_single_async prototype
      732a27a0
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 85bbba1c
      Linus Torvalds authored
      Pull x86 perf fix from Borislav Petkov:
       "Handle power-gating of AMD IOMMU perf counters properly when they are
        used"
      
      * tag 'perf_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
      85bbba1c
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dd3e4012
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
       "A bunch of things accumulated for x86 in the last two weeks:
      
         - Fix guest vtime accounting so that ticks happening while the guest
           is running can also be accounted to it. Along with a consolidation
           to the guest-specific context tracking helpers.
      
         - Provide for the host NMI handler running after a VMX VMEXIT to be
           able to run on the kernel stack correctly.
      
         - Initialize MSR_TSC_AUX when RDPID is supported and not RDTSCP (virt
           relevant - real hw supports both)
      
         - A code generation improvement to TASK_SIZE_MAX through the use of
           alternatives
      
         - The usual misc and related cleanups and improvements"
      
      * tag 'x86_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        KVM: x86: Consolidate guest enter/exit logic to common helpers
        context_tracking: KVM: Move guest enter/exit wrappers to KVM's domain
        context_tracking: Consolidate guest enter/exit wrappers
        sched/vtime: Move guest enter/exit vtime accounting to vtime.h
        sched/vtime: Move vtime accounting external declarations above inlines
        KVM: x86: Defer vtime accounting 'til after IRQ handling
        context_tracking: Move guest exit vtime accounting to separate helpers
        context_tracking: Move guest exit context tracking to separate helpers
        KVM/VMX: Invoke NMI non-IST entry instead of IST entry
        x86/cpu: Remove write_tsc() and write_rdtscp_aux() wrappers
        x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
        x86/resctrl: Fix init const confusion
        x86: Delete UD0, UD1 traces
        x86/smpboot: Remove duplicate includes
        x86/cpu: Use alternative to generate the TASK_SIZE_MAX constant
      dd3e4012
    • Jens Axboe's avatar
      Revert "bio: limit bio max size" · 35c820e7
      Jens Axboe authored
      This reverts commit cd2c7545.
      
      Alex reports that the commit causes corruption with LUKS on ext4. Revert
      it for now so that this can be investigated properly.
      
      Link: https://lore.kernel.org/linux-block/1620493841.bxdq8r5haw.none@localhost/Reported-by: default avatarAlex Xu (Hello71) <alex_y_xu@yahoo.ca>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      35c820e7
  4. 08 May, 2021 11 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · b7415964
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to avoid over-allocating the kernel's mapping on !MMU systems,
         which could lead to up to 2MiB of lost memory
      
       - The SiFive address extension errata only manifest on rv64, they are
         now disabled on rv32 where they are unnecessary
      
       - A pair of late-landing cleanups
      
      * tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: remove unused handle_exception symbol
        riscv: Consistify protect_kernel_linear_mapping_text_rodata() use
        riscv: enable SiFive errata CIP-453 and CIP-1200 Kconfig only if CONFIG_64BIT=y
        riscv: Only extend kernel reservation if mapped read-only
      b7415964
    • Linus Torvalds's avatar
      drm/i915/display: fix compiler warning about array overrun · fec4d427
      Linus Torvalds authored
      intel_dp_check_mst_status() uses a 14-byte array to read the DPRX Event
      Status Indicator data, but then passes that buffer at offset 10 off as
      an argument to drm_dp_channel_eq_ok().
      
      End result: there are only 4 bytes remaining of the buffer, yet
      drm_dp_channel_eq_ok() wants a 6-byte buffer.  gcc-11 correctly warns
      about this case:
      
        drivers/gpu/drm/i915/display/intel_dp.c: In function ‘intel_dp_check_mst_status’:
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: warning: ‘drm_dp_channel_eq_ok’ reading 6 bytes from a region of size 4 [-Wstringop-overread]
         3491 |                     !drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) {
              |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: note: referencing argument 1 of type ‘const u8 *’ {aka ‘const unsigned char *’}
        In file included from drivers/gpu/drm/i915/display/intel_dp.c:38:
        include/drm/drm_dp_helper.h:1466:6: note: in a call to function ‘drm_dp_channel_eq_ok’
         1466 | bool drm_dp_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
              |      ^~~~~~~~~~~~~~~~~~~~
             6:14 elapsed
      
      This commit just extends the original array by 2 zero-initialized bytes,
      avoiding the warning.
      
      There may be some underlying bug in here that caused this confusion, but
      this is at least no worse than the existing situation that could use
      random data off the stack.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fec4d427
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 07db0563
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is a set of minor fixes in various drivers (qla2xxx, ufs,
        scsi_debug, lpfc) one doc fix and a fairly large update to the fnic
        driver to remove the open coded iteration functions in favour of the
        scsi provided ones"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: fnic: Use scsi_host_busy_iter() to traverse commands
        scsi: fnic: Kill 'exclude_id' argument to fnic_cleanup_io()
        scsi: scsi_debug: Fix cmd_per_lun, set to max_queue
        scsi: ufs: core: Narrow down fast path in system suspend path
        scsi: ufs: core: Cancel rpm_dev_flush_recheck_work during system suspend
        scsi: ufs: core: Do not put UFS power into LPM if link is broken
        scsi: qla2xxx: Prevent PRLI in target mode
        scsi: qla2xxx: Add marginal path handling support
        scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found
        scsi: ufs: core: Fix a typo in ufs-sysfs.c
        scsi: lpfc: Fix bad memory access during VPD DUMP mailbox command
        scsi: lpfc: Fix DMA virtual address ptr assignment in bsg
        scsi: lpfc: Fix illegal memory access on Abort IOCBs
        scsi: blk-mq: Fix build warning when making htmldocs
      07db0563
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 0f979d81
      Linus Torvalds authored
      Pull more Kbuild updates from Masahiro Yamada:
      
       - Convert sh and sparc to use generic shell scripts to generate the
         syscall headers
      
       - refactor .gitignore files
      
       - Update kernel/config_data.gz only when the content of the .config
         is really changed, which avoids the unneeded re-link of vmlinux
      
       - move "remove stale files" workarounds to scripts/remove-stale-files
      
       - suppress unused-but-set-variable warnings by default for Clang
         as well
      
       - fix locale setting LANG=C to LC_ALL=C
      
       - improve 'make distclean'
      
       - always keep intermediate objects from scripts/link-vmlinux.sh
      
       - move IF_ENABLED out of <linux/kconfig.h> to make it self-contained
      
       - misc cleanups
      
      * tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
        linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in <linux/kernel.h>
        kbuild: Don't remove link-vmlinux temporary files on exit/signal
        kbuild: remove the unneeded comments for external module builds
        kbuild: make distclean remove tag files in sub-directories
        kbuild: make distclean work against $(objtree) instead of $(srctree)
        kbuild: refactor modname-multi by using suffix-search
        kbuild: refactor fdtoverlay rule
        kbuild: parameterize the .o part of suffix-search
        arch: use cross_compiling to check whether it is a cross build or not
        kbuild: remove ARCH=sh64 support from top Makefile
        .gitignore: prefix local generated files with a slash
        kbuild: replace LANG=C with LC_ALL=C
        Makefile: Move -Wno-unused-but-set-variable out of GCC only block
        kbuild: add a script to remove stale generated files
        kbuild: update config_data.gz only when the content of .config is changed
        .gitignore: ignore only top-level modules.builtin
        .gitignore: move tags and TAGS close to other tag files
        kernel/.gitgnore: remove stale timeconst.h and hz.bc
        usr/include: refactor .gitignore
        genksyms: fix stale comment
        ...
      0f979d81
    • Steve French's avatar
      smb3: if max_channels set to more than one channel request multichannel · c1f8a398
      Steve French authored
      Mounting with "multichannel" is obviously implied if user requested
      more than one channel on mount (ie mount parm max_channels>1).
      Currently both have to be specified. Fix that so that if max_channels
      is greater than 1 on mount, enable multichannel rather than silently
      falling back to non-multichannel.
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-By: default avatarTom Talpey <tom@talpey.com>
      Cc: <stable@vger.kernel.org> # v5.11+
      Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      c1f8a398
    • Steve French's avatar
      smb3: do not attempt multichannel to server which does not support it · 9c2dc11d
      Steve French authored
      We were ignoring CAP_MULTI_CHANNEL in the server response - if the
      server doesn't support multichannel we should not be attempting it.
      
      See MS-SMB2 section 3.2.5.2
      Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Reviewed-By: default avatarTom Talpey <tom@talpey.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      9c2dc11d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · ab159ac5
      Linus Torvalds authored
      Pull powerpc updates and fixes from Michael Ellerman:
       "A bit of a mixture of things, tying up some loose ends.
      
        There's the removal of the nvlink code, which dependend on a commit in
        the vfio tree. Then the enablement of huge vmalloc which was in next
        for a few weeks but got dropped due to conflicts. And there's also a
        few fixes.
      
        Summary:
      
         - Remove the nvlink support now that it's only user has been removed.
      
         - Enable huge vmalloc mappings for Radix MMU (P9).
      
         - Fix KVM conversion to gfn-based MMU notifier callbacks.
      
         - Fix a kexec/kdump crash with hot plugged CPUs.
      
         - Fix boot failure on 32-bit with CONFIG_STACKPROTECTOR.
      
         - Restore alphabetic order of the selects under CONFIG_PPC.
      
        Thanks to: Christophe Leroy, Christoph Hellwig, Nicholas Piggin,
        Sandipan Das, and Sourabh Jain"
      
      * tag 'powerpc-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        KVM: PPC: Book3S HV: Fix conversion to gfn-based MMU notifier callbacks
        powerpc/kconfig: Restore alphabetic order of the selects under CONFIG_PPC
        powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR
        powerpc/powernv/memtrace: Fix dcache flushing
        powerpc/kexec_file: Use current CPU info while setting up FDT
        powerpc/64s/radix: Enable huge vmalloc mappings
        powerpc/powernv: remove the nvlink support
      ab159ac5
    • Steve French's avatar
      smb3: when mounting with multichannel include it in requested capabilities · 679971e7
      Steve French authored
      In the SMB3/SMB3.1.1 negotiate protocol request, we are supposed to
      advertise CAP_MULTICHANNEL capability when establishing multiple
      channels has been requested by the user doing the mount. See MS-SMB2
      sections 2.2.3 and 3.2.5.2
      
      Without setting it there is some risk that multichannel could fail
      if the server interpreted the field strictly.
      Reviewed-By: default avatarTom Talpey <tom@talpey.com>
      Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      679971e7
    • Linus Torvalds's avatar
      Merge tag 'net-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · fc858a52
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Networking fixes for 5.13-rc1, including fixes from bpf, can and
        netfilter trees. Self-contained fixes, nothing risky.
      
        Current release - new code bugs:
      
         - dsa: ksz: fix a few bugs found by static-checker in the new driver
      
         - stmmac: fix frame preemption handshake not triggering after
           interface restart
      
        Previous releases - regressions:
      
         - make nla_strcmp handle more then one trailing null character
      
         - fix stack OOB reads while fragmenting IPv4 packets in openvswitch
           and net/sched
      
         - sctp: do asoc update earlier in sctp_sf_do_dupcook_a
      
         - sctp: delay auto_asconf init until binding the first addr
      
         - stmmac: clear receive all(RA) bit when promiscuous mode is off
      
         - can: mcp251x: fix resume from sleep before interface was brought up
      
        Previous releases - always broken:
      
         - bpf: fix leakage of uninitialized bpf stack under speculation
      
         - bpf: fix masking negation logic upon negative dst register
      
         - netfilter: don't assume that skb_header_pointer() will never fail
      
         - only allow init netns to set default tcp cong to a restricted algo
      
         - xsk: fix xp_aligned_validate_desc() when len == chunk_size to avoid
           false positive errors
      
         - ethtool: fix missing NLM_F_MULTI flag when dumping
      
         - can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
      
         - sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
      
         - bridge: fix NULL-deref caused by a races between assigning
           rx_handler_data and setting the IFF_BRIDGE_PORT bit
      
        Latecomer:
      
         - seg6: add counters support for SRv6 Behaviors"
      
      * tag 'net-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (73 commits)
        atm: firestream: Use fallthrough pseudo-keyword
        net: stmmac: Do not enable RX FIFO overflow interrupts
        mptcp: fix splat when closing unaccepted socket
        i40e: Remove LLDP frame filters
        i40e: Fix PHY type identifiers for 2.5G and 5G adapters
        i40e: fix the restart auto-negotiation after FEC modified
        i40e: Fix use-after-free in i40e_client_subtask()
        i40e: fix broken XDP support
        netfilter: nftables: avoid potential overflows on 32bit arches
        netfilter: nftables: avoid overflows in nft_hash_buckets()
        tcp: Specify cmsgbuf is user pointer for receive zerocopy.
        mlxsw: spectrum_mr: Update egress RIF list before route's action
        net: ipa: fix inter-EE IRQ register definitions
        can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
        can: mcp251x: fix resume from sleep before interface was brought up
        can: mcp251xfd: mcp251xfd_probe(): add missing can_rx_offload_del() in error path
        can: mcp251xfd: mcp251xfd_probe(): fix an error pointer dereference in probe
        netfilter: nftables: Fix a memleak from userdata error path in new objects
        netfilter: remove BUG_ON() after skb_header_pointer()
        netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
        ...
      fc858a52
    • Masahiro Yamada's avatar
      linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in <linux/kernel.h> · 0ab1438b
      Masahiro Yamada authored
      <linux/kconfig.h> is included from all the kernel-space source files,
      including C, assembly, linker scripts. It is intended to contain a
      minimal set of macros to evaluate CONFIG options.
      
      IF_ENABLED() is an intruder here because (x ? y : z) is C code, which
      should not be included from assembly files or linker scripts.
      
      Also, <linux/kconfig.h> is no longer self-contained because NULL is
      defined in <linux/stddef.h>.
      
      Move IF_ENABLED() out to <linux/kernel.h> as PTR_IF(). PTF_IF()
      takes the general boolean expression instead of a CONFIG option
      so that it fits better in <linux/kernel.h>.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      0ab1438b
    • Michael Ellerman's avatar
      Merge branch 'master' into next · f96271ce
      Michael Ellerman authored
      Merge master back into next, this allows us to resolve some conflicts in
      arch/powerpc/Kconfig, and also re-sort the symbols under config PPC so
      that they are in alphabetical order again.
      f96271ce
  5. 07 May, 2021 9 commits