Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/main/main.c

    r41deb2a r32817cc  
    151151        size_t i;
    152152        for (i = 0; i < init.cnt; i++) {
    153                 if (PA_OVERLAPS(config.stack_base, config.stack_size,
    154                     init.tasks[i].addr, init.tasks[i].size))
    155                         config.stack_base = ALIGN_UP(init.tasks[i].addr +
    156                             init.tasks[i].size, config.stack_size);
     153                if (overlaps(KA2PA(config.stack_base), config.stack_size,
     154                    init.tasks[i].paddr, init.tasks[i].size)) {
     155                        /*
     156                         * The init task overlaps with the memory behind the
     157                         * kernel image so it must be in low memory and we can
     158                         * use PA2KA on the init task's physical address.
     159                         */
     160                        config.stack_base = ALIGN_UP(
     161                            PA2KA(init.tasks[i].paddr) + init.tasks[i].size,
     162                            config.stack_size);
     163                }
    157164        }
    158165       
Note: See TracChangeset for help on using the changeset viewer.