lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 17 Feb 2017 07:15:34 +0100 From: Auger Eric <eric.auger@...hat.com> To: Marc Zyngier <marc.zyngier@....com>, linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, kvmarm@...ts.cs.columbia.edu Cc: Thomas Gleixner <tglx@...utronix.de>, Jason Cooper <jason@...edaemon.net>, Christoffer Dall <christoffer.dall@...aro.org> Subject: Re: [RFC PATCH 09/33] irqchip/gic-v3-its: Split out property table allocation Hi Marc, On 17/01/2017 11:20, Marc Zyngier wrote: > Move the LPI property table allocation into its own function, as > this is going to be required for those associated with VMs in > the future. > > Signed-off-by: Marc Zyngier <marc.zyngier@....com> > --- > drivers/irqchip/irq-gic-v3-its.c | 28 ++++++++++++++++++---------- > 1 file changed, 18 insertions(+), 10 deletions(-) > > diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c > index b28fb19..c92ff4d 100644 > --- a/drivers/irqchip/irq-gic-v3-its.c > +++ b/drivers/irqchip/irq-gic-v3-its.c > @@ -889,15 +889,31 @@ static void its_lpi_free(struct event_lpi_map *map) > kfree(map->col_map); > } > > +static struct page *its_allocate_prop_table(gfp_t gfp_flags) > +{ > + struct page *prop_page; > + > + prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ)); > + if (!prop_page) > + return NULL; > + > + /* Priority 0xa0, Group-1, disabled */ > + memset(page_address(prop_page), > + LPI_PROP_DEFAULT_PRIO | LPI_PROP_GROUP1, > + LPI_PROPBASE_SZ); > + > + /* Make sure the GIC will observe the written configuration */ > + gic_flush_dcache_to_poc(page_address(gic_rdists->prop_page), LPI_PROPBASE_SZ); s/gic_rdists->prop_page/prop_page. With that fix, Reviewed-by: Eric Auger <eric.auger@...hat.com> Eric > > + return prop_page; > +} > > > static int __init its_alloc_lpi_tables(void) > { > phys_addr_t paddr; > > - gic_rdists->prop_page = alloc_pages(GFP_NOWAIT, > - get_order(LPI_PROPBASE_SZ)); > + gic_rdists->prop_page = its_allocate_prop_table(GFP_NOWAIT); > if (!gic_rdists->prop_page) { > pr_err("Failed to allocate PROPBASE\n"); > return -ENOMEM; > @@ -906,14 +922,6 @@ static int __init its_alloc_lpi_tables(void) > paddr = page_to_phys(gic_rdists->prop_page); > pr_info("GIC: using LPI property table @%pa\n", &paddr); > > - /* Priority 0xa0, Group-1, disabled */ > - memset(page_address(gic_rdists->prop_page), > - LPI_PROP_DEFAULT_PRIO | LPI_PROP_GROUP1, > - LPI_PROPBASE_SZ); > - > - /* Make sure the GIC will observe the written configuration */ > - gic_flush_dcache_to_poc(page_address(gic_rdists->prop_page), LPI_PROPBASE_SZ); > - > return 0; > } > >
Powered by blists - more mailing lists