]> git.baikalelectronics.ru Git - arm-tf.git/commit
PSCI: fix limit of 256 CPUs caused by cast to unsigned char
authorGraeme Gregory <graeme@nuviainc.com>
Wed, 2 Dec 2020 16:24:32 +0000 (16:24 +0000)
committerGraeme Gregory <graeme@nuviainc.com>
Tue, 22 Dec 2020 07:39:51 +0000 (07:39 +0000)
commita86865ac42ac6f518da14474c94f38869c032488
tree53e46ee9670a6819af8182cf58141374b66515cb
parent669ee776ccad9986b45f9015724955c3830fd471
PSCI: fix limit of 256 CPUs caused by cast to unsigned char

In psci_setup.c psci_init_pwr_domain_node() takes an unsigned
char as node_idx which limits it to initialising only the first
256 CPUs. As the calling function does not check for a limit of
256 I think this is a bug so change the unsigned char to
uint16_t and change the cast from the calling site in
populate_power_domain_tree().

Also update the non_cpu_pwr_domain_node structure lock_index
to uint16_t and update the function signature for psci_lock_init()
appropriately.

Finally add a define PSCI_MAX_CPUS_INDEX to psci_private.h and add
a CASSERT to psci_setup.c to make sure PLATFORM_CORE_COUNT cannot
exceed the index value.

Signed-off-by: Graeme Gregory <graeme@nuviainc.com>
Change-Id: I9e26842277db7483fd698b46bbac62aa86e71b45
lib/psci/psci_private.h
lib/psci/psci_setup.c