2005-12-14 02:37:38

by Luke Yang

[permalink] [raw]
Subject: Two bugs in kernel 2.6.15-rc5

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.


2005-12-17 20:37:22

by Andrew Morton

[permalink] [raw]
Subject: Re: Two bugs in kernel 2.6.15-rc5

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.