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

Commit 870afd06 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

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

parents 69e24e2b f2a39740
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -151,6 +152,11 @@ static void sde_rot_fence_release(struct 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
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -131,6 +132,13 @@ static void mdss_fence_release(struct 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);
@@ -421,7 +429,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 fence *fence = NULL;

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

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

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

	input_fence = (struct 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