On 2017-08-30 21:00, 'Lokesh Vutla' via Jailhouse wrote:
> Get affinity levels from mpidr and populate it in sgi before
> sending sgi in arm_cpu_kick().
> 
> Signed-off-by: Lokesh Vutla <[email protected]>
> ---
>  hypervisor/arch/arm-common/control.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/hypervisor/arch/arm-common/control.c 
> b/hypervisor/arch/arm-common/control.c
> index c5476b2..18b7f8e 100644
> --- a/hypervisor/arch/arm-common/control.c
> +++ b/hypervisor/arch/arm-common/control.c
> @@ -37,9 +37,13 @@ void arm_cpu_park(void)
>  
>  void arm_cpu_kick(unsigned int cpu_id)
>  {
> +     u64 mpidr = per_cpu(cpu_id)->mpidr;
>       struct sgi sgi = {};

Not directly related to this patch, but I think I recently read that {}
doesn't guarantee zero-initialization according to the standard. We
should also set the routing_mode to 0 to avoid gray area.

Jan

>  
> -     sgi.targets = 1 << cpu_id;
> +     sgi.targets = 1 << MPIDR_AFFINITY_LEVEL(mpidr, 0);
> +     sgi.aff1 = MPIDR_AFFINITY_LEVEL(mpidr, 1);
> +     sgi.aff2 = MPIDR_AFFINITY_LEVEL(mpidr, 2);
> +     sgi.aff3 = MPIDR_AFFINITY_LEVEL(mpidr, 3);
>       sgi.id = SGI_EVENT;
>       irqchip_send_sgi(&sgi);
>  }
> 

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to