• Graeme Gregory's avatar
    PSCI: fix limit of 256 CPUs caused by cast to unsigned char · a86865ac
    Graeme Gregory authored
    
    
    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: default avatarGraeme Gregory <graeme@nuviainc.com>
    Change-Id: I9e26842277db7483fd698b46bbac62aa86e71b45
    a86865ac
psci_private.h 11.3 KB