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.