Skip to content
Snippets Groups Projects
  1. Feb 13, 2025
  2. Feb 09, 2025
    • Arnd Bergmann's avatar
      drm/hisilicon/hibmc: select CONFIG_DRM_DISPLAY_DP_HELPER · 9ab127a1
      Arnd Bergmann authored and Dmitry Baryshkov's avatar Dmitry Baryshkov committed
      
      Without the DP helper code, the newly added displayport support
      causes a link failure:
      
      x86_64-linux-ld: drivers/gpu/drm/hisilicon/hibmc/dp/dp_aux.o: in function `hibmc_dp_aux_init':
      dp_aux.c:(.text+0x37e): undefined reference to `drm_dp_aux_init'
      x86_64-linux-ld: drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.o: in function `hibmc_dp_link_set_pattern':
      dp_link.c:(.text+0xae): undefined reference to `drm_dp_dpcd_write'
      x86_64-linux-ld: drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.o: in function `hibmc_dp_link_get_adjust_train':
      dp_link.c:(.text+0x121): undefined reference to `drm_dp_get_adjust_request_voltage'
      x86_64-linux-ld: dp_link.c:(.text+0x12e): undefined reference to `drm_dp_get_adjust_request_pre_emphasis'
      x86_64-linux-ld: drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.o: in function `hibmc_dp_link_training':
      dp_link.c:(.text+0x2b0): undefined reference to `drm_dp_dpcd_write'
      x86_64-linux-ld: dp_link.c:(.text+0x2e3): undefined reference to `drm_dp_dpcd_write'
      
      Add both DRM_DISPLAY_DP_HELPER and DRM_DISPLAY_HELPER, which is
      in turn required by the former.
      
      Fixes: 0ab6ea26 ("drm/hisilicon/hibmc: add dp module in hibmc")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250127071059.617567-1-arnd@kernel.org
      
      
      Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
      9ab127a1
  3. Feb 07, 2025
    • Su Hui's avatar
      drm/panthor: avoid garbage value in panthor_ioctl_dev_query() · 3b32b7f6
      Su Hui authored and Boris Brezillon's avatar Boris Brezillon committed
      
      'priorities_info' is uninitialized, and the uninitialized value is copied
      to user object when calling PANTHOR_UOBJ_SET(). Using memset to initialize
      'priorities_info' to avoid this garbage value problem.
      
      Fixes: f70000ef ("drm/panthor: Add DEV_QUERY_GROUP_PRIORITIES_INFO dev query")
      Signed-off-by: default avatarSu Hui <suhui@nfschina.com>
      Reviewed-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
      Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250119025828.1168419-1-suhui@nfschina.com
      3b32b7f6
    • Rupinderjit Singh's avatar
      gpu: host1x: Fix a use of uninitialized mutex · 02458fbf
      Rupinderjit Singh authored
      
      commit c8347f91 ("gpu: host1x: Fix boot regression for Tegra")
      caused a use of uninitialized mutex leading to below warning when
      CONFIG_DEBUG_MUTEXES and CONFIG_DEBUG_LOCK_ALLOC are enabled.
      
      [   41.662843] ------------[ cut here ]------------
      [   41.663012] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
      [   41.663035] WARNING: CPU: 4 PID: 794 at kernel/locking/mutex.c:587 __mutex_lock+0x670/0x878
      [   41.663458] Modules linked in: rtw88_8822c(+) bluetooth(+) rtw88_pci rtw88_core mac80211 aquantia libarc4 crc_itu_t cfg80211 tegra194_cpufreq dwmac_tegra(+) arm_dsu_pmu stmmac_platform stmmac pcs_xpcs rfkill at24 host1x(+) tegra_bpmp_thermal ramoops reed_solomon fuse loop nfnetlink xfs mmc_block rpmb_core ucsi_ccg ina3221 crct10dif_ce xhci_tegra ghash_ce lm90 sha2_ce sha256_arm64 sha1_ce sdhci_tegra pwm_fan sdhci_pltfm sdhci gpio_keys rtc_tegra cqhci mmc_core phy_tegra_xusb i2c_tegra tegra186_gpc_dma i2c_tegra_bpmp spi_tegra114 dm_mirror dm_region_hash dm_log dm_mod
      [   41.665078] CPU: 4 UID: 0 PID: 794 Comm: (udev-worker) Not tainted 6.11.0-29.31_1538613708.el10.aarch64+debug #1
      [   41.665838] Hardware name: NVIDIA NVIDIA Jetson AGX Orin Developer Kit/Jetson, BIOS 36.3.0-gcid-35594366 02/26/2024
      [   41.672555] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      [   41.679636] pc : __mutex_lock+0x670/0x878
      [   41.683834] lr : __mutex_lock+0x670/0x878
      [   41.688035] sp : ffff800084b77090
      [   41.691446] x29: ffff800084b77160 x28: ffffdd4bebf7b000 x27: ffffdd4be96b1000
      [   41.698799] x26: 1fffe0002308361c x25: 1ffff0001096ee18 x24: 0000000000000000
      [   41.706149] x23: 0000000000000000 x22: 0000000000000002 x21: ffffdd4be6e3c7a0
      [   41.713500] x20: ffff800084b770f0 x19: ffff00011841b1e8 x18: 0000000000000000
      [   41.720675] x17: 0000000000000000 x16: 0000000000000000 x15: 0720072007200720
      [   41.728023] x14: 0000000000000000 x13: 0000000000000001 x12: ffff6001a96eaab3
      [   41.735375] x11: 1fffe001a96eaab2 x10: ffff6001a96eaab2 x9 : ffffdd4be4838bbc
      [   41.742723] x8 : 00009ffe5691554e x7 : ffff000d4b755593 x6 : 0000000000000001
      [   41.749985] x5 : ffff000d4b755590 x4 : 1fffe0001d88f001 x3 : dfff800000000000
      [   41.756988] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000ec478000
      [   41.764251] Call trace:
      [   41.766695]  __mutex_lock+0x670/0x878
      [   41.770373]  mutex_lock_nested+0x2c/0x40
      [   41.774134]  host1x_intr_start+0x54/0xf8 [host1x]
      [   41.778863]  host1x_runtime_resume+0x150/0x228 [host1x]
      [   41.783935]  pm_generic_runtime_resume+0x84/0xc8
      [   41.788485]  __rpm_callback+0xa0/0x478
      [   41.792422]  rpm_callback+0x15c/0x1a8
      [   41.795922]  rpm_resume+0x698/0xc08
      [   41.799597]  __pm_runtime_resume+0xa8/0x140
      [   41.803621]  host1x_probe+0x810/0xbc0 [host1x]
      [   41.807909]  platform_probe+0xcc/0x1a8
      [   41.811845]  really_probe+0x188/0x800
      [   41.815347]  __driver_probe_device+0x164/0x360
      [   41.819810]  driver_probe_device+0x64/0x1a8
      [   41.823834]  __driver_attach+0x180/0x490
      [   41.827773]  bus_for_each_dev+0x104/0x1a0
      [   41.831797]  driver_attach+0x44/0x68
      [   41.835296]  bus_add_driver+0x23c/0x4e8
      [   41.839235]  driver_register+0x15c/0x3a8
      [   41.843170]  __platform_register_drivers+0xa4/0x208
      [   41.848159]  tegra_host1x_init+0x4c/0xff8 [host1x]
      [   41.853147]  do_one_initcall+0xd4/0x380
      [   41.856997]  do_init_module+0x1dc/0x698
      [   41.860758]  load_module+0xc70/0x1300
      [   41.864435]  __do_sys_init_module+0x1a8/0x1d0
      [   41.868721]  __arm64_sys_init_module+0x74/0xb0
      [   41.873183]  invoke_syscall.constprop.0+0xdc/0x1e8
      [   41.877997]  do_el0_svc+0x154/0x1d0
      [   41.881671]  el0_svc+0x54/0x140
      [   41.884820]  el0t_64_sync_handler+0x120/0x130
      [   41.889285]  el0t_64_sync+0x1a4/0x1a8
      [   41.892960] irq event stamp: 69737
      [   41.896370] hardirqs last  enabled at (69737): [<ffffdd4be6d7768c>] _raw_spin_unlock_irqrestore+0x44/0xe8
      [   41.905739] hardirqs last disabled at (69736): [<ffffdd4be59dcd40>] clk_enable_lock+0x98/0x198
      [   41.914314] softirqs last  enabled at (68082): [<ffffdd4be466b1d0>] handle_softirqs+0x4c8/0x890
      [   41.922977] softirqs last disabled at (67945): [<ffffdd4be44f02a4>] __do_softirq+0x1c/0x28
      [   41.931289] ---[ end trace 0000000000000000 ]---
      
      Inside the probe function when pm_runtime_enable() is called,
      the PM core invokes a resume callback if the device Host1x is
      in a suspended state. As it can be seen in the logs above,
      this leads to host1x_intr_start() function call which is
      trying to acquire a mutex lock. But, the function
      host_intr_init() only gets called after the pm_runtime_enable()
      where mutex is initialised leading to the use of mutex
      prior to its initialisation.
      
      Fix this by moving the mutex initialisation prior to the runtime
      PM enablement function pm_runtime_enable() in probe.
      
      Fixes: c8347f91 ("gpu: host1x: Fix boot regression for Tegra")
      Signed-off-by: default avatarRupinderjit Singh <rusingh@redhat.com>
      Reviewed-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Tested-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Link: https://patchwork.ozlabs.org/project/linux-tegra/patch/20250206155803.201942-1-rusingh@redhat.com/
      02458fbf
  4. Feb 06, 2025
  5. Feb 04, 2025
  6. Feb 03, 2025
  7. Jan 31, 2025
    • Hans Verkuil's avatar
      gpu: drm_dp_cec: fix broken CEC adapter properties check · 6daaae5f
      Hans Verkuil authored and Dmitry Baryshkov's avatar Dmitry Baryshkov committed
      
      If the hotplug detect of a display is low for longer than one second
      (configurable through drm_dp_cec_unregister_delay), then the CEC adapter
      is unregistered since we assume the display was disconnected. If the
      HPD went low for less than one second, then we check if the properties
      of the CEC adapter have changed, since that indicates that we actually
      switch to new hardware and we have to unregister the old CEC device and
      register a new one.
      
      Unfortunately, the test for changed properties was written poorly, and
      after a new CEC capability was added to the CEC core code the test always
      returned true (i.e. the properties had changed).
      
      As a result the CEC device was unregistered and re-registered for every
      HPD toggle. If the CEC remote controller integration was also enabled
      (CONFIG_MEDIA_CEC_RC was set), then the corresponding input device was
      also unregistered and re-registered. As a result the input device in
      /sys would keep incrementing its number, e.g.:
      
      /sys/devices/pci0000:00/0000:00:08.1/0000:e7:00.0/rc/rc0/input20
      
      Since short HPD toggles are common, the number could over time get into
      the thousands.
      
      While not a serious issue (i.e. nothing crashes), it is not intended
      to work that way.
      
      This patch changes the test so that it only checks for the single CEC
      capability that can actually change, and it ignores any other
      capabilities, so this is now safe as well if new caps are added in
      the future.
      
      With the changed test the bit under #ifndef CONFIG_MEDIA_CEC_RC can be
      dropped as well, so that's a nice cleanup.
      
      Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Reported-by: default avatarFarblos <farblos@vodafonemail.de>
      Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
      Fixes: 2c6d1fff ("drm: add support for DisplayPort CEC-Tunneling-over-AUX")
      Tested-by: default avatarFarblos <farblos@vodafonemail.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/361bb03d-1691-4e23-84da-0861ead5dbdc@xs4all.nl
      
      
      Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
      6daaae5f
  8. Jan 29, 2025
  9. Jan 28, 2025
    • Thomas Zimmermann's avatar
      drm/ast: astdp: Fix timeout for enabling video signal · fd39c41b
      Thomas Zimmermann authored
      
      The ASTDP transmitter sometimes takes up to 1 second for enabling the
      video signal, while the timeout is only 200 msec. This results in a
      kernel error message. Increase the timeout to 1 second. An example
      of the error message is shown below.
      
      [  697.084433] ------------[ cut here ]------------
      [  697.091115] ast 0000:02:00.0: [drm] drm_WARN_ON(!__ast_dp_wait_enable(ast, enabled))
      [  697.091233] WARNING: CPU: 1 PID: 160 at drivers/gpu/drm/ast/ast_dp.c:232 ast_dp_set_enable+0x123/0x140 [ast]
      [...]
      [  697.272469] RIP: 0010:ast_dp_set_enable+0x123/0x140 [ast]
      [...]
      [  697.415283] Call Trace:
      [  697.420727]  <TASK>
      [  697.425908]  ? show_trace_log_lvl+0x196/0x2c0
      [  697.433304]  ? show_trace_log_lvl+0x196/0x2c0
      [  697.440693]  ? drm_atomic_helper_commit_modeset_enables+0x30a/0x470
      [  697.450115]  ? ast_dp_set_enable+0x123/0x140 [ast]
      [  697.458059]  ? __warn.cold+0xaf/0xca
      [  697.464713]  ? ast_dp_set_enable+0x123/0x140 [ast]
      [  697.472633]  ? report_bug+0x134/0x1d0
      [  697.479544]  ? handle_bug+0x58/0x90
      [  697.486127]  ? exc_invalid_op+0x13/0x40
      [  697.492975]  ? asm_exc_invalid_op+0x16/0x20
      [  697.500224]  ? preempt_count_sub+0x14/0xc0
      [  697.507473]  ? ast_dp_set_enable+0x123/0x140 [ast]
      [  697.515377]  ? ast_dp_set_enable+0x123/0x140 [ast]
      [  697.523227]  drm_atomic_helper_commit_modeset_enables+0x30a/0x470
      [  697.532388]  drm_atomic_helper_commit_tail+0x58/0x90
      [  697.540400]  ast_mode_config_helper_atomic_commit_tail+0x30/0x40 [ast]
      [  697.550009]  commit_tail+0xfe/0x1d0
      [  697.556547]  drm_atomic_helper_commit+0x198/0x1c0
      
      This is a cosmetical problem. Enabling the video signal still works
      even with the error message. The problem has always been present, but
      only recent versions of the ast driver warn about missing the timeout.
      
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Fixes: 4e29cc7c ("drm/ast: astdp: Replace ast_dp_set_on_off()")
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Jocelyn Falempe <jfalempe@redhat.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v6.13+
      Reviewed-by: default avatarJocelyn Falempe <jfalempe@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250127134423.84266-1-tzimmermann@suse.de
      fd39c41b
  10. Jan 25, 2025
  11. Jan 24, 2025
  12. Jan 23, 2025
    • Maíra Canal's avatar
      drm/v3d: Assign job pointer to NULL before signaling the fence · 6e64d6b3
      Maíra Canal authored
      
      In commit e4b5ccd3 ("drm/v3d: Ensure job pointer is set to NULL
      after job completion"), we introduced a change to assign the job pointer
      to NULL after completing a job, indicating job completion.
      
      However, this approach created a race condition between the DRM
      scheduler workqueue and the IRQ execution thread. As soon as the fence is
      signaled in the IRQ execution thread, a new job starts to be executed.
      This results in a race condition where the IRQ execution thread sets the
      job pointer to NULL simultaneously as the `run_job()` function assigns
      a new job to the pointer.
      
      This race condition can lead to a NULL pointer dereference if the IRQ
      execution thread sets the job pointer to NULL after `run_job()` assigns
      it to the new job. When the new job completes and the GPU emits an
      interrupt, `v3d_irq()` is triggered, potentially causing a crash.
      
      [  466.310099] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000c0
      [  466.318928] Mem abort info:
      [  466.321723]   ESR = 0x0000000096000005
      [  466.325479]   EC = 0x25: DABT (current EL), IL = 32 bits
      [  466.330807]   SET = 0, FnV = 0
      [  466.333864]   EA = 0, S1PTW = 0
      [  466.337010]   FSC = 0x05: level 1 translation fault
      [  466.341900] Data abort info:
      [  466.344783]   ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
      [  466.350285]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
      [  466.355350]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
      [  466.360677] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000089772000
      [  466.367140] [00000000000000c0] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
      [  466.375875] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
      [  466.382163] Modules linked in: rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device algif_hash algif_skcipher af_alg bnep binfmt_misc vc4 snd_soc_hdmi_codec drm_display_helper cec brcmfmac_wcc spidev rpivid_hevc(C) drm_client_lib brcmfmac hci_uart drm_dma_helper pisp_be btbcm brcmutil snd_soc_core aes_ce_blk v4l2_mem2mem bluetooth aes_ce_cipher snd_compress videobuf2_dma_contig ghash_ce cfg80211 gf128mul snd_pcm_dmaengine videobuf2_memops ecdh_generic sha2_ce ecc videobuf2_v4l2 snd_pcm v3d sha256_arm64 rfkill videodev snd_timer sha1_ce libaes gpu_sched snd videobuf2_common sha1_generic drm_shmem_helper mc rp1_pio drm_kms_helper raspberrypi_hwmon spi_bcm2835 gpio_keys i2c_brcmstb rp1 raspberrypi_gpiomem rp1_mailbox rp1_adc nvmem_rmem uio_pdrv_genirq uio i2c_dev drm ledtrig_pattern drm_panel_orientation_quirks backlight fuse dm_mod ip_tables x_tables ipv6
      [  466.458429] CPU: 0 UID: 1000 PID: 2008 Comm: chromium Tainted: G         C         6.13.0-v8+ #18
      [  466.467336] Tainted: [C]=CRAP
      [  466.470306] Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT)
      [  466.476157] pstate: 404000c9 (nZcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      [  466.483143] pc : v3d_irq+0x118/0x2e0 [v3d]
      [  466.487258] lr : __handle_irq_event_percpu+0x60/0x228
      [  466.492327] sp : ffffffc080003ea0
      [  466.495646] x29: ffffffc080003ea0 x28: ffffff80c0c94200 x27: 0000000000000000
      [  466.502807] x26: ffffffd08dd81d7b x25: ffffff80c0c94200 x24: ffffff8003bdc200
      [  466.509969] x23: 0000000000000001 x22: 00000000000000a7 x21: 0000000000000000
      [  466.517130] x20: ffffff8041bb0000 x19: 0000000000000001 x18: 0000000000000000
      [  466.524291] x17: ffffffafadfb0000 x16: ffffffc080000000 x15: 0000000000000000
      [  466.531452] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
      [  466.538613] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffffd08c527eb0
      [  466.545777] x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000000000
      [  466.552941] x5 : ffffffd08c4100d0 x4 : ffffffafadfb0000 x3 : ffffffc080003f70
      [  466.560102] x2 : ffffffc0829e8058 x1 : 0000000000000001 x0 : 0000000000000000
      [  466.567263] Call trace:
      [  466.569711]  v3d_irq+0x118/0x2e0 [v3d] (P)
      [  466.573826]  __handle_irq_event_percpu+0x60/0x228
      [  466.578546]  handle_irq_event+0x54/0xb8
      [  466.582391]  handle_fasteoi_irq+0xac/0x240
      [  466.586498]  generic_handle_domain_irq+0x34/0x58
      [  466.591128]  gic_handle_irq+0x48/0xd8
      [  466.594798]  call_on_irq_stack+0x24/0x58
      [  466.598730]  do_interrupt_handler+0x88/0x98
      [  466.602923]  el0_interrupt+0x44/0xc0
      [  466.606508]  __el0_irq_handler_common+0x18/0x28
      [  466.611050]  el0t_64_irq_handler+0x10/0x20
      [  466.615156]  el0t_64_irq+0x198/0x1a0
      [  466.618740] Code: 52800035 3607faf3 f9442e80 52800021 (f9406018)
      [  466.624853] ---[ end trace 0000000000000000 ]---
      [  466.629483] Kernel panic - not syncing: Oops: Fatal exception in interrupt
      [  466.636384] SMP: stopping secondary CPUs
      [  466.640320] Kernel Offset: 0x100c400000 from 0xffffffc080000000
      [  466.646259] PHYS_OFFSET: 0x0
      [  466.649141] CPU features: 0x100,00000170,00901250,0200720b
      [  466.654644] Memory Limit: none
      [  466.657706] ---[ end Kernel panic - not syncing: Oops: Fatal exception in interrupt ]---
      
      Fix the crash by assigning the job pointer to NULL before signaling the
      fence. This ensures that the job pointer is cleared before any new job
      starts execution, preventing the race condition and the NULL pointer
      dereference crash.
      
      Cc: stable@vger.kernel.org
      Fixes: e4b5ccd3 ("drm/v3d: Ensure job pointer is set to NULL after job completion")
      Signed-off-by: default avatarMaíra Canal <mcanal@igalia.com>
      Reviewed-by: default avatarJose Maria Casanova Crespo <jmcasanova@igalia.com>
      Reviewed-by: default avatarIago Toral Quiroga <itoral@igalia.com>
      Tested-by: default avatarPhil Elwell <phil@raspberrypi.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250123012403.20447-1-mcanal@igalia.com
    • Maarten Lankhorst's avatar
      Merge remote-tracking branch 'drm/drm-next' into drm-misc-next-fixes · 37ba6c7f
      Maarten Lankhorst authored
      
      A regression was caused by commit e4b5ccd3 ("drm/v3d: Ensure job pointer is set to NULL
      after job completion"), but this commit is not yet in next-fixes,
      fast-forward it.
      
      Try #2, first one didn't have v6.13 in it.
      
      Signed-off-by: default avatarMaarten Lankhorst <dev@lankhorst.se>
      37ba6c7f
    • Simona Vetter's avatar
      Merge v6.13 into drm-next · 07c5b277
      Simona Vetter authored
      A regression was caused by commit e4b5ccd3 ("drm/v3d: Ensure job
      pointer is set to NULL after job completion"), but this commit is not
      yet in next-fixes, fast-forward it.
      
      Note that this recreates Linus merge in 96c84703 ("Merge tag
      'drm-next-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel"
      
      )
      because I didn't want to backmerge a random point in the merge window.
      
      Signed-off-by: default avatarSimona Vetter <simona.vetter@ffwll.ch>
      07c5b277
    • Thomas Zimmermann's avatar
      drm/bochs: Do not put DRM device in PCI remove callback · 5247a8b3
      Thomas Zimmermann authored
      
      Removing the bochs PCI device should mark the DRM device as unplugged
      without removing it. Hence clear the respective call to drm_dev_put()
      from bochs_pci_remove().
      
      Fixes a double unref in devm_drm_dev_init_release(). An example error
      message is shown below:
      
      [   32.958338] BUG: KASAN: use-after-free in drm_dev_put.part.0+0x1b/0x90
      [   32.958850] Write of size 4 at addr ffff888152134004 by task (udev-worker)/591
      [   32.959574] CPU: 3 UID: 0 PID: 591 Comm: (udev-worker) Tainted: G            E      6.13.0-rc2-1-default+ #3417
      [   32.960316] Tainted: [E]=UNSIGNED_MODULE
      [   32.960637] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org 04/01/2014
      [   32.961429] Call Trace:
      [   32.961433]  <TASK>
      [   32.961439]  dump_stack_lvl+0x68/0x90
      [   32.961452]  print_address_description.constprop.0+0x88/0x330
      [   32.961461]  ? preempt_count_sub+0x14/0xc0
      [   32.961473]  print_report+0xe2/0x1d0
      [   32.961479]  ? srso_alias_return_thunk+0x5/0xfbef5
      [   32.963725]  ? __virt_addr_valid+0x143/0x320
      [   32.964077]  ? srso_alias_return_thunk+0x5/0xfbef5
      [   32.964463]  ? drm_dev_put.part.0+0x1b/0x90
      [   32.964817]  kasan_report+0xce/0x1a0
      [   32.965123]  ? drm_dev_put.part.0+0x1b/0x90
      [   32.965474]  kasan_check_range+0xff/0x1c0
      [   32.965806]  drm_dev_put.part.0+0x1b/0x90
      [   32.966138]  release_nodes+0x84/0xc0
      [   32.966447]  devres_release_all+0xd2/0x110
      [   32.966788]  ? __pfx_devres_release_all+0x10/0x10
      [   32.967177]  ? preempt_count_sub+0x14/0xc0
      [   32.967523]  device_unbind_cleanup+0x16/0xc0
      [   32.967886]  really_probe+0x1b7/0x570
      [   32.968207]  __driver_probe_device+0xca/0x1b0
      [   32.968568]  driver_probe_device+0x4a/0xf0
      [   32.968907]  __driver_attach+0x10b/0x290
      [   32.969239]  ? __pfx___driver_attach+0x10/0x10
      [   32.969598]  bus_for_each_dev+0xc0/0x110
      [   32.969923]  ? __pfx_bus_for_each_dev+0x10/0x10
      [   32.970291]  ? bus_add_driver+0x17a/0x2b0
      [   32.970622]  ? srso_alias_return_thunk+0x5/0xfbef5
      [   32.971011]  bus_add_driver+0x19a/0x2b0
      [   32.971335]  driver_register+0xd8/0x160
      [   32.971671]  ? __pfx_bochs_pci_driver_init+0x10/0x10 [bochs]
      [   32.972130]  do_one_initcall+0xba/0x390
      [...]
      
      After unplugging the DRM device, clients will close their references.
      Closing the final reference will also release the DRM device.
      
      Reported-by: default avatarDr. David Alan Gilbert <dave@treblig.org>
      Closes: https://lore.kernel.org/lkml/Z18dbfDAiFadsSdg@gallifrey/
      
      
      Fixes: 04826f58 ("drm/bochs: Allocate DRM device in struct bochs_device")
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: virtualization@lists.linux.dev
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250103095615.231162-1-tzimmermann@suse.de
      5247a8b3
  13. Jan 22, 2025
  14. Jan 21, 2025
  15. Jan 19, 2025
  16. Jan 18, 2025
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.13-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · fda5e3f2
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix regression in GFP output in trace events
      
        It was reported that the GFP flags in trace events went from human
        readable to just their hex values:
      
            gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP to gfp_flags=0x140cca
      
        This was caused by a change that added the use of enums in calculating
        the GFP flags.
      
        As defines get translated into their values in the trace event format
        files, the user space tooling could easily convert the GFP flags into
        their symbols via the __print_flags() helper macro.
      
        The problem is that enums do not get converted, and the names of the
        enums show up in the format files and user space tooling cannot
        translate them.
      
        Add TRACE_DEFINE_ENUM() around the enums used for GFP flags which is
        the tracing infrastructure macro that informs the tracing subsystem
        what the values for enums and it can then expose that to user space"
      
      * tag 'trace-v6.13-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: gfp: Fix the GFP enum values shown for user space tracing tools
      fda5e3f2
  17. Jan 17, 2025
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-6.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 59552394
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
       "Another fix and testcase to avoid the newly added WARN in the case of
        non-translatable addresses"
      
      * tag 'devicetree-fixes-for-6.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of/address: Fix WARN when attempting translating non-translatable addresses
        of/unittest: Add test that of_address_to_resource() fails on non-translatable address
      59552394
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-6.13-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ed9add2b
      Linus Torvalds authored
      Pull SoC fixes from Arnd Bergmann:
       "Two last minute fixes: one build issue on TI soc drivers, and a
        regression in the renesas reset controller driver"
      
      * tag 'soc-fixes-6.13-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        soc: ti: pruss: Fix pruss APIs
        reset: rzg2l-usbphy-ctrl: Assign proper of node to the allocated device
      ed9add2b
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.13-6' of... · 775a15ea
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Ilpo Järvinen:
      
       - dell-uart-backlight: Fix serdev race
      
       - lenovo-yoga-tab2-pro-1380-fastcharger: Fix serdev race
      
      * tag 'platform-drivers-x86-v6.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race
        platform/x86: dell-uart-backlight: fix serdev race
      775a15ea
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 42f38ccb
      Linus Torvalds authored
      Pull mtd revert from Miquel Raynal:
       "Very late this cycle we identified a breakage that could potentially
        hit several spi controller drivers because of a change in the way the
        dummy cycles validity is checked.
      
        We do not know at the moment how to handle the situation properly, so
        we prefer to revert the faulty patch for the next release"
      
      * tag 'mtd/fixes-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        Revert "mtd: spi-nor: core: replace dummy buswidth from addr to data"
      42f38ccb
    • Steven Rostedt's avatar
      tracing: gfp: Fix the GFP enum values shown for user space tracing tools · 60295b94
      Steven Rostedt authored
      Tracing tools like perf and trace-cmd read the /sys/kernel/tracing/events/*/*/format
      files to know how to parse the data and also how to print it. For the
      "print fmt" portion of that file, if anything uses an enum that is not
      exported to the tracing system, user space will not be able to parse it.
      
      The GFP flags use to be defines, and defines get translated in the print
      fmt sections. But now they are converted to use enums, which is not.
      
      The mm_page_alloc trace event format use to have:
      
        print fmt: "page=%p pfn=0x%lx order=%d migratetype=%d gfp_flags=%s",
          REC->pfn != -1UL ? (((struct page *)vmemmap_base) + (REC->pfn)) : ((void
          *)0), REC->pfn != -1UL ? REC->pfn : 0, REC->order, REC->migratetype,
          (REC->gfp_flags) ? __print_flags(REC->gfp_flags, "|", {( unsigned
          long)(((((((( gfp_t)(0x400u|0x800u)) | (( gfp_t)0x40u) | (( gfp_t)0x80u) |
          (( gfp_t)0x100000u)) | (( gfp_t)0x02u)) | (( gfp_t)0x08u) | (( gfp_t)0)) |
          (( gfp_t)0x40000u) | (( gfp_t)0x80000u) | (( gfp_t)0x2000u)) & ~((
          gfp_t)(0x400u|0x800u))) | (( gfp_t)0x400u)), "GFP_TRANSHUGE"}, {( unsigned
          long)((((((( gfp_t)(0x400u|0x800u)) | (( gfp_t)0x40u) | (( gfp_t)0x80u) |
          (( gfp_t)0x100000u)) | (( gfp_t)0x02u)) | (( gfp_t)0x08u) | (( gfp_t)0)) ...
      
      Where the GFP values are shown and not their names. But after the GFP
      flags were converted to use enums, it has:
      
        print fmt: "page=%p pfn=0x%lx order=%d migratetype=%d gfp_flags=%s",
          REC->pfn != -1UL ? (vmemmap + (REC->pfn)) : ((void *)0), REC->pfn != -1UL
          ? REC->pfn : 0, REC->order, REC->migratetype, (REC->gfp_flags) ?
          __print_flags(REC->gfp_flags, "|", {( unsigned long)((((((((
          gfp_t)(((((1UL))) << (___GFP_DIRECT_RECLAIM_BIT))|((((1UL))) <<
          (___GFP_KSWAPD_RECLAIM_BIT)))) | (( gfp_t)((((1UL))) << (___GFP_IO_BIT)))
          | (( gfp_t)((((1UL))) << (___GFP_FS_BIT))) | (( gfp_t)((((1UL))) <<
          (___GFP_HARDWALL_BIT)))) | (( gfp_t)((((1UL))) << (___GFP_HIGHMEM_BIT))))
          | (( gfp_t)((((1UL))) << (___GFP_MOVABLE_BIT))) | (( gfp_t)0)) | ((
          gfp_t)((((1UL))) << (___GFP_COMP_BIT))) ...
      
      Where the enums names like ___GFP_KSWAPD_RECLAIM_BIT are shown and not their
      values. User space has no way to convert these names to their values and
      the output will fail to parse. What is shown is now:
      
        mm_page_alloc:  page=0xffffffff981685f3 pfn=0x1d1ac1 order=0 migratetype=1 gfp_flags=0x140cca
      
      The TRACE_DEFINE_ENUM() macro was created to handle enums in the print fmt
      files. This causes them to be replaced at boot up with the numbers, so
      that user space tooling can parse it. By using this macro, the output is
      back to the human readable:
      
        mm_page_alloc: page=0xffffffff981685f3 pfn=0x122233 order=0 migratetype=1 gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP
      
      Cc: stable@vger.kernel.org
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Veronika  Molnarova <vmolnaro@redhat.com>
      Cc: Suren Baghdasaryan <surenb@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/20250116214438.749504792@goodmis.org
      
      
      Reported-by: default avatarMichael Petlan <mpetlan@redhat.com>
      Closes: https://lore.kernel.org/all/87be5f7c-1a0-dad-daa0-54e342efaea7@redhat.com/
      
      
      Fixes: 772dd034 ("mm: enumerate all gfp flags")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      60295b94
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.13-rc8' of... · 07757eeb
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - ltc2991, tmp513: Fix problems seen when dividing negative numbers
      
       - drivetemp: Handle large timeouts observed on some drives
      
       - acpi_power_meter: Fix loading the driver on platforms without _PMD
         method
      
      * tag 'hwmon-for-v6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ltc2991) Fix mixed signed/unsigned in DIV_ROUND_CLOSEST
        hwmon: (drivetemp) Set scsi command timeout to 10s
        hwmon: (acpi_power_meter) Fix a check for the return value of read_domain_devices().
        hwmon: (tmp513) Fix division of negative numbers
      07757eeb
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 7fed891d
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
      
       - convert regular spinlock to raw spinlock in gpio-xilinx to avoid a
         lockdep splat
      
      * tag 'gpio-fixes-for-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: xilinx: Convert gpio_lock to raw spinlock
      7fed891d
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 5e74b9bf
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - fix ref leak in the I2C core
      
       - fix remove notification in the address translator
      
       - missing error check in the pinctrl demuxer (plus a typo fix)
      
       - fix NAK handling when Linux is testunit target
      
       - fix NAK handling for the Renesas R-Car controller when it is a target
      
      * tag 'i2c-for-6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: testunit: on errors, repeat NACK until STOP
        i2c: rcar: fix NACK handling when being a target
        i2c: mux: demux-pinctrl: correct comment
        i2c: mux: demux-pinctrl: check initial mux selection, too
        i2c: atr: Fix client detach
        i2c: core: fix reference leak in i2c_register_adapter()
      5e74b9bf
Loading