Commit graph

331 commits

Author SHA1 Message Date
Jinjie Ruan
df19926700 drm/imx/dcss: Use IRQF_NO_AUTOEN flag in request_irq()
[ Upstream commit 1af01e14db7e0b45ae502d822776a58c86688763 ]

disable_irq() after request_irq() still has a time gap in which
interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
disable IRQ auto-enable when request IRQ.

Fixes: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240912083020.3720233-2-ruanjinjie@huawei.com
[DB: fixed the subject]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-17 13:24:03 +01:00
Tomi Valkeinen
11a92febea drm/omap: Fix locking in omap_gem_new_dmabuf()
[ Upstream commit e6a1c4037227539373c8cf484ace83833e2ad6a2 ]

omap_gem_new_dmabuf() creates the new gem object, and then takes and
holds the omap_obj->lock for the rest of the function. This has two
issues:

- omap_gem_free_object(), which is called in the error paths, also takes
  the same lock, leading to deadlock
- Even if the above wouldn't happen, in the error cases
  omap_gem_new_dmabuf() still unlocks omap_obj->lock, even after the
  omap_obj has already been freed.

Furthermore, I don't think there's any reason to take the lock at all,
as the object was just created and not yet shared with anyone else.

To fix all this, drop taking the lock.

Fixes: 3cbd0c587b12 ("drm/omap: gem: Replace struct_mutex usage with omap_obj private lock")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/511b99d7-aade-4f92-bd3e-63163a13d617@stanley.mountain/
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240806-omapdrm-misc-fixes-v1-3-15d31aea0831@ideasonboard.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-17 13:24:03 +01:00
Andy Shevchenko
ab093c3006 drm/mm: Mark drm_mm_interval_tree*() functions with __maybe_unused
[ Upstream commit 53bd7c1c0077db533472ae32799157758302ef48 ]

The INTERVAL_TREE_DEFINE() uncoditionally provides a bunch of helper
functions which in some cases may be not used. This, in particular,
prevents kernel builds with clang, `make W=1` and CONFIG_WERROR=y:

.../drm/drm_mm.c:152:1: error: unused function 'drm_mm_interval_tree_insert' [-Werror,-Wunused-function]
  152 | INTERVAL_TREE_DEFINE(struct drm_mm_node, rb,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  153 |                      u64, __subtree_last,
      |                      ~~~~~~~~~~~~~~~~~~~~
  154 |                      START, LAST, static inline, drm_mm_interval_tree)
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix this by marking drm_mm_interval_tree*() functions with __maybe_unused.

See also commit 6863f5643dd7 ("kbuild: allow Clang to find unused static
inline functions for W=1 build").

Fixes: 202b52b7fbf7 ("drm: Track drm_mm nodes with an interval tree")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240829154640.1120050-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-17 13:24:03 +01:00
Francesco Dolcini
1158b8145b drm/bridge: tc358768: Fix DSI command tx
commit 32c4514455b2b8fde506f8c0962f15c7e4c26f1d upstream.

Wait for the command transmission to be completed in the DSI transfer
function polling for the dc_start bit to go back to idle state after the
transmission is started.

This is documented in the datasheet and failures to do so lead to
commands corruption.

Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
Cc: stable@vger.kernel.org
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240926141246.48282-1-francesco@dolcini.it
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240926141246.48282-1-francesco@dolcini.it
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-17 13:20:51 +01:00
Antonio Quartulli
aa6358430a drm/amdgpu: prevent NULL pointer dereference if ATIF is not supported
commit a6dd15981c03f2cdc9a351a278f09b5479d53d2e upstream.

acpi_evaluate_object() may return AE_NOT_FOUND (failure), which
would result in dereferencing buffer.pointer (obj) while being NULL.

Although this case may be unrealistic for the current code, it is
still better to protect against possible bugs.

Bail out also when status is AE_NOT_FOUND.

This fixes 1 FORWARD_NULL issue reported by Coverity
Report: CID 1600951:  Null pointer dereferences  (FORWARD_NULL)

Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
Fixes: c9b7c809b89f ("drm/amd: Guard against bad data for ATIF ACPI method")
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20241031152848.4716-1-antonio@mandelbit.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 91c9e221fe2553edf2db71627d8453f083de87a1)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-30 02:33:24 +01:00
Alex Deucher
f440f3ca1f drm/amdgpu: add missing size check in amdgpu_debugfs_gprwave_read()
commit 4d75b9468021c73108b4439794d69e892b1d24e3 upstream.

