Commit bcd9d56f authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2023-03-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes



Short summary of fixes pull:

 * fix info leak in edid
 * build fix for accel/
 * ref-counting fix for fbdev deferred I/O
 * driver fixes

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230316143347.GA9246@linux-uq9g
parents eeac8ede 4028cbf8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only

obj-y	+= habanalabs/
obj-y	+= ivpu/
obj-$(CONFIG_DRM_ACCEL_HABANALABS)	+= habanalabs/
obj-$(CONFIG_DRM_ACCEL_IVPU)		+= ivpu/
+1 −1
Original line number Diff line number Diff line
@@ -2796,7 +2796,7 @@ u32 drm_edid_get_panel_id(struct i2c_adapter *adapter)
	 * the EDID then we'll just return 0.
	 */

	base_block = kmalloc(EDID_LENGTH, GFP_KERNEL);
	base_block = kzalloc(EDID_LENGTH, GFP_KERNEL);
	if (!base_block)
		return 0;

+7 −2
Original line number Diff line number Diff line
@@ -1388,10 +1388,13 @@ EXPORT_SYMBOL(drm_gem_lru_move_tail);
 *
 * @lru: The LRU to scan
 * @nr_to_scan: The number of pages to try to reclaim
 * @remaining: The number of pages left to reclaim, should be initialized by caller
 * @shrink: Callback to try to shrink/reclaim the object.
 */
unsigned long
drm_gem_lru_scan(struct drm_gem_lru *lru, unsigned nr_to_scan,
drm_gem_lru_scan(struct drm_gem_lru *lru,
		 unsigned int nr_to_scan,
		 unsigned long *remaining,
		 bool (*shrink)(struct drm_gem_object *obj))
{
	struct drm_gem_lru still_in_lru;
@@ -1430,8 +1433,10 @@ drm_gem_lru_scan(struct drm_gem_lru *lru, unsigned nr_to_scan,
		 * hit shrinker in response to trying to get backing pages
		 * for this obj (ie. while it's lock is already held)
		 */
		if (!dma_resv_trylock(obj->resv))
		if (!dma_resv_trylock(obj->resv)) {
			*remaining += obj->size >> PAGE_SHIFT;
			goto tail;
		}

		if (shrink(obj)) {
			freed += obj->size >> PAGE_SHIFT;
+6 −3
Original line number Diff line number Diff line
@@ -619,11 +619,14 @@ int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct
	int ret;

	if (obj->import_attach) {
		vma->vm_private_data = NULL;
		ret = dma_buf_mmap(obj->dma_buf, vma, 0);

		/* Drop the reference drm_gem_mmap_obj() acquired.*/
		if (!ret)
			drm_gem_object_put(obj);
		vma->vm_private_data = NULL;

		return dma_buf_mmap(obj->dma_buf, vma, 0);
		return ret;
	}

	ret = drm_gem_shmem_get_pages(shmem);
+1 −1
Original line number Diff line number Diff line
@@ -718,7 +718,7 @@ static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
	dw_plat_data = &meson_dw_hdmi->dw_plat_data;

	ret = devm_regulator_get_enable_optional(dev, "hdmi");
	if (ret < 0)
	if (ret < 0 && ret != -ENODEV)
		return ret;

	meson_dw_hdmi->hdmitx_apb = devm_reset_control_get_exclusive(dev,
Loading