• Laurent Dufour's avatar
    powerpc: Take in account addition CPU node when building kexec FDT · 340a4a9f
    Laurent Dufour authored
    On a system with a large number of CPUs, the creation of the FDT for a
    kexec kernel may fail because the allocated FDT is not large enough.
    
    When this happens, such a message is displayed on the console:
    
      Unable to add ibm,processor-vadd-size property: FDT_ERR_NOSPACE
    
    The property's name may change depending when the buffer overwrite is
    detected.
    
    Obviously the created FDT is missing information, and it is expected
    that system dump or kexec kernel failed to run properly.
    
    When the FDT is allocated, the size of the FDT the kernel received at
    boot time is used and an extra size can be applied. Currently, only
    memory added after boot time is taken in account, not the CPU nodes.
    
    The extra size should take in account these additional CPU nodes and
    compute the required extra space. To achieve that, the size of a CPU
    node, including its subnode is computed once and multiplied by the
    number of additional CPU nodes.
    
    The assumption is that the size of the CPU node is _same_ for all the
    node, the only variable part should be the name "PowerPC,POWERxx@##"
    where "##" may vary a little.
    Signed-off-by: default avatarLaurent Dufour <ldufour@linux.ibm.com>
    [mpe: Don't shadow function name w/variable, minor coding style changes]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20221110180619.15796-3-ldufour@linux.ibm.com
    340a4a9f
file_load_64.c 35.3 KB