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

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

Merge "msm: kgsl: Release all memory entries at process close"

parents d7fba4ad 782e97f8
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -418,7 +418,6 @@ kgsl_mem_entry_attach_process(struct kgsl_mem_entry *entry,

	entry->id = id;
	entry->priv = process;
	entry->dev_priv = dev_priv;

	spin_lock(&process->mem_lock);
	ret = kgsl_mem_entry_track_gpuaddr(process, entry);
@@ -927,8 +926,7 @@ static struct kgsl_process_private *kgsl_process_private_new(
	return private;
}

static void process_release_memory(struct kgsl_device_private *dev_priv,
		struct kgsl_process_private *private)
static void process_release_memory(struct kgsl_process_private *private)
{
	struct kgsl_mem_entry *entry;
	int next = 0;
@@ -946,7 +944,7 @@ static void process_release_memory(struct kgsl_device_private *dev_priv,
		 * free a reference to this entry, other references are from
		 * within kgsl so they will be freed eventually by kgsl
		 */
		if (entry->dev_priv == dev_priv && !entry->pending_free) {
		if (!entry->pending_free) {
			entry->pending_free = 1;
			spin_unlock(&private->mem_lock);
			kgsl_mem_entry_put(entry);
@@ -1005,7 +1003,7 @@ static void kgsl_process_private_close(struct kgsl_device_private *dev_priv,
	 */
	mutex_unlock(&kgsl_driver.process_mutex);

	process_release_memory(dev_priv, private);
	process_release_memory(private);

	kgsl_process_private_put(private);
}
+1 −1
Original line number Diff line number Diff line
@@ -193,9 +193,9 @@ struct kgsl_mem_entry {
	unsigned int id;
	struct kgsl_process_private *priv;
	int pending_free;
	struct kgsl_device_private *dev_priv;
};

struct kgsl_device_private;
struct kgsl_event_group;

typedef void (*kgsl_event_func)(struct kgsl_device *, struct kgsl_event_group *,