Avoid a possible buffer overflow if size is larger than 4K.

Reviewed-by: Yang Wang <kevinyang.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit f5d873f5825b40d886d03bd2aede91d4cf002434)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-30 02:33:24 +01:00
Ksawlii
f9e1f3fa3a Revert "exynos_gpu: Don't allow userspace to control freqs"
This reverts commit fdef7b54c3.
2024-11-24 19:22:36 +01:00
Ksawlii
1ffb9c4abb Revert "drm: panel-orientation-quirks: Add quirk for OrangePi Neo"
This reverts commit 7dc65657e4.
2024-11-24 00:23:49 +01:00
Ksawlii
c187eb4fd5 Revert "drm/i915/fence: Mark debug_fence_init_onstack() with __maybe_unused"
This reverts commit 3ee84729fc.
2024-11-24 00:23:36 +01:00
Ksawlii
2d9bc5b4af Revert "drm/i915/fence: Mark debug_fence_free() with __maybe_unused"
This reverts commit 0bb1e0a912.
2024-11-24 00:23:36 +01:00
Ksawlii
37e508a03b Revert "drm/msm/adreno: Fix error return if missing firmware-name"
This reverts commit 114e57cc55.
2024-11-24 00:23:35 +01:00
Ksawlii
3a0492cae8 Revert "drm: komeda: Fix an issue related to normalized zpos"
This reverts commit f98965500e.
2024-11-24 00:23:33 +01:00
Ksawlii
3fe0cf26f0 Revert "drm/stm: Fix an error handling path in stm_drm_platform_probe()"
This reverts commit 03956d38af.
2024-11-24 00:23:26 +01:00
Ksawlii
f813cb6b0a Revert "drm/amdgpu: Replace one-element array with flexible-array member"
This reverts commit 8fae68c46a.
2024-11-24 00:23:26 +01:00
Ksawlii
d3c702a169 Revert "drm/amdgpu: properly handle vbios fake edid sizing"
This reverts commit 83535625d4.
2024-11-24 00:23:26 +01:00
Ksawlii
e7a0a0a989 Revert "drm/radeon: Replace one-element array with flexible-array member"
This reverts commit d0631885b7.
2024-11-24 00:23:26 +01:00
Ksawlii
ee73a3644c Revert "drm/radeon: properly handle vbios fake edid sizing"
This reverts commit 103f1f860c.
2024-11-24 00:23:26 +01:00
Ksawlii
32d14f5d13 Revert "drm/rockchip: vop: Allow 4096px width scaling"
This reverts commit d911780415.
2024-11-24 00:23:26 +01:00
Ksawlii
b83dd1217a Revert "drm/rockchip: dw_hdmi: Fix reading EDID when using a forced mode"
This reverts commit 7c596051d6.
2024-11-24 00:23:26 +01:00
Ksawlii
5321d71bb1 Revert "drm/radeon/evergreen_cs: fix int overflow errors in cs track offsets"
This reverts commit a339df473d.
2024-11-24 00:23:25 +01:00
Ksawlii
75d54cbe54 Revert "drm/msm: Fix incorrect file name output in adreno_request_fw()"
This reverts commit 4135fc06a3.
2024-11-24 00:23:25 +01:00
Ksawlii
8970e43037 Revert "drm/msm/a5xx: disable preemption in submits by default"
This reverts commit a5394161bf.
2024-11-24 00:23:25 +01:00
Ksawlii
f3d2c0c9ba Revert "drm/msm/a5xx: properly clear preemption records on resume"
This reverts commit fcb7824289.
2024-11-24 00:23:25 +01:00
Ksawlii
f007606619 Revert "drm/msm/a5xx: fix races in preemption evaluation stage"
This reverts commit 22746ff9a0.
2024-11-24 00:23:25 +01:00
Ksawlii
a33260418a Revert "drm/msm: Add priv->mm_lock to protect active/inactive lists"
This reverts commit 20d019dcd9.
2024-11-24 00:23:25 +01:00
Ksawlii
c18d247bc2 Revert "drm/msm: Drop priv->lastctx"
This reverts commit 77084c27bb.
2024-11-24 00:23:25 +01:00
Ksawlii
5aff368457 Revert "drm/msm/a5xx: workaround early ring-buffer emptiness check"
This reverts commit 2a3b8254f9.
2024-11-24 00:23:24 +01:00
Ksawlii
2b540eeaa5 Revert "drm/msm: fix %s null argument error"
This reverts commit d79cc74edb.
2024-11-24 00:23:24 +01:00
Ksawlii
3eed8cca41 Revert "drivers:drm:exynos_drm_gsc:Fix wrong assignment in gsc_bind()"
This reverts commit 8e094acfd9.
2024-11-24 00:23:24 +01:00
Ksawlii
c2a82d3cc4 Revert "drm/amd/display: Round calculated vtotal"
This reverts commit 033f56e503.
2024-11-24 00:23:17 +01:00
Ksawlii
3c13d72960 Revert "drm/amd/display: Initialize get_bytes_per_element's default to 1"
This reverts commit 293de81901.
2024-11-24 00:23:06 +01:00
Ksawlii
874d1dc60d Revert "drm/printer: Allow NULL data in devcoredump printer"
This reverts commit f39aaded93.
2024-11-24 00:23:06 +01:00
Ksawlii
d46c056a33 Revert "drm/radeon/r100: Handle unknown family in r100_cp_init_microcode()"
This reverts commit 33dff12c44.
2024-11-24 00:23:06 +01:00
Ksawlii
acc7fa319a Revert "drm/amd/pm: ensure the fw_info is not null before using it"
This reverts commit b8738df176.
2024-11-24 00:23:06 +01:00
Ksawlii
34c3ff3688 Revert "drm: Consistently use struct drm_mode_rect for FB_DAMAGE_CLIPS"
This reverts commit 444232b00b.
2024-11-24 00:23:04 +01:00
Ksawlii
086b0d40c1 Revert "drm: omapdrm: Add missing check for alloc_ordered_workqueue"
This reverts commit 6d2ca9e716.
2024-11-24 00:23:03 +01:00
Ksawlii
e136698c96 Revert "drm/sched: Add locking to drm_sched_entity_modify_sched"
This reverts commit 28800f44ce.
2024-11-24 00:23:01 +01:00
Ksawlii
c6f5d8db3c Revert "drm/rockchip: define gamma registers for RK3399"
This reverts commit cafee81fda.
2024-11-24 00:23:00 +01:00
Ksawlii
c0cb37d316 Revert "drm/rockchip: support gamma control on RK3399"
This reverts commit 36a33fc208.
2024-11-24 00:23:00 +01:00
Ksawlii
0652589731 Revert "drm/rockchip: vop: clear DMA stop bit on RK3066"
This reverts commit 7229c75404.
2024-11-24 00:23:00 +01:00
Ksawlii
615dcf3da9 Revert "drm/crtc: fix uninitialized variable use even harder"
This reverts commit 3522dcec50.
2024-11-24 00:22:59 +01:00
Ksawlii
72a3d14a18 Revert "drm/amd/display: Check null pointer before dereferencing se"
This reverts commit 61ab6d9aa6.
2024-11-24 00:22:57 +01:00
Ksawlii
7e10dfc7ee Revert "nouveau/dmem: Fix vulnerability in migrate_to_ram upon copy error"
This reverts commit 0486357541.
2024-11-24 00:22:55 +01:00
Ksawlii
9bf31e8691 Revert "drm/radeon: Fix encoder->possible_clones"
This reverts commit ff586b4f24.
2024-11-24 00:22:52 +01:00
Ksawlii
cd921badef Revert "drm/vmwgfx: Handle surface check failure correctly"
This reverts commit 9af2b41a3f.
2024-11-24 00:22:52 +01:00
Wachowski, Karol
56c4cfaa0f drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE)
commit 39bc27bd688066a63e56f7f64ad34fae03fbe3b8 upstream.

Lack of check for copy-on-write (COW) mapping in drm_gem_shmem_mmap
allows users to call mmap with PROT_WRITE and MAP_PRIVATE flag
causing a kernel panic due to BUG_ON in vmf_insert_pfn_prot:
BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));

Return -EINVAL early if COW mapping is detected.

This bug affects all drm drivers using default shmem helpers.
It can be reproduced by this simple example:
void *ptr = mmap(0, size, PROT_WRITE, MAP_PRIVATE, fd, mmap_offset);
ptr[0] = 0;

Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects")
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Eric Anholt <eric@anholt.net>
Cc: Rob Herring <robh@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v5.2+
Signed-off-by: Wachowski, Karol <karol.wachowski@intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20240520100514.925681-1-jacek.lawrynowicz@linux.intel.com
[ Artem: bp to fix CVE-2024-39497, in order to adapt this patch to branch 5.10
  add header file mm/internal.h]
Signed-off-by: Artem Sdvizhkov <raclesdv@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:22:06 +01:00
Jason-JH.Lin
1a6bf429eb Revert "drm/mipi-dsi: Set the fwnode for mipi_dsi_device"
This reverts commit 139c27648f8d3b2283f74715d8e7f0df7f5e55ca which is
commit a26cc2934331b57b5a7164bff344f0a2ec245fc0 upstream.

Reason for revert:
1. The commit [1] does not land on linux-5.15, so this patch does not
fix anything.

2. Since the fw_devlink improvements series [2] does not land on
linux-5.15, using device_set_fwnode() causes the panel to flash during
bootup.

Incorrect link management may lead to incorrect device initialization,
affecting firmware node links and consumer relationships.
The fwnode setting of panel to the DSI device would cause a DSI
initialization error without series[2], so this patch was reverted to
avoid using the incomplete fw_devlink functionality.

[1] commit 3fb16866b51d ("driver core: fw_devlink: Make cycle detection more robust")
[2] Link: https://lore.kernel.org/all/20230207014207.1678715-1-saravanak@google.com

Cc: stable@vger.kernel.org # 5.15.169
Cc: stable@vger.kernel.org # 5.10.228
Cc: stable@vger.kernel.org # 5.4.284
Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:22:06 +01:00
Mario Limonciello
2dd30f8c30 drm/amd: Guard against bad data for ATIF ACPI method
commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 upstream.

If a BIOS provides bad data in response to an ATIF method call
this causes a NULL pointer dereference in the caller.

```
? show_regs (arch/x86/kernel/dumpstack.c:478 (discriminator 1))
? __die (arch/x86/kernel/dumpstack.c:423 arch/x86/kernel/dumpstack.c:434)
? page_fault_oops (arch/x86/mm/fault.c:544 (discriminator 2) arch/x86/mm/fault.c:705 (discriminator 2))
? do_user_addr_fault (arch/x86/mm/fault.c:440 (discriminator 1) arch/x86/mm/fault.c:1232 (discriminator 1))
? acpi_ut_update_object_reference (drivers/acpi/acpica/utdelete.c:642)
? exc_page_fault (arch/x86/mm/fault.c:1542)
? asm_exc_page_fault (./arch/x86/include/asm/idtentry.h:623)
? amdgpu_atif_query_backlight_caps.constprop.0 (drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:387 (discriminator 2)) amdgpu
? amdgpu_atif_query_backlight_caps.constprop.0 (drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:386 (discriminator 1)) amdgpu
```

It has been encountered on at least one system, so guard for it.

Fixes: d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)")
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit c9b7c809b89f24e9372a4e7f02d64c950b07fdee)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:22:01 +01:00
Hans de Goede
b9c4e3f0e5 drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA
[ Upstream commit d92b90f9a54d9300a6e883258e79f36dab53bfae ]

Replace the fake VLA at end of the vbva_mouse_pointer_shape shape with
a real VLA to fix a "memcpy: detected field-spanning write error" warning:

[   13.319813] memcpy: detected field-spanning write (size 16896) of single field "p->data" at drivers/gpu/drm/vboxvideo/hgsmi_base.c:154 (size 4)
[   13.319841] WARNING: CPU: 0 PID: 1105 at drivers/gpu/drm/vboxvideo/hgsmi_base.c:154 hgsmi_update_pointer_shape+0x192/0x1c0 [vboxvideo]
[   13.320038] Call Trace:
[   13.320173]  hgsmi_update_pointer_shape [vboxvideo]
[   13.320184]  vbox_cursor_atomic_update [vboxvideo]

Note as mentioned in the added comment it seems the original length
calculation for the allocated and send hgsmi buffer is 4 bytes too large.
Changing this is not the goal of this patch, so this behavior is kept.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240827104523.17442-1-hdegoede@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:22:00 +01:00
Jonathan Marek
34b9267737 drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation
[ Upstream commit 358b762400bd94db2a14a72dfcef74c7da6bd845 ]

When (mode->clock * 1000) is larger than (1<<31), int to unsigned long
conversion will sign extend the int to 64 bits and the pclk_rate value
will be incorrect.

Fix this by making the result of the multiplication unsigned.

Note that above (1<<32) would still be broken and require more changes, but
its unlikely anyone will need that anytime soon.

Fixes: c4d8cfe516dc ("drm/msm/dsi: add implementation for helper functions")
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/618434/
Link: https://lore.kernel.org/r/20241007050157.26855-2-jonathan@marek.ca
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:58 +01:00