From 5dcf11cec1bf6e5502d155f625a48a4c65daae73 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 7 Jul 2022 15:52:02 +0100 Subject: [PATCH] Revert "FROMLIST: irqchip/gic-v3-its: Mark some in-memory data structures as 'decrypted'" This reverts commit 032803afe58c1fbe53320ce080a9299c8063ca1d. Bug: 233587962 Signed-off-by: Will Deacon Change-Id: I6fee47dadc0c1fc113ed07348dc1cc4aca440cec --- drivers/irqchip/irq-gic-v3-its.c | 40 ++++++-------------------------- 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index b6237925f1c0..fc1bfffc468f 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -2167,7 +2166,6 @@ static void gic_reset_prop_table(void *va) /* Make sure the GIC will observe the written configuration */ gic_flush_dcache_to_poc(va, LPI_PROPBASE_SZ); - set_memory_decrypted((unsigned long)va, LPI_PROPBASE_SZ >> PAGE_SHIFT); } static struct page *its_allocate_prop_table(gfp_t gfp_flags) @@ -2185,10 +2183,8 @@ static struct page *its_allocate_prop_table(gfp_t gfp_flags) static void its_free_prop_table(struct page *prop_page) { - unsigned long va = (unsigned long)page_address(prop_page); - - set_memory_encrypted(va, LPI_PROPBASE_SZ >> PAGE_SHIFT); - free_pages(va, get_order(LPI_PROPBASE_SZ)); + free_pages((unsigned long)page_address(prop_page), + get_order(LPI_PROPBASE_SZ)); } static bool gic_check_reserved_range(phys_addr_t addr, unsigned long size) @@ -2381,8 +2377,6 @@ retry_baser: return -ENXIO; } - set_memory_decrypted((unsigned long)base, - PAGE_ORDER_TO_SIZE(order) >> PAGE_SHIFT); baser->order = order; baser->base = base; baser->psz = psz; @@ -2518,12 +2512,8 @@ static void its_free_tables(struct its_node *its) for (i = 0; i < GITS_BASER_NR_REGS; i++) { if (its->tables[i].base) { - unsigned long base = (unsigned long)its->tables[i].base; - u32 order = its->tables[i].order; - u32 npages = PAGE_ORDER_TO_SIZE(order) >> PAGE_SHIFT; - - set_memory_encrypted(base, npages); - free_pages(base, order); + free_pages((unsigned long)its->tables[i].base, + its->tables[i].order); its->tables[i].base = NULL; } } @@ -2944,7 +2934,6 @@ static int its_alloc_collections(struct its_node *its) static struct page *its_allocate_pending_table(gfp_t gfp_flags) { struct page *pend_page; - void *va; pend_page = alloc_pages(gfp_flags | __GFP_ZERO, get_order(LPI_PENDBASE_SZ)); @@ -2952,19 +2941,14 @@ static struct page *its_allocate_pending_table(gfp_t gfp_flags) return NULL; /* Make sure the GIC will observe the zero-ed page */ - va = page_address(pend_page); - gic_flush_dcache_to_poc(va, LPI_PENDBASE_SZ); - set_memory_decrypted((unsigned long)va, LPI_PENDBASE_SZ >> PAGE_SHIFT); + gic_flush_dcache_to_poc(page_address(pend_page), LPI_PENDBASE_SZ); return pend_page; } static void its_free_pending_table(struct page *pt) { - unsigned long va = (unsigned long)page_address(pt); - - set_memory_encrypted(va, LPI_PENDBASE_SZ >> PAGE_SHIFT); - free_pages(va, get_order(LPI_PENDBASE_SZ)); + free_pages((unsigned long)page_address(pt), get_order(LPI_PENDBASE_SZ)); } /* @@ -3294,20 +3278,14 @@ static bool its_alloc_table_entry(struct its_node *its, /* Allocate memory for 2nd level table */ if (!table[idx]) { - void *l2addr; - page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO, get_order(baser->psz)); if (!page) return false; - l2addr = page_address(page); - set_memory_decrypted((unsigned long)l2addr, - baser->psz >> PAGE_SHIFT); - /* Flush Lvl2 table to PoC if hw doesn't support coherency */ if (!(baser->val & GITS_BASER_SHAREABILITY_MASK)) - gic_flush_dcache_to_poc(l2addr, baser->psz); + gic_flush_dcache_to_poc(page_address(page), baser->psz); table[idx] = cpu_to_le64(page_to_phys(page) | GITS_BASER_VALID); @@ -5075,8 +5053,6 @@ static int __init its_probe_one(struct resource *res, its->fwnode_handle = handle; its->get_msi_base = its_irq_get_msi_base; its->msi_domain_flags = IRQ_DOMAIN_FLAG_MSI_REMAP; - set_memory_decrypted((unsigned long)its->cmd_base, - ITS_CMD_QUEUE_SZ >> PAGE_SHIFT); its_enable_quirks(its); @@ -5133,8 +5109,6 @@ static int __init its_probe_one(struct resource *res, out_free_tables: its_free_tables(its); out_free_cmd: - set_memory_encrypted((unsigned long)its->cmd_base, - ITS_CMD_QUEUE_SZ >> PAGE_SHIFT); free_pages((unsigned long)its->cmd_base, get_order(ITS_CMD_QUEUE_SZ)); out_unmap_sgir: if (its->sgir_base)