1. 04 Dec, 2020 1 commit
  2. 03 Dec, 2020 7 commits
    • Dave Airlie's avatar
      Merge tag 'drm/tegra/for-5.10-rc7' of ssh://git.freedesktop.org/git/tegra/linux into drm-fixes · aac06646
      Dave Airlie authored
      drm/tegra: Fixes for v5.10-rc7
      
      This is a set of small fixes for various issues found during the last
      couple of weeks.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thierry Reding <thierry.reding@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201127145324.125776-1-thierry.reding@gmail.com
      aac06646
    • Chris Wilson's avatar
      drm/i915/display: Defer initial modeset until after GGTT is initialised · ccc9e67a
      Chris Wilson authored
      Prior to sanitizing the GGTT, the only operations allowed in
      intel_display_init_nogem() are those to reserve the preallocated (and
      active) regions in the GGTT leftover from the BIOS. Trying to allocate a
      GGTT vma (such as intel_pin_and_fence_fb_obj during the initial modeset)
      may then conflict with other preallocated regions that have not yet been
      protected.
      
      Move the initial modesetting from the end of init_nogem to the beginning
      of init so that any vma pinning (either framebuffers or DSB, for example),
      is after the GGTT is ready to handle it.
      
      This will prevent the DSB object from being destroyed too early:
      
      [   53.449241] BUG: KASAN: use-after-free in i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.449309] Read of size 8 at addr ffff88811b1e8070 by task systemd-udevd/345
      
      [   53.449399] CPU: 1 PID: 345 Comm: systemd-udevd Tainted: G        W         5.10.0-rc5+ #12
      [   53.449409] Call Trace:
      [   53.449418]  dump_stack+0x9a/0xcc
      [   53.449558]  ? i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.449565]  print_address_description.constprop.0+0x3e/0x60
      [   53.449577]  ? _raw_spin_lock_irqsave+0x4e/0x50
      [   53.449718]  ? i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.449849]  ? i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.449857]  kasan_report.cold+0x1f/0x37
      [   53.449993]  ? i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.450130]  i915_init_ggtt+0x324/0x9e0 [i915]
      [   53.450273]  ? i915_ggtt_suspend+0x1f0/0x1f0 [i915]
      [   53.450281]  ? static_obj+0x69/0x80
      [   53.450289]  ? lockdep_init_map_waits+0xa9/0x310
      [   53.450431]  ? intel_wopcm_init+0x96/0x3d0 [i915]
      [   53.450581]  ? i915_gem_init+0x75/0x2d0 [i915]
      [   53.450720]  i915_gem_init+0x75/0x2d0 [i915]
      [   53.450852]  i915_driver_probe+0x8c2/0x1210 [i915]
      [   53.450993]  ? i915_pm_prepare+0x630/0x630 [i915]
      [   53.451006]  ? check_chain_key+0x1e7/0x2e0
      [   53.451025]  ? __pm_runtime_resume+0x58/0xb0
      [   53.451157]  i915_pci_probe+0xa6/0x2b0 [i915]
      [   53.451285]  ? i915_pci_remove+0x40/0x40 [i915]
      [   53.451295]  ? lockdep_hardirqs_on_prepare+0x124/0x230
      [   53.451302]  ? _raw_spin_unlock_irqrestore+0x42/0x50
      [   53.451309]  ? lockdep_hardirqs_on+0xbf/0x130
      [   53.451315]  ? preempt_count_sub+0xf/0xb0
      [   53.451321]  ? _raw_spin_unlock_irqrestore+0x2f/0x50
      [   53.451335]  pci_device_probe+0xf9/0x190
      [   53.451350]  really_probe+0x17f/0x5b0
      [   53.451365]  driver_probe_device+0x13a/0x1c0
      [   53.451376]  device_driver_attach+0x82/0x90
      [   53.451386]  ? device_driver_attach+0x90/0x90
      [   53.451391]  __driver_attach+0xab/0x190
      [   53.451401]  ? device_driver_attach+0x90/0x90
      [   53.451407]  bus_for_each_dev+0xe4/0x140
      [   53.451414]  ? subsys_dev_iter_exit+0x10/0x10
      [   53.451423]  ? __list_add_valid+0x2b/0xa0
      [   53.451440]  bus_add_driver+0x227/0x2e0
      [   53.451454]  driver_register+0xd3/0x150
      [   53.451585]  i915_init+0x92/0xac [i915]
      [   53.451592]  ? 0xffffffffa0a20000
      [   53.451598]  do_one_initcall+0xb6/0x3b0
      [   53.451606]  ? trace_event_raw_event_initcall_finish+0x150/0x150
      [   53.451614]  ? __kasan_kmalloc.constprop.0+0xc2/0xd0
      [   53.451627]  ? kmem_cache_alloc_trace+0x4a4/0x8e0
      [   53.451634]  ? kasan_unpoison_shadow+0x33/0x40
      [   53.451649]  do_init_module+0xf8/0x350
      [   53.451662]  load_module+0x43de/0x47f0
      [   53.451716]  ? module_frob_arch_sections+0x20/0x20
      [   53.451731]  ? rw_verify_area+0x5f/0x130
      [   53.451780]  ? __do_sys_finit_module+0x10d/0x1a0
      [   53.451785]  __do_sys_finit_module+0x10d/0x1a0
      [   53.451792]  ? __ia32_sys_init_module+0x40/0x40
      [   53.451800]  ? seccomp_do_user_notification.isra.0+0x5c0/0x5c0
      [   53.451829]  ? rcu_read_lock_bh_held+0xb0/0xb0
      [   53.451835]  ? mark_held_locks+0x24/0x90
      [   53.451856]  do_syscall_64+0x33/0x80
      [   53.451863]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [   53.451868] RIP: 0033:0x7fde09b4470d
      [   53.451875] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 53 f7 0c 00 f7 d8 64 89 01 48
      [   53.451880] RSP: 002b:00007ffd6abc1718 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   53.451890] RAX: ffffffffffffffda RBX: 000056444e528150 RCX: 00007fde09b4470d
      [   53.451895] RDX: 0000000000000000 RSI: 00007fde09a21ded RDI: 000000000000000f
      [   53.451899] RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000000
      [   53.451904] R10: 000000000000000f R11: 0000000000000246 R12: 00007fde09a21ded
      [   53.451909] R13: 0000000000000000 R14: 000056444e329200 R15: 000056444e528150
      
      [   53.451957] Allocated by task 345:
      [   53.451995]  kasan_save_stack+0x1b/0x40
      [   53.452001]  __kasan_kmalloc.constprop.0+0xc2/0xd0
      [   53.452006]  kmem_cache_alloc+0x1cd/0x8d0
      [   53.452146]  i915_vma_instance+0x126/0xb70 [i915]
      [   53.452304]  i915_gem_object_ggtt_pin_ww+0x222/0x3f0 [i915]
      [   53.452446]  intel_dsb_prepare+0x14f/0x230 [i915]
      [   53.452588]  intel_atomic_commit+0x183/0x690 [i915]
      [   53.452730]  intel_initial_commit+0x2bc/0x2f0 [i915]
      [   53.452871]  intel_modeset_init_nogem+0xa02/0x2af0 [i915]
      [   53.452995]  i915_driver_probe+0x8af/0x1210 [i915]
      [   53.453120]  i915_pci_probe+0xa6/0x2b0 [i915]
      [   53.453125]  pci_device_probe+0xf9/0x190
      [   53.453131]  really_probe+0x17f/0x5b0
      [   53.453136]  driver_probe_device+0x13a/0x1c0
      [   53.453142]  device_driver_attach+0x82/0x90
      [   53.453148]  __driver_attach+0xab/0x190
      [   53.453153]  bus_for_each_dev+0xe4/0x140
      [   53.453158]  bus_add_driver+0x227/0x2e0
      [   53.453164]  driver_register+0xd3/0x150
      [   53.453286]  i915_init+0x92/0xac [i915]
      [   53.453292]  do_one_initcall+0xb6/0x3b0
      [   53.453297]  do_init_module+0xf8/0x350
      [   53.453302]  load_module+0x43de/0x47f0
      [   53.453307]  __do_sys_finit_module+0x10d/0x1a0
      [   53.453312]  do_syscall_64+0x33/0x80
      [   53.453318]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      [   53.453345] Freed by task 82:
      [   53.453379]  kasan_save_stack+0x1b/0x40
      [   53.453384]  kasan_set_track+0x1c/0x30
      [   53.453389]  kasan_set_free_info+0x1b/0x30
      [   53.453394]  __kasan_slab_free+0x112/0x160
      [   53.453399]  kmem_cache_free+0xb2/0x3f0
      [   53.453536]  i915_gem_flush_free_objects+0x31a/0x3b0 [i915]
      [   53.453542]  process_one_work+0x519/0x9f0
      [   53.453547]  worker_thread+0x75/0x5c0
      [   53.453552]  kthread+0x1da/0x230
      [   53.453557]  ret_from_fork+0x22/0x30
      
      [   53.453584] The buggy address belongs to the object at ffff88811b1e8040
                      which belongs to the cache i915_vma of size 968
      [   53.453692] The buggy address is located 48 bytes inside of
                      968-byte region [ffff88811b1e8040, ffff88811b1e8408)
      [   53.453792] The buggy address belongs to the page:
      [   53.453842] page:00000000b35f7048 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88811b1ef940 pfn:0x11b1e8
      [   53.453847] head:00000000b35f7048 order:3 compound_mapcount:0 compound_pincount:0
      [   53.453853] flags: 0x8000000000010200(slab|head)
      [   53.453860] raw: 8000000000010200 ffff888115596248 ffff888115596248 ffff8881155b6340
      [   53.453866] raw: ffff88811b1ef940 0000000000170001 00000001ffffffff 0000000000000000
      [   53.453870] page dumped because: kasan: bad access detected
      
      [   53.453895] Memory state around the buggy address:
      [   53.453944]  ffff88811b1e7f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [   53.454011]  ffff88811b1e7f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [   53.454079] >ffff88811b1e8000: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
      [   53.454146]                                                              ^
      [   53.454211]  ffff88811b1e8080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [   53.454279]  ffff88811b1e8100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [   53.454347] ==================================================================
      [   53.454414] Disabling lock debugging due to kernel taint
      [   53.454434] general protection fault, probably for non-canonical address 0xdead0000000000d0: 0000 [#1] PREEMPT SMP KASAN PTI
      [   53.454446] CPU: 1 PID: 345 Comm: systemd-udevd Tainted: G    B   W         5.10.0-rc5+ #12
      [   53.454592] RIP: 0010:i915_init_ggtt+0x26f/0x9e0 [i915]
      [   53.454602] Code: 89 8d 48 ff ff ff 4c 8d 60 d0 49 39 c7 0f 84 37 02 00 00 4c 89 b5 40 ff ff ff 4d 8d bc 24 90 00 00 00 4c 89 ff e8 c1 97 f8 e0 <49> 83 bc 24 90 00 00 00 00 0f 84 0f 02 00 00 49 8d 7c 24 08 e8 a8
      [   53.454618] RSP: 0018:ffff88812247f430 EFLAGS: 00010286
      [   53.454625] RAX: 0000000000000000 RBX: ffff888136440000 RCX: ffffffffa03fb78f
      [   53.454633] RDX: 0000000000000000 RSI: 0000000000000008 RDI: dead000000000160
      [   53.454641] RBP: ffff88812247f500 R08: ffffffff8113589f R09: 0000000000000000
      [   53.454648] R10: ffffffff83063843 R11: fffffbfff060c708 R12: dead0000000000d0
      [   53.454656] R13: ffff888136449ba0 R14: 0000000000002000 R15: dead000000000160
      [   53.454664] FS:  00007fde095c4880(0000) GS:ffff88840c880000(0000) knlGS:0000000000000000
      [   53.454672] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   53.454679] CR2: 00007fef132b4f28 CR3: 000000012245c002 CR4: 00000000003706e0
      [   53.454686] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   53.454693] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [   53.454700] Call Trace:
      [   53.454833]  ? i915_ggtt_suspend+0x1f0/0x1f0 [i915]
      Reported-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Fixes: afeda4f3 ("drm/i915/dsb: Pre allocate and late cleanup of cmd buffer")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Tested-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201125193032.29282-1-chris@chris-wilson.co.uk
      (cherry picked from commit b3bf99da)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      ccc9e67a
    • Jani Nikula's avatar
      drm/i915/display: return earlier from intel_modeset_init() without display · 37eade64
      Jani Nikula authored
      !HAS_DISPLAY() implies !HAS_OVERLAY(), skipping overlay setup anyway, so
      return earlier from intel_modeset_init() for clarity.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      Reviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201106225531.920641-4-lucas.demarchi@intel.com
      (cherry picked from commit 71c8415d)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      37eade64
    • Chris Wilson's avatar
      drm/i915/gt: Limit frequency drop to RPe on parking · aff76ab7
      Chris Wilson authored
      We treat idling the GT (intel_rps_park) as a downclock event, and reduce
      the frequency we intend to restart the GT with. Since the two workloads
      are likely related (e.g. a compositor rendering every 16ms), we want to
      carry the frequency and load information from across the idling.
      However, we do also need to update the frequencies so that workloads
      that run for less than 1ms are autotuned by RPS (otherwise we leave
      compositors running at max clocks, draining excess power). Conversely,
      if we try to run too slowly, the next workload has to run longer. Since
      there is a hysteresis in the power graph, below a certain frequency
      running a short workload for longer consumes more energy than running it
      slightly higher for less time. The exact balance point is unknown
      beforehand, but measurements with 30fps media playback indicate that RPe
      is a better choice.
      Reported-by: default avatarEdward Baker <edward.baker@intel.com>
      Tested-by: default avatarEdward Baker <edward.baker@intel.com>
      Fixes: 043cd2d1 ("drm/i915/gt: Leave rps->cur_freq on unpark")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Edward Baker <edward.baker@intel.com>
      Cc: Andi Shyti <andi.shyti@intel.com>
      Cc: Lyude Paul <lyude@redhat.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Reviewed-by: default avatarAndi Shyti <andi.shyti@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201124183521.28623-1-chris@chris-wilson.co.uk
      (cherry picked from commit f7ed83cc)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      aff76ab7
    • Venkata Ramana Nayana's avatar
      drm/i915/gt: Retain default context state across shrinking · 78b2eb8a
      Venkata Ramana Nayana authored
      As we use a shmemfs file to hold the context state, when not in use it
      may be swapped out, such as across suspend. Since we wrote into the
      shmemfs without marking the pages as dirty, the contents may be dropped
      instead of being written back to swap. On re-using the shmemfs file,
      such as creating a new context after resume, the contents of that file
      were likely garbage and so the new context could then hang the GPU.
      
      Simply mark the page as being written when copying into the shmemfs
      file, and it the new contents will be retained across swapout.
      
      Fixes: be1cb55a ("drm/i915/gt: Keep a no-frills swappable copy of the default context state")
      Cc: Sudeep Dutt <sudeep.dutt@intel.com>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Ramalingam C <ramalingam.c@intel.com>
      Signed-off-by: default avatarCQ Tang <cq.tang@intel.com>
      Signed-off-by: default avatarVenkata Ramana Nayana <venkata.ramana.nayana@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: <stable@vger.kernel.org> # v5.8+
      Link: https://patchwork.freedesktop.org/patch/msgid/20201127120718.454037-161-matthew.auld@intel.com
      (cherry picked from commit a9d71f76)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      78b2eb8a
    • Chris Wilson's avatar
      drm/i915/gt: Split the breadcrumb spinlock between global and contexts · 2bfdf302
      Chris Wilson authored
      As we funnel more and more contexts into the breadcrumbs on an engine,
      the hold time of b->irq_lock grows. As we may then contend with the
      b->irq_lock during request submission, this increases the burden upon
      the engine->active.lock and so directly impacts both our execution
      latency and client latency. If we split the b->irq_lock by introducing a
      per-context spinlock to manage the signalers within a context, we then
      only need the b->irq_lock for enabling/disabling the interrupt and can
      avoid taking the lock for walking the list of contexts within the signal
      worker. Even with the current setup, this greatly reduces the number of
      times we have to take and fight for b->irq_lock.
      
      Furthermore, this closes the race between enabling the signaling context
      while it is in the process of being signaled and removed:
      
      <4>[  416.208555] list_add corruption. prev->next should be next (ffff8881951d5910), but was dead000000000100. (prev=ffff8882781bb870).
      <4>[  416.208573] WARNING: CPU: 7 PID: 0 at lib/list_debug.c:28 __list_add_valid+0x4d/0x70
      <4>[  416.208575] Modules linked in: i915(+) vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mei_hdcp x86_pkg_temp_thermal coretemp ax88179_178a usbnet mii crct10dif_pclmul snd_intel_dspcfg crc32_pclmul snd_hda_codec snd_hwdep ghash_clmulni_intel snd_hda_core e1000e snd_pcm ptp pps_core mei_me mei prime_numbers intel_lpss_pci [last unloaded: i915]
      <4>[  416.208611] CPU: 7 PID: 0 Comm: swapper/7 Tainted: G     U            5.8.0-CI-CI_DRM_8852+ #1
      <4>[  416.208614] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake Y LPDDR4x T4 RVP TLC, BIOS ICLSFWR1.R00.3212.A00.1905212112 05/21/2019
      <4>[  416.208627] RIP: 0010:__list_add_valid+0x4d/0x70
      <4>[  416.208631] Code: c3 48 89 d1 48 c7 c7 60 18 33 82 48 89 c2 e8 ea e0 b6 ff 0f 0b 31 c0 c3 48 89 c1 4c 89 c6 48 c7 c7 b0 18 33 82 e8 d3 e0 b6 ff <0f> 0b 31 c0 c3 48 89 f2 4c 89 c1 48 89 fe 48 c7 c7 00 19 33 82 e8
      <4>[  416.208633] RSP: 0018:ffffc90000280e18 EFLAGS: 00010086
      <4>[  416.208636] RAX: 0000000000000000 RBX: ffff888250a44880 RCX: 0000000000000105
      <4>[  416.208639] RDX: 0000000000000105 RSI: ffffffff82320c5b RDI: 00000000ffffffff
      <4>[  416.208641] RBP: ffff8882781bb870 R08: 0000000000000000 R09: 0000000000000001
      <4>[  416.208643] R10: 00000000054d2957 R11: 000000006abbd991 R12: ffff8881951d58c8
      <4>[  416.208646] R13: ffff888286073880 R14: ffff888286073848 R15: ffff8881951d5910
      <4>[  416.208669] FS:  0000000000000000(0000) GS:ffff88829c180000(0000) knlGS:0000000000000000
      <4>[  416.208671] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4>[  416.208673] CR2: 0000556231326c48 CR3: 0000000005610001 CR4: 0000000000760ee0
      <4>[  416.208675] PKRU: 55555554
      <4>[  416.208677] Call Trace:
      <4>[  416.208679]  <IRQ>
      <4>[  416.208751]  i915_request_enable_breadcrumb+0x278/0x400 [i915]
      <4>[  416.208839]  __i915_request_submit+0xca/0x2a0 [i915]
      <4>[  416.208892]  __execlists_submission_tasklet+0x480/0x1830 [i915]
      <4>[  416.208942]  execlists_submission_tasklet+0xc4/0x130 [i915]
      <4>[  416.208947]  tasklet_action_common.isra.17+0x6c/0x1c0
      <4>[  416.208954]  __do_softirq+0xdf/0x498
      <4>[  416.208960]  ? handle_fasteoi_irq+0x150/0x150
      <4>[  416.208964]  asm_call_on_stack+0xf/0x20
      <4>[  416.208966]  </IRQ>
      <4>[  416.208969]  do_softirq_own_stack+0xa1/0xc0
      <4>[  416.208972]  irq_exit_rcu+0xb5/0xc0
      <4>[  416.208976]  common_interrupt+0xf7/0x260
      <4>[  416.208980]  asm_common_interrupt+0x1e/0x40
      <4>[  416.208985] RIP: 0010:cpuidle_enter_state+0xb6/0x410
      <4>[  416.208987] Code: 00 31 ff e8 9c 3e 89 ff 80 7c 24 0b 00 74 12 9c 58 f6 c4 02 0f 85 31 03 00 00 31 ff e8 e3 6c 90 ff e8 fe a4 94 ff fb 45 85 ed <0f> 88 c7 02 00 00 49 63 c5 4c 2b 24 24 48 8d 14 40 48 8d 14 90 48
      <4>[  416.208989] RSP: 0018:ffffc90000143e70 EFLAGS: 00000206
      <4>[  416.208991] RAX: 0000000000000007 RBX: ffffe8ffffda8070 RCX: 0000000000000000
      <4>[  416.208993] RDX: 0000000000000000 RSI: ffffffff8238b4ee RDI: ffffffff8233184f
      <4>[  416.208995] RBP: ffffffff826b4e00 R08: 0000000000000000 R09: 0000000000000000
      <4>[  416.208997] R10: 0000000000000001 R11: 0000000000000000 R12: 00000060e7f24a8f
      <4>[  416.208998] R13: 0000000000000003 R14: 0000000000000003 R15: 0000000000000003
      <4>[  416.209012]  cpuidle_enter+0x24/0x40
      <4>[  416.209016]  do_idle+0x22f/0x2d0
      <4>[  416.209022]  cpu_startup_entry+0x14/0x20
      <4>[  416.209025]  start_secondary+0x158/0x1a0
      <4>[  416.209030]  secondary_startup_64+0xa4/0xb0
      <4>[  416.209039] irq event stamp: 10186977
      <4>[  416.209042] hardirqs last  enabled at (10186976): [<ffffffff810b9363>] tasklet_action_common.isra.17+0xe3/0x1c0
      <4>[  416.209044] hardirqs last disabled at (10186977): [<ffffffff81a5e5ed>] _raw_spin_lock_irqsave+0xd/0x50
      <4>[  416.209047] softirqs last  enabled at (10186968): [<ffffffff810b9a1a>] irq_enter_rcu+0x6a/0x70
      <4>[  416.209049] softirqs last disabled at (10186969): [<ffffffff81c00f4f>] asm_call_on_stack+0xf/0x20
      
      <4>[  416.209317] list_del corruption, ffff8882781bb870->next is LIST_POISON1 (dead000000000100)
      <4>[  416.209317] WARNING: CPU: 7 PID: 46 at lib/list_debug.c:47 __list_del_entry_valid+0x4e/0x90
      <4>[  416.209317] Modules linked in: i915(+) vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mei_hdcp x86_pkg_temp_thermal coretemp ax88179_178a usbnet mii crct10dif_pclmul snd_intel_dspcfg crc32_pclmul snd_hda_codec snd_hwdep ghash_clmulni_intel snd_hda_core e1000e snd_pcm ptp pps_core mei_me mei prime_numbers intel_lpss_pci [last unloaded: i915]
      <4>[  416.209317] CPU: 7 PID: 46 Comm: ksoftirqd/7 Tainted: G     U  W         5.8.0-CI-CI_DRM_8852+ #1
      <4>[  416.209317] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake Y LPDDR4x T4 RVP TLC, BIOS ICLSFWR1.R00.3212.A00.1905212112 05/21/2019
      <4>[  416.209317] RIP: 0010:__list_del_entry_valid+0x4e/0x90
      <4>[  416.209317] Code: 2e 48 8b 32 48 39 fe 75 3a 48 8b 50 08 48 39 f2 75 48 b8 01 00 00 00 c3 48 89 fe 48 89 c2 48 c7 c7 38 19 33 82 e8 62 e0 b6 ff <0f> 0b 31 c0 c3 48 89 fe 48 c7 c7 70 19 33 82 e8 4e e0 b6 ff 0f 0b
      <4>[  416.209317] RSP: 0018:ffffc90000280de8 EFLAGS: 00010086
      <4>[  416.209317] RAX: 0000000000000000 RBX: ffff8882781bb848 RCX: 0000000000010104
      <4>[  416.209317] RDX: 0000000000010104 RSI: ffffffff8238b4ee RDI: 00000000ffffffff
      <4>[  416.209317] RBP: ffff8882781bb880 R08: 0000000000000000 R09: 0000000000000001
      <4>[  416.209317] R10: 000000009fb6666e R11: 00000000feca9427 R12: ffffc90000280e18
      <4>[  416.209317] R13: ffff8881951d5930 R14: dead0000000000d8 R15: ffff8882781bb880
      <4>[  416.209317] FS:  0000000000000000(0000) GS:ffff88829c180000(0000) knlGS:0000000000000000
      <4>[  416.209317] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4>[  416.209317] CR2: 0000556231326c48 CR3: 0000000005610001 CR4: 0000000000760ee0
      <4>[  416.209317] PKRU: 55555554
      <4>[  416.209317] Call Trace:
      <4>[  416.209317]  <IRQ>
      <4>[  416.209317]  remove_signaling_context.isra.13+0xd/0x70 [i915]
      <4>[  416.209513]  signal_irq_work+0x1f7/0x4b0 [i915]
      
      This is caused by virtual engines where although we take the breadcrumb
      lock on each of the active engines, they may be different engines on
      different requests, It turns out that the b->irq_lock was not a
      sufficient proxy for the engine->active.lock in the case of more than
      one request, so introduce an explicit lock around ce->signals.
      
      v2: ce->signal_lock is acquired with only RCU protection and so must be
      treated carefully and not cleared during reallocation. We also then need
      to confirm that the ce we lock is the same as we found in the breadcrumb
      list.
      
      Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2276
      Fixes: c18636f7 ("drm/i915: Remove requirement for holding i915_request.lock for breadcrumbs")
      Fixes: 2854d866 ("drm/i915/gt: Replace intel_engine_transfer_stale_breadcrumbs")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201126140407.31952-4-chris@chris-wilson.co.uk
      (cherry picked from commit c744d503)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      2bfdf302
    • Chris Wilson's avatar
      drm/i915/gt: Protect context lifetime with RCU · 9261a1db
      Chris Wilson authored
      Allow a brief period for continued access to a dead intel_context by
      deferring the release of the struct until after an RCU grace period.
      As we are using a dedicated slab cache for the contexts, we can defer
      the release of the slab pages via RCU, with the caveat that individual
      structs may be reused from the freelist within an RCU grace period. To
      handle that, we have to avoid clearing members of the zombie struct.
      
      This is required for a later patch to handle locking around virtual
      requests in the signaler, as those requests may want to move between
      engines and be destroyed while we are holding b->irq_lock on a physical
      engine.
      
      v2: Drop mutex_reinit(), if we never mark the mutex as destroyed we
      don't need to reset the debug code, at the loss of having the mutex
      debug code spot us attempting to destroy a locked mutex.
      v3: As the intended use will remain strongly referenced counted, with
      very little inflight access across reuse, drop the ctor.
      v4: Drop the unrequired change to remove the temporary reference around
      dropping the active context, and add back some more missing ctor
      operations.
      v5: The ctor is back. Tvrtko spotted that ce->signal_lock [introduced
      later] maybe accessed under RCU and so needs special care not to be
      reinitialised.
      v6: Don't mix SLAB_TYPESAFE_BY_RCU and RCU list iteration.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201126140407.31952-3-chris@chris-wilson.co.uk
      (cherry picked from commit 14d1eaf0)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      9261a1db
  3. 01 Dec, 2020 1 commit
  4. 29 Nov, 2020 5 commits
  5. 28 Nov, 2020 5 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · aae5ab85
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
       "I've collected a handful of fixes over the past few weeks:
      
         - A fix to un-break the build-id argument to the vDSO build, which is
           necessary for the LLVM linker.
      
         - A fix to initialize the jump label subsystem, without which it (and
           all the stuff that uses it) doesn't actually function.
      
         - A fix to include <asm/barrier.h> from <vdso/processor.h>, without
           which some drivers won't compile"
      
      * tag 'riscv-for-linus-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: fix barrier() use in <vdso/processor.h>
        RISC-V: Add missing jump label initialization
        riscv: Explicitly specify the build id style in vDSO Makefile again
      aae5ab85
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.10' of... · 45e885c4
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Remove unused OBJSIZE variable.
      
       - Fix rootless deb-pkg build in a setgid directory.
      
      * tag 'kbuild-fixes-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        builddeb: Fix rootless build in setuid/setgid directory
        kbuild: remove unused OBJSIZE
      45e885c4
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.10-2020-11-28' of... · ca579827
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.10-2020-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tool fixes from Arnaldo Carvalho de Melo:
      
       - Fix die_entrypc() when DW_AT_ranges DWARF attribute not available
      
       - Cope with broken DWARF (missing DW_AT_declaration) generated by some
         recent gcc versions
      
       - Do not generate CGROUP metadata events when not asked to in 'perf
         record'
      
       - Use proper CPU for shadow stats in 'perf stat'
      
       - Update copy of libbpf's hashmap.c, silencing tools/perf build warning
      
       - Fix return value in 'perf diff'
      
      * tag 'perf-tools-fixes-for-v5.10-2020-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf probe: Change function definition check due to broken DWARF
        perf probe: Fix to die_entrypc() returns error correctly
        perf stat: Use proper cpu for shadow stats
        perf record: Synthesize cgroup events only if needed
        perf diff: Fix error return value in __cmd_diff()
        perf tools: Update copy of libbpf's hashmap.c
      ca579827
    • Linus Torvalds's avatar
      Merge tag 'usb-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 67f34fa8
      Linus Torvalds authored
      Pull USB / PHY driver fixes from Greg KH:
       "Here are a few small USB and PHY driver fixes for 5.10-rc6. They
        include:
      
         - small PHY driver fixes to resolve reported issues
      
         - USB quirks added for "broken" devices
      
         - typec fixes for reported problems
      
         - USB gadget fixes for small issues
      
        Full details are in the shortlog, nothing major in here and all have
        been in linux-next with no reported issues"
      
      * tag 'usb-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
        USB: core: Change %pK for __user pointers to %px
        USB: core: Fix regression in Hercules audio card
        usb: gadget: Fix memleak in gadgetfs_fill_super
        usb: gadget: f_midi: Fix memleak in f_midi_alloc
        USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
        usb: typec: qcom-pmic-typec: fix builtin build errors
        phy: mediatek: fix spelling mistake in Kconfig "veriosn" -> "version"
        phy: qualcomm: Fix 28 nm Hi-Speed USB PHY OF dependency
        phy: qualcomm: usb: Fix SuperSpeed PHY OF dependency
        phy: intel: PHY_INTEL_KEEMBAY_EMMC should depend on ARCH_KEEMBAY
        usb: cdns3: gadget: calculate TD_SIZE based on TD
        usb: cdns3: gadget: initialize link_trb as NULL
        phy: cpcap-usb: Use IRQF_ONESHOT
        phy: qcom-qmp: Initialize another pointer to NULL
        phy: tegra: xusb: Fix dangling pointer on probe failure
        phy: usb: Fix incorrect clearing of tca_drv_sel bit in SETUP reg for 7211
      67f34fa8
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 7b2c800d
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small misc driver fixes for 5.10-rc6.  They include:
      
         - interconnect fixes for reported problems
      
         - habanalabs bugfix for found issue when doing the switch fallthrough
           patches
      
         - MAINTAINERS file update for coresight reviewers/maintainers
      
        All have been in linux-next with no reported issues"
      
      * tag 'char-misc-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        MAINTAINERS: Adding help for coresight subsystem
        habanalabs/gaudi: fix missing code in ECC handling
        interconnect: fix memory trashing in of_count_icc_providers()
        interconnect: qcom: qcs404: Remove GPU and display RPM IDs
        interconnect: qcom: msm8916: Remove rpm-ids from non-RPM nodes
        interconnect: qcom: msm8974: Don't boost the NoC rate during boot
        interconnect: qcom: msm8974: Prevent integer overflow in rate
      7b2c800d
  6. 27 Nov, 2020 21 commits
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-fixes-5.10-2' of... · c84e1efa
      Linus Torvalds authored
      Merge tag 'asm-generic-fixes-5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
      
      Pull asm-generic fix from Arnd Bergmann:
       "Add correct MAX_POSSIBLE_PHYSMEM_BITS setting to asm-generic.
      
        This is a single bugfix for a bug that Stefan Agner found on 32-bit
        Arm, but that exists on several other architectures"
      
      * tag 'asm-generic-fixes-5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
      c84e1efa
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes-v5.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 303bc934
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Another set of patches for devicetree files and Arm SoC specific
        drivers:
      
         - A fix for OP-TEE shared memory on non-SMP systems
      
         - multiple code fixes for the OMAP platform, including one regression
           for the CPSW network driver and a few runtime warning fixes
      
         - Some DT patches for the Rockchip RK3399 platform, in particular
           fixing the MMC device ordering that recently became
           nondeterministic with async probe.
      
         - Multiple DT fixes for the Tegra platform, including a regression
           fix for suspend/resume on TX2
      
         - A regression fix for a user-triggered fault in the NXP dpio driver
      
         - A regression fix for a bug caused by an earlier bug fix in the
           xilinx firmware driver
      
         - Two more DTC warning fixes
      
         - Sylvain Lemieux steps down as maintainer for the NXP LPC32xx
           platform"
      
      * tag 'arm-soc-fixes-v5.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
        arm64: tegra: Fix Tegra234 VDK node names
        arm64: tegra: Wrong AON HSP reg property size
        arm64: tegra: Fix USB_VBUS_EN0 regulator on Jetson TX1
        arm64: tegra: Correct the UART for Jetson Xavier NX
        arm64: tegra: Disable the ACONNECT for Jetson TX2
        optee: add writeback to valid memory type
        firmware: xilinx: Use hash-table for api feature check
        firmware: xilinx: Fix SD DLL node reset issue
        soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
        ARM: dts: dra76x: m_can: fix order of clocks
        bus: ti-sysc: suppress err msg for timers used as clockevent/source
        MAINTAINERS: Remove myself as LPC32xx maintainers
        arm64: dts: qcom: clear the warnings caused by empty dma-ranges
        arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
        ARM: dts: am437x-l4: fix compatible for cpsw switch dt node
        arm64: dts: rockchip: Reorder LED triggers from mmc devices on rk3399-roc-pc.
        arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
        arm64: dts: rockchip: Remove system-power-controller from pmic on Odroid Go Advance
        arm64: dts: rockchip: fix NanoPi R2S GMAC clock name
        ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
        ...
      303bc934
    • Linus Torvalds's avatar
      Merge tag 'net-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 79c0c1f0
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Networking fixes for 5.10-rc6, including fixes from the WiFi driver,
        and CAN subtrees.
      
        Current release - regressions:
      
         - gro_cells: reduce number of synchronize_net() calls
      
         - ch_ktls: release a lock before jumping to an error path
      
        Current release - always broken:
      
         - tcp: Allow full IP tos/IPv6 tclass to be reflected in L3 header
      
        Previous release - regressions:
      
         - net/tls: fix missing received data after fast remote close
      
         - vsock/virtio: discard packets only when socket is really closed
      
         - sock: set sk_err to ee_errno on dequeue from errq
      
         - cxgb4: fix the panic caused by non smac rewrite
      
        Previous release - always broken:
      
         - tcp: fix corner cases around setting ECN with BPF selection of
           congestion control
      
         - tcp: fix race condition when creating child sockets from syncookies
           on loopback interface
      
         - usbnet: ipheth: fix connectivity with iOS 14
      
         - tun: honor IOCB_NOWAIT flag
      
         - net/packet: fix packet receive on L3 devices without visible hard
           header
      
         - devlink: Make sure devlink instance and port are in same net
           namespace
      
         - net: openvswitch: fix TTL decrement action netlink message format
      
         - bonding: wait for sysfs kobject destruction before freeing struct
           slave
      
         - net: stmmac: fix upstream patch applied to the wrong context
      
         - bnxt_en: fix return value and unwind in probe error paths
      
        Misc:
      
         - devlink: add extra layer of categorization to the reload stats uAPI
           before it's released"
      
      * tag 'net-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (68 commits)
        sock: set sk_err to ee_errno on dequeue from errq
        mptcp: fix NULL ptr dereference on bad MPJ
        net: openvswitch: fix TTL decrement action netlink message format
        can: af_can: can_rx_unregister(): remove WARN() statement from list operation sanity check
        can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
        can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
        can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags
        can: mcp251xfd: mcp251xfd_probe(): bail out if no IRQ was given
        can: gs_usb: fix endianess problem with candleLight firmware
        ch_ktls: lock is not freed
        net/tls: Protect from calling tls_dev_del for TLS RX twice
        devlink: Make sure devlink instance and port are in same net namespace
        devlink: Hold rtnl lock while reading netdev attributes
        ptp: clockmatrix: bug fix for idtcm_strverscmp
        enetc: Let the hardware auto-advance the taprio base-time of 0
        gro_cells: reduce number of synchronize_net() calls
        net: stmmac: fix incorrect merge of patch upstream
        ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
        Documentation: netdev-FAQ: suggest how to post co-dependent series
        ibmvnic: enhance resetting status check during module exit
        ...
      79c0c1f0
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 80e1e176
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Three small fixes in the UFS driver: two are for power management
        issues and the third is to fix a slew of problem in the sysfs code"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: ufs: Fix race between shutdown and runtime resume flow
        scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
        scsi: ufs: Fix unexpected values from ufshcd_read_desc_param()
      80e1e176
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.10-2020-11-27' of git://git.kernel.dk/linux-block · 9223e74f
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Out of bounds fix for the cq size cap from earlier this release (Joseph)
      
       - iov_iter type check fix (Pavel)
      
       - Files grab + cancelation fix (Pavel)
      
      * tag 'io_uring-5.10-2020-11-27' of git://git.kernel.dk/linux-block:
        io_uring: fix files grab/cancel race
        io_uring: fix ITER_BVEC check
        io_uring: fix shift-out-of-bounds when round up cq size
      9223e74f
    • Linus Torvalds's avatar
      Merge tag 'block-5.10-2020-11-27' of git://git.kernel.dk/linux-block · d021c3e5
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "Just a single fix, for a crash in the keyslot manager"
      
      * tag 'block-5.10-2020-11-27' of git://git.kernel.dk/linux-block:
        block/keyslot-manager: prevent crash when num_slots=1
      d021c3e5
    • Linus Torvalds's avatar
      Merge tag 'for-5.10-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · a17a3ca5
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few fixes for various warnings that accumulated over past two weeks:
      
         - tree-checker: add missing return values for some errors
      
         - lockdep fixes
            - when reading qgroup config and starting quota rescan
            - reverse order of quota ioctl lock and VFS freeze lock
      
         - avoid accessing potentially stale fs info during device scan,
           reported by syzbot
      
         - add scope NOFS protection around qgroup relation changes
      
         - check for running transaction before flushing qgroups
      
         - fix tracking of new delalloc ranges for some cases"
      
      * tag 'for-5.10-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix lockdep splat when enabling and disabling qgroups
        btrfs: do nofs allocations when adding and removing qgroup relations
        btrfs: fix lockdep splat when reading qgroup config on mount
        btrfs: tree-checker: add missing returns after data_ref alignment checks
        btrfs: don't access possibly stale fs_info data for printing duplicate device
        btrfs: tree-checker: add missing return after error in root_item
        btrfs: qgroup: don't commit transaction when we already hold the handle
        btrfs: fix missing delalloc new bit for new delalloc ranges
      a17a3ca5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · d41e9b22
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Two security issues and several small bug fixes. Things seem to have
        stabilized for this release here.
      
        Summary:
      
         - Significant out of bounds access security issue in i40iw
      
         - Fix misuse of mmu notifiers in hfi1
      
         - Several errors in the register map/usage in hns
      
         - Missing error returns in mthca"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/hns: Bugfix for memory window mtpt configuration
        RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
        RDMA/hns: Fix wrong field of SRQ number the device supports
        IB/hfi1: Ensure correct mm is used at all times
        RDMA/i40iw: Address an mmap handler exploit in i40iw
        IB/mthca: fix return value of error branch in mthca_init_cq()
      d41e9b22
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 76dc2bfc
      Linus Torvalds authored
      Pull mtd fixes from Miquel Raynal:
       "Because of a recent change in the core, NAND controller drivers
        initializing the ECC engine too early in the probe path are broken.
      
        Drivers should wait for the NAND device to be discovered and its
        memory layout known before doing any ECC related initialization, so
        instead of reverting the faulty change which is actually moving in the
        right direction, let's fix the drivers directly: socrates, sharpsl,
        r852, plat_nand, pasemi, tmio, txx9ndfmc, orion, mpc5121, lpc32xx_slc,
        lpc32xx_mlc, fsmc, diskonchip, davinci, cs553x, au1550, ams-delta,
        xway and gpio"
      
      * tag 'mtd/fixes-for-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        mtd: rawnand: socrates: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: sharpsl: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: r852: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: plat_nand: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: pasemi: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: tmio: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: txx9ndfmc: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: orion: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: mpc5121: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: lpc32xx_slc: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: lpc32xx_mlc: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: fsmc: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: diskonchip: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: davinci: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: cs553x: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: au1550: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: ams-delta: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: xway: Move the ECC initialization to ->attach_chip()
        mtd: rawnand: gpio: Move the ECC initialization to ->attach_chip()
      76dc2bfc
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 87c301ca
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A few fixes for v5.10,  one for the core which fixes some potential
        races for controllers with multiple chip selects when configuration of
        the chip select for one client device races with the addition and
        initial setup of an additional client"
      
      * tag 'spi-fix-v5.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: dw: Fix spi registration for controllers overriding CS
        spi: imx: fix the unbalanced spi runtime pm management
        spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
        spi: Take the SPI IO-mutex in the spi_setup() method
      87c301ca
    • Linus Torvalds's avatar
      Merge tag 'media/v5.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · f594139d
      Linus Torvalds authored
      Pull virtual digital TV driver fixes from Mauro Carvalho Chehab:
       "A series of fixes for the new virtual digital TV driver (vidtv), which
        is meant to help doing tests with the digital TV core and media
        userspace apps and libraries.
      
        They cover a series of issues I found on it, together with a few new
        things in order to make it easier to detect problems at the DVB core"
      
      * tag 'media/v5.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (36 commits)
        media: vidtv.rst: add kernel-doc markups
        media: vidtv.rst: update vidtv documentation
        media: vidtv: simplify EIT write function
        media: vidtv: simplify NIT write function
        media: vidtv: simplify SDT write function
        media: vidtv: cleanup PMT write table function
        media: vidtv: cleanup PAT write function
        media: vidtv: cleanup PSI table header function
        media: vidtv: cleanup PSI descriptor write function
        media: vidtv: simplify the crc writing logic
        media: vidtv: simplify PSI write function
        media: vidtv: add date to the current event
        media: vidtv: fix service_id at SDT table
        media: vidtv: fix service type
        media: vidtv: add a PID entry for the NIT table
        media: vidtv: properly fill EIT service_id
        media: vidtv: fix the network ID range
        media: vidtv: improve EIT data
        media: vidtv: cleanup null packet initialization logic
        media: vidtv: pre-initialize mux arrays
        ...
      f594139d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-11-27-1' of git://anongit.freedesktop.org/drm/drm · 6910b676
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Unfortunately this has a bit of thanksgiving stuffing in it, as it a
        bit larger (at least the vc4 patches) than I like at this point in
        time.
      
        The main thing is it has a bunch of regressions fixes for reports in
        the last couple of weeks, ast, nouveau and the amdgpu ttm init fix,
        along with the usual selection of amdgpu and i915 fixes.
      
        The vc4 fixes are a few but they are fixes and the nastiest one is a
        fix for when you have a 2.4Ghz Wifi and a HDMI signal with a clock in
        that range and there isn't enough shielding and interference happen
        between the two, the fix adjusts the mode clock to try and avoid the
        wifi channels in that case.
      
        Hopefully you can merge this between turkey slices, and next week
        should be quieter.
      
        ast:
         - LUT loading regression fix
      
        nouveau:
         - relocations regression fix
      
        amdgpu:
         - ttm init oops fix
         - Runtime pm fix
         - SI UVD suspend/resume fix
         - HDCP fix for headless cards
         - Sienna Cichlid golden register update
      
        i915:
         - Fix Perf/OA workaround register corruption (Lionel)
         - Correct a comment statement in GVT (Yan)
         - Fix GT enable/disable iterrupts, including a race condition that
           prevented GPU to go idle (Chris)
         - Free stale request on destroying the virtual engine (Chris)
      
        exynos:
         - config dependency fix
      
        mediatek:
         - unused var removal
         - horizonal front/back porch formula fix
      
        vc4:
         - wifi and hdmi interference fix
         - mode rejection fixes
         - use after free fix
         - cleanup some code"
      
      * tag 'drm-fixes-2020-11-27-1' of git://anongit.freedesktop.org/drm/drm: (28 commits)
        drm/nouveau: fix relocations applying logic and a double-free
        drm/ast: Reload gamma LUT after changing primary plane's color format
        drm/amdgpu: Fix size calculation when init onchip memory
        drm/amdgpu: update golden setting for sienna_cichlid
        drm/amd/display: Avoid HDCP initialization in devices without output
        drm/i915/gt: Free stale request on destroying the virtual engine
        drm/i915/gt: Don't cancel the interrupt shadow too early
        drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock
        drm/amdgpu: fix a page fault
        drm/amdgpu: fix SI UVD firmware validate resume fail
        drm/amd/amdgpu: fix null pointer in runtime pm
        drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission
        drm/i915/gvt: correct a false comment of flag F_UNALIGN
        drm/i915/perf: workaround register corruption in OATAILPTR
        drm/vc4: kms: Don't disable the muxing of an active CRTC
        drm/vc4: kms: Store the unassigned channel list in the state
        drm/exynos: depend on COMMON_CLK to fix compile tests
        drm/mediatek: dsi: Modify horizontal front/back porch byte formula
        drm/vc4: hdmi: Disable Wifi Frequencies
        dt-bindings: display: Add a property to deal with WiFi coexistence
        ...
      6910b676
    • Jakub Kicinski's avatar
      Merge tag 'linux-can-fixes-for-5.10-20201127' of... · d0742c49
      Jakub Kicinski authored
      Merge tag 'linux-can-fixes-for-5.10-20201127' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2020-11-27
      
      The first patch is by me and target the gs_usb driver and fixes the endianess
      problem with candleLight firmware.
      
      Another patch by me for the mcp251xfd driver add sanity checking to bail out if
      no IRQ is configured.
      
      The next three patches target the m_can driver. A patch by me removes the
      hardcoded IRQF_TRIGGER_FALLING from the request_threaded_irq() as this clashes
      with the trigger level specified in the DT. Further a patch by me fixes the
      nominal bitiming tseg2 min value for modern m_can cores. Pankaj Sharma's patch
      add support for cores version 3.3.x.
      
      The last patch by Oliver Hartkopp is for af_can and converts a WARN() into a
      pr_warn(), which is triggered by the syzkaller. It was able to create a
      situation where the closing of a socket runs simultaneously to the notifier
      call chain for removing the CAN network device in use.
      
      * tag 'linux-can-fixes-for-5.10-20201127' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
        can: af_can: can_rx_unregister(): remove WARN() statement from list operation sanity check
        can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
        can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
        can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags
        can: mcp251xfd: mcp251xfd_probe(): bail out if no IRQ was given
        can: gs_usb: fix endianess problem with candleLight firmware
      ====================
      
      Link: https://lore.kernel.org/r/20201127100301.512603-1-mkl@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d0742c49
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.10-2' of... · 99c710c4
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Hans de Goede:
      
       - thinkpad_acpi fixes: two bug-fixes and three model specific quirks
      
       - fixes for misc other drivers: two bug-fixes and three model specific
         quirks
      
      * tag 'platform-drivers-x86-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
        platform/x86: touchscreen_dmi: Add info for the Predia Basic tablet
        platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
        platform/x86: toshiba_acpi: Fix the wrong variable assignment
        platform/x86: acer-wmi: add automatic keyboard background light toggle key as KEY_LIGHTS_TOGGLE
        platform/x86: thinkpad_acpi: Whitelist P15 firmware for dual fan control
        platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
        platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad Yoga 11e 4th gen
        platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
        platform/x86: thinkpad_acpi: add P1 gen3 second fan support
      99c710c4
    • Willem de Bruijn's avatar
      sock: set sk_err to ee_errno on dequeue from errq · 985f7337
      Willem de Bruijn authored
      When setting sk_err, set it to ee_errno, not ee_origin.
      
      Commit f5f99309 ("sock: do not set sk_err in
      sock_dequeue_err_skb") disabled updating sk_err on errq dequeue,
      which is correct for most error types (origins):
      
        -       sk->sk_err = err;
      
      Commit 38b25793 ("sock: reset sk_err when the error queue is
      empty") reenabled the behavior for IMCP origins, which do require it:
      
        +       if (icmp_next)
        +               sk->sk_err = SKB_EXT_ERR(skb_next)->ee.ee_origin;
      
      But read from ee_errno.
      
      Fixes: 38b25793 ("sock: reset sk_err when the error queue is empty")
      Reported-by: default avatarAyush Ranjan <ayushranjan@google.com>
      Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Link: https://lore.kernel.org/r/20201126151220.2819322-1-willemdebruijn.kernel@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      985f7337
    • Paolo Abeni's avatar
      mptcp: fix NULL ptr dereference on bad MPJ · d3ab7885
      Paolo Abeni authored
      If an msk listener receives an MPJ carrying an invalid token, it
      will zero the request socket msk entry. That should later
      cause fallback and subflow reset - as per RFC - at
      subflow_syn_recv_sock() time due to failing hmac validation.
      
      Since commit 4cf8b7e4 ("subflow: introduce and use
      mptcp_can_accept_new_subflow()"), we unconditionally dereference
      - in mptcp_can_accept_new_subflow - the subflow request msk
      before performing hmac validation. In the above scenario we
      hit a NULL ptr dereference.
      
      Address the issue doing the hmac validation earlier.
      
      Fixes: 4cf8b7e4 ("subflow: introduce and use mptcp_can_accept_new_subflow()")
      Tested-by: default avatarDavide Caratti <dcaratti@redhat.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Link: https://lore.kernel.org/r/03b2cfa3ac80d8fc18272edc6442a9ddf0b1e34e.1606400227.git.pabeni@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d3ab7885
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 3913a2bc
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "ARM:
         - Fix alignment of the new HYP sections
         - Fix GICR_TYPER access from userspace
      
        S390:
         - do not reset the global diag318 data for per-cpu reset
         - do not mark memory as protected too early
         - fix for destroy page ultravisor call
      
        x86:
         - fix for SEV debugging
         - fix incorrect return code
         - fix for 'noapic' with PIC in userspace and LAPIC in kernel
         - fix for 5-level paging"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: x86/mmu: Fix get_mmio_spte() on CPUs supporting 5-level PT
        KVM: x86: Fix split-irqchip vs interrupt injection window request
        KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
        MAINTAINERS: Update email address for Sean Christopherson
        MAINTAINERS: add uv.c also to KVM/s390
        s390/uv: handle destroy page legacy interface
        KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
        KVM: SVM: fix error return code in svm_create_vcpu()
        KVM: SVM: Fix offset computation bug in __sev_dbg_decrypt().
        KVM: arm64: Correctly align nVHE percpu data
        KVM: s390: remove diag318 reset code
        KVM: s390: pv: Mark mm as protected after the set secure parameters and improve cleanup
      3913a2bc
    • Eelco Chaudron's avatar
      net: openvswitch: fix TTL decrement action netlink message format · 69929d4c
      Eelco Chaudron authored
      Currently, the openvswitch module is not accepting the correctly formated
      netlink message for the TTL decrement action. For both setting and getting
      the dec_ttl action, the actions should be nested in the
      OVS_DEC_TTL_ATTR_ACTION attribute as mentioned in the openvswitch.h uapi.
      
      When the original patch was sent, it was tested with a private OVS userspace
      implementation. This implementation was unfortunately not upstreamed and
      reviewed, hence an erroneous version of this patch was sent out.
      
      Leaving the patch as-is would cause problems as the kernel module could
      interpret additional attributes as actions and vice-versa, due to the
      actions not being encapsulated/nested within the actual attribute, but
      being concatinated after it.
      
      Fixes: 744676e7 ("openvswitch: add TTL decrement action")
      Signed-off-by: default avatarEelco Chaudron <echaudro@redhat.com>
      Link: https://lore.kernel.org/r/160622121495.27296.888010441924340582.stgit@wsfd-netdev64.ntdv.lab.eng.bos.redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      69929d4c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 95e1c7b1
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Some more powerpc fixes for 5.10:
      
         - regression fix for a boot failure on some 32-bit machines.
      
         - fix for host crashes in the KVM system reset handling.
      
         - fix for a possible oops in the KVM XIVE interrupt handling on
           Power9.
      
         - fix for host crashes triggerable via the KVM emulated MMIO handling
           when running HPT guests.
      
         - a couple of small build fixes.
      
        Thanks to Andreas Schwab, Cédric Le Goater, Christophe Leroy, Erhard
        Furtner, Greg Kurz, Greg Kurz, Németh Márton, Nicholas Piggin, Nick
        Desaulniers, Serge Belyshev, and Stephen Rothwell"
      
      * tag 'powerpc-5.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Fix allnoconfig build since uaccess flush
        powerpc/64s/exception: KVM Fix for host DSI being taken in HPT guest MMU context
        powerpc: Drop -me200 addition to build flags
        KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
        powerpc/64s: Fix KVM system reset handling when CONFIG_PPC_PSERIES=y
        powerpc/32s: Use relocation offset when setting early hash table
      95e1c7b1
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · e4e94580
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The main changes are relating to our handling of access/dirty bits,
        where our low-level page-table helpers could lead to stale young
        mappings and loss of the dirty bit in some cases (the latter has not
        been observed in practice, but could happen when clearing "soft-dirty"
        if we enabled that). These were posted as part of a larger series, but
        the rest of that is less urgent and needs a v2 which I'll get to
        shortly.
      
        In other news, we've now got a set of fixes to resolve the
        lockdep/tracing problems that have been plaguing us for a while, but
        they're still a bit "fresh" and I plan to send them to you next week
        after we've got some more confidence in them (although initial CI
        results look good).
      
        Summary:
      
         - Fix kerneldoc warnings generated by ACPI IORT code
      
         - Fix pte_accessible() so that access flag is ignored
      
         - Fix missing header #include
      
         - Fix loss of software dirty bit across pte_wrprotect() when HW DBM
           is enabled"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
        arm64: pgtable: Fix pte_accessible()
        ACPI/IORT: Fix doc warnings in iort.c
        arm64/fpsimd: add <asm/insn.h> to <asm/kprobes.h> to fix fpsimd build
      e4e94580
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 6adf33a5
      Linus Torvalds authored
      Pull iommu fixes from Will Deacon:
       "Here's another round of IOMMU fixes for -rc6 consisting mainly of a
        bunch of independent driver fixes. Thomas agreed for me to take the
        x86 'tboot' fix here, as it fixes a regression introduced by a vt-d
        change.
      
         - Fix intel iommu driver when running on devices without VCCAP_REG
      
         - Fix swiotlb and "iommu=pt" interaction under TXT (tboot)
      
         - Fix missing return value check during device probe()
      
         - Fix probe ordering for Qualcomm SMMU implementation
      
         - Ensure page-sized mappings are used for AMD IOMMU buffers with SNP
           RMP"
      
      * tag 'iommu-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        iommu/vt-d: Don't read VCCAP register unless it exists
        x86/tboot: Don't disable swiotlb when iommu is forced on
        iommu: Check return of __iommu_attach_device()
        arm-smmu-qcom: Ensure the qcom_scm driver has finished probing
        iommu/amd: Enforce 4k mapping for certain IOMMU data structures
      6adf33a5