gdb跟踪剖发现free_area_init中一段优化错了,如下:
    memset(mem_map, 0, start_mem - (unsigned long) mem_map);
    do {
        __asm__ __volatile__("":::"memory"); //gcc请不要优化
        --p;
        p->flags = (1 << PG_DMA) | (1 << PG_reserved);
        p->map_nr = p - mem_map; //gcc优化后,p->map_nr值乱了,需要上面那行禁用gcc优化
    } while (p > mem_map);

 

1.3.100

相关文章:

  • 2021-07-19
  • 2021-08-12
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案