Hi all,
During porting Blackfin architecture to latest kernel, I found two issues:
1. kernel/futex.c invokes handle_mm_fault() function, which calls
__handle_mm_fault(). But __handle_mm_fault() is defined in
mm/memory.c, which is only compiled when CONFIG_MMU is defined. So
those without MMUs can not use futex any more.
How do you think this shall be fixed? Use #ifdef CONFIG_MMU ... #endif?
2. In include/linux/module.h, "__crc_" and "__ksymtab_" are hard
coded to be the prefix for some kinds of symbols (CRC symbol and
ksymtab section). But in script /mod/modpost.c,
MODULE_SYMBOL_PREFIX##"__crc_" is used as the prefix to search CRC
symbols. So if an architecture (such as h8300 or Blackfin) defines
MODULE_SYMBOL_PREFIX as not NULL ("_"), modpost will always warn about
"no invalid crc".
I think we can just remove the MODULE_SYMBOL_PREFIX from CRC_PFX
and KSYMTAB_PFX in modpost.c. If you agree, I can send a patch for
this.
Best regards,
Luke Yang
Analog Device Inc.
Luke Yang <[email protected]> wrote:
>
> Hi all,
>
> During porting Blackfin architecture to latest kernel, I found two issues:
>
> 1. kernel/futex.c invokes handle_mm_fault() function, which calls
> __handle_mm_fault(). But __handle_mm_fault() is defined in
> mm/memory.c, which is only compiled when CONFIG_MMU is defined. So
> those without MMUs can not use futex any more.
>
> How do you think this shall be fixed? Use #ifdef CONFIG_MMU ... #endif?
See frv-make-futex-code-compilable-on-nommu.patch from recent -mm kernels.