[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] arm: add few checks to gic_init



On Fri, 2012-11-30 at 12:38 +0000, Stefano Stabellini wrote:
> Check for:
> - uninitialized GIC interface addresses;
> - non-page aligned GIC interface addresses.
> 
> Panic in both cases.
> Also remove the code from GICH and GICC to handle non-page aligned
> interfaces.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

I tried to apply but I got rejects. I thought this came before "xen: get
GIC addresses from DT", have I got it backwards?

> /
> @@ -308,6 +306,23 @@ static void __cpuinit gic_hyp_disable(void)
>  /* Set up the GIC */
>  void __init gic_init(void)
>  {
> +    if ( !early_info.gic.gic_dist_addr ||
> +         !early_info.gic.gic_cpu_addr ||
> +         !early_info.gic.gic_hyp_addr ||
> +         !early_info.gic.gic_vcpu_addr )
> +        panic("the physical address of one of the GIC interfaces is 
> missing:\n"
> +              "        gic_dist_addr=%"PRIpaddr"\n"
> +              "        gic_cpu_addr=%"PRIpaddr"\n"
> +              "        gic_hyp_addr=%"PRIpaddr"\n"
> +              "        gic_vcpu_addr=%"PRIpaddr"\n",
> +              early_info.gic.gic_dist_addr, early_info.gic.gic_cpu_addr,
> +              early_info.gic.gic_hyp_addr, early_info.gic.gic_vcpu_addr);

Might be worth printing these out unconditionally as part of a message
about initialising the GIC (which could include version, number of
interrupts etc too).

Useful in its own right but better than duplicating them in the next
panic message too.

> +    if ( (early_info.gic.gic_dist_addr & ~PAGE_MASK) ||
> +         (early_info.gic.gic_cpu_addr & ~PAGE_MASK) ||
> +         (early_info.gic.gic_hyp_addr & ~PAGE_MASK) ||
> +         (early_info.gic.gic_vcpu_addr & ~PAGE_MASK) )
> +        panic("error: GIC interfaces not page aligned.\n");

"error: " seems a bit redundant in a panic message ;-)

> +
>      gic.dbase = early_info.gic.gic_dist_addr;
>      gic.cbase = early_info.gic.gic_cpu_addr;
>      gic.hbase = early_info.gic.gic_hyp_addr;



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.