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

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

Merge "soc: qcom: pil: Clear elf region on authentication failure"

parents 5622b506 f5158dca
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -510,6 +510,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 = {
@@ -528,16 +544,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
@@ -766,6 +772,7 @@ out:
					&desc->attrs);
			priv->region = NULL;
		}
		pil_clear_segment(desc);
		pil_release_mmap(desc);
	}
	return ret;