LINUX.ORG.RU

2.6.25 и nVidua


0

0

Не компилит
хвост лога:
/usr/src/nvidia/NVIDIA-Linux-x86_64-169.12-pkg2/usr/src/nv/nv-vm.c:364: erro
r: implicit declaration of function ‘global_flush_tlb’
make[4]: *** [/usr/src/nvidia/NVIDIA-Linux-x86_64-169.12-pkg2/usr/src/nv/nv-
vm.o] Ошибка 1
make[3]: *** [_module_/usr/src/nvidia/NVIDIA-Linux-x86_64-169.12-pkg2/usr/sr
c/nv] Ошибка 2
make[2]: *** [sub-make] Ошибка 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Ошибка 1
make: *** [module] Ошибка 2
-> Error.
ERROR: Unable to build the NVIDIA kernel module.
ERROR: Installation has failed. Please see the file
'/var/log/nvidia-installer.log' for details. You may find suggestions
on fixing installation problems in the README available on the Linux
driver download page at www.nvidia.com.

результаты поиска не найденой функции в ядрах 2,6,24

linux-2.6.24]$ grep -Re"global_flush_tlb" ./
./drivers/char/agp/intel-agp.c: global_flush_tlb();
./drivers/char/agp/intel-agp.c: global_flush_tlb();
./drivers/char/agp/intel-agp.c: global_flush_tlb();
./drivers/char/agp/intel-agp.c: global_flush_tlb();
./drivers/char/agp/intel-agp.c: global_flush_tlb();
./drivers/char/agp/i460-agp.c: global_flush_tlb();
./drivers/char/agp/i460-agp.c: global_flush_tlb();
./drivers/char/agp/ali-agp.c: global_flush_tlb();
./drivers/char/agp/ali-agp.c: global_flush_tlb();
./drivers/video/vermilion/vermilion.c: * The first global_flush_tlb() is really only there to do a global
./drivers/video/vermilion/vermilion.c: global_flush_tlb();
./drivers/video/vermilion/vermilion.c: global_flush_tlb();
./drivers/video/vermilion/vermilion.c: global_flush_tlb();
./arch/x86/kernel/pci-gart_64.c: global_flush_tlb();
./arch/x86/mm/ioremap_64.c: global_flush_tlb();
./arch/x86/mm/ioremap_32.c: global_flush_tlb();
./arch/x86/mm/ioremap_32.c: global_flush_tlb();
./arch/x86/mm/pageattr_32.c: * Caller must call global_flush_tlb() after this.
./arch/x86/mm/pageattr_32.c:void global_flush_tlb(void)
./arch/x86/mm/pageattr_32.c:EXPORT_SYMBOL(global_flush_tlb);
./arch/x86/mm/init_32.c: * change_page_attr() requires a global_flush_tlb() call after it.
./arch/x86/mm/init_32.c: global_flush_tlb();
./arch/x86/mm/init_64.c: global_flush_tlb();
./arch/x86/mm/init_64.c: * change_page_attr_addr() requires a global_flush_tlb() call after it.
./arch/x86/mm/init_64.c: global_flush_tlb();
./arch/x86/mm/pageattr_64.c: * Caller must call global_flush_tlb() after this.
./arch/x86/mm/pageattr_64.c:void global_flush_tlb(void)
./arch/x86/mm/pageattr_64.c:EXPORT_SYMBOL(global_flush_tlb);
./sound/pci/intel8x0.c: global_flush_tlb();
./include/asm-cris/cacheflush.h:void global_flush_tlb(void);
./include/asm-x86/agp.h: * Caller's responsibility to call global_flush_tlb() for performance
./include/asm-x86/agp.h:#define flush_agp_mappings() global_flush_tlb()
./include/asm-x86/cacheflush.h:void global_flush_tlb(void);
linux-2.6.24]$

И в ядре 2,6,25
linux-2.6.25]$ grep -Re"global_flush_tlb" ./
./include/asm-cris/cacheflush.h:void global_flush_tlb(void);
linux-2.6.25]$

Кто Сталкивался?? Чак лечить??



★★

Лечится "на раз".

1. Упоминания про global_flush_tlb выкидываем

2. change_page_attr в завиисимости от контекста меняем на set_pages_uc и set_pages_wb

Проверено, работает.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

а поподробней можно? патчики глянул, там как то посложнее немного. да вот беда беда, нет патчика под 100.х.х

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.