Смена контекста и set_fs

Тема в разделе "WASM.UNIX", создана пользователем friackazoid, 8 дек 2009.

  1. friackazoid

    friackazoid New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    102
    Дорого времени суток.
    У меня есть такой вопрос может кто разбирался и в курсе. В коде загрузчика модуля в ядре есть такая часть
    Код (Text):
    1. old_fs = get_fs();
    2. set_fs(KERNEL_DS);
    3. /*
    4.  * Flush the instruction cache, since we've played with text.
    5.  * Do it before processing of module parameters, so the module
    6.  * can provide parameter accessor functions of its own.
    7.  */
    8. if (mod->module_init)
    9.         flush_icache_range((unsigned long)mod->module_init,
    10.                                    (unsigned long)mod->module_init
    11.                                    + mod->init_size);
    12. flush_icache_range((unsigned long)mod->module_core,
    13.                            (unsigned long)mod->module_core + mod->core_size);
    14. set_fs(old_fs);
    Говорит ли этот код о том что вданный момент определяется контекст в котором будет выполнятся модуль то есть контекст ядра
     
  2. stmia

    stmia New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2009
    Сообщения:
    35
    нет, на не-x86 это нужно чтобы безопасно отработала flush_icache_range() ибо модуль изначально
    маппится в user space. на x86 этот код ничего не делает
     
  3. friackazoid

    friackazoid New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    102
    Спасибо!
    Тему можно закрывать, уже стало все ясно.