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

Commit 79cc7459 authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: pil: Clear elf region on authentication failure" into msm-4.8

parents f41cbc72 ebb4283c
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -594,6 +594,22 @@ static void pil_release_mmap(struct pil_desc *desc)
	struct pil_priv *priv = desc->priv;
	struct pil_seg *p, *tmp;
	u64 zero = 0ULL;

	if (priv->info) {
		__iowrite32_copy(&priv->info->start, &zero,
					sizeof(zero) / 4);
		writel_relaxed(0, &priv->info->size);
	}

	list_for_each_entry_safe(p, tmp, &priv->segs, list) {
		list_del(&p->list);
		kfree(p);
	}
}

static void pil_clear_segment(struct pil_desc *desc)
{
	struct pil_priv *priv = desc->priv;
	u8 __iomem *buf;

	struct pil_map_fw_info map_fw_info = {
@@ -612,16 +628,6 @@ static void pil_release_mmap(struct pil_desc *desc)
	desc->unmap_fw_mem(buf, (priv->region_end - priv->region_start),
								map_data);

	if (priv->info) {
		__iowrite32_copy(&priv->info->start, &zero,
					sizeof(zero) / 4);
		writel_relaxed(0, &priv->info->size);
	}

	list_for_each_entry_safe(p, tmp, &priv->segs, list) {
		list_del(&p->list);
		kfree(p);
	}
}

#define IOMAP_SIZE SZ_1M
@@ -922,6 +928,7 @@ int pil_boot(struct pil_desc *desc)
					desc->attrs);
			priv->region = NULL;
		}
		pil_clear_segment(desc);
		pil_release_mmap(desc);
	}
	return ret;