Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86129282 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "fbdev: msm: check for valid fence before using objects"

parents 328a356f 55ac12d4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#define pr_fmt(fmt)	"%s: " fmt, __func__
@@ -143,6 +144,11 @@ static void sde_rot_fence_release(struct dma_fence *fence)
	struct sde_rot_fence *f = to_sde_rot_fence(fence);
	unsigned long flags;

	if (fence->ops->get_driver_name != &sde_rot_fence_get_driver_name) {
		pr_debug("invalid parameters\n");
		return;
	}

	spin_lock_irqsave(fence->lock, flags);
	if (!list_empty(&f->fence_list))
		list_del(&f->fence_list);
+19 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2015-2018, 2020, The Linux Foundation. All rights reserved. */
/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */

#define pr_fmt(fmt)	"%s: " fmt, __func__

@@ -121,6 +122,13 @@ static void mdss_fence_release(struct dma_fence *fence)
	struct mdss_timeline *tl = to_mdss_timeline(fence);

	pr_debug("%s for fence %s\n", __func__, f->name);

	if (!fence || (fence->ops->get_driver_name !=
			&mdss_fence_get_driver_name)) {
		pr_debug("invalid parameters\n");
		return;
	}

	spin_lock(&tl->list_lock);
	if (!list_empty(&f->fence_list))
		list_del(&f->fence_list);
@@ -412,7 +420,10 @@ int mdss_wait_sync_fence(struct mdss_fence *fence,
 */
struct mdss_fence *mdss_get_fd_sync_fence(int fd)
{
	return (struct mdss_fence *) sync_file_get_fence(fd);
	struct dma_fence *fence = NULL;

	fence = sync_file_get_fence(fd);
	return to_mdss_fence(fence);
}

/*
@@ -455,11 +466,18 @@ int mdss_get_sync_fence_fd(struct mdss_fence *fence)
 */
const char *mdss_get_sync_fence_name(struct mdss_fence *fence)
{
	struct dma_fence *input_fence = NULL;

	if (!fence) {
		pr_err("invalid parameters\n");
		return NULL;
	}

	input_fence = (struct dma_fence *) &fence->base;

	if (input_fence->ops->get_driver_name != &mdss_fence_get_driver_name)
		return input_fence->ops->get_driver_name(input_fence);

	return fence->name;
}
#endif