Article [#3992] executing FDPIC ELF on NFS mount triggers BUG() at mm/nommu.c:862:/do_mmap_private()

[#3992] executing FDPIC ELF on NFS mount triggers BUG() at mm/nommu.c:862:/do_mmap_private()

Submitted By: Mike Frysinger

Open Date

2008-03-27 17:29:56     Close Date

2008-04-01 17:05:23

Priority:

Medium     Assignee:

Bryan Wu

Status:

Closed     Fixed In Release:

N/A

Found In Release:

N/A     Release:

2008R1 / svn 4492

Category:

N/A     Board:

N/A

Processor:

ALL     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

App binary format:

N/A     

Summary: executing FDPIC ELF on NFS mount triggers BUG() at mm/nommu.c:862:/do_mmap_private()

Details:

platform shouldnt matter ... this has been observed on BF537-STAMP and BF548-EZKIT

if you mount a nfs share and then execute a FDPIC ELF binary on it, you trigger a BUG() in nommu.c

for example:

root:/> mount -t nfs 192.168.0.2:/usr/local/src/blackfin/svn/uclinux-dist/trunk/

romfs -o nolock,nfsvers=3,tcp /mnt/

root:/> cd /mnt/root/

root:/mnt/root> ls

fdpic              flat.gdb           uclinux-config.gz

flat               test.c

root:/mnt/root> cat test.c

#include <stdio.h>

int main(){printf("HI\n");}

root:/mnt/root> ./flat

HI

root:/mnt/root> ./fdpic

Hardware Trace:

   0 Target : <0x00004260> { _dump_bfin_trace_buffer + 0x0 }

     Source : <0x00036ef8> { _do_mmap_pgoff + 0x59c }

   1 Target : <0x00036ef0> { _do_mmap_pgoff + 0x594 }

     Source : <0x00404582> { :nfs:_nfs_instantiate + 0x902 }

   2 Target : <0x0040457a> { :nfs:_nfs_instantiate + 0x8fa }

     Source : <0x0004af7e> { _touch_atime + 0xba }

   3 Target : <0x0004af78> { _touch_atime + 0xb4 }

     Source : <0x0004aed6> { _touch_atime + 0x12 }

   4 Target : <0x0004aec4> { _touch_atime + 0x0 }

     Source : <0x00404578> { :nfs:_nfs_instantiate + 0x8f8 }

   5 Target : <0x0040456c> { :nfs:_nfs_instantiate + 0x8ec }

     Source : <0x00404560> { :nfs:_nfs_instantiate + 0x8e0 }

   6 Target : <0x00404544> { :nfs:_nfs_instantiate + 0x8c4 }

     Source : <0x004063de> { :nfs:_nfs_revalidate_mapping + 0x56 }

   7 Target : <0x004063ce> { :nfs:_nfs_revalidate_mapping + 0x46 }

     Source : <0x00406422> { :nfs:_nfs_revalidate_mapping + 0x9a }

   8 Target : <0x00406418> { :nfs:_nfs_revalidate_mapping + 0x90 }

     Source : <0x004063ae> { :nfs:_nfs_revalidate_mapping + 0x26 }

   9 Target : <0x004063ac> { :nfs:_nfs_revalidate_mapping + 0x24 }

     Source : <0x00404c5c> { :nfs:_nfs_attribute_timeout + 0x2c }

  10 Target : <0x00404c30> { :nfs:_nfs_attribute_timeout + 0x0 }

     Source : <0x004063aa> { :nfs:_nfs_revalidate_mapping + 0x22 }

  11 Target : <0x00406388> { :nfs:_nfs_revalidate_mapping + 0x0 }

     Source : <0x00404542> { :nfs:_nfs_instantiate + 0x8c2 }

  12 Target : <0x00404518> { :nfs:_nfs_instantiate + 0x898 }

     Source : <0x00036eee> { _do_mmap_pgoff + 0x592 }

  13 Target : <0x00036e8a> { _do_mmap_pgoff + 0x52e }

     Source : <0x00036d28> { _do_mmap_pgoff + 0x3cc }

  14 Target : <0x00036d24> { _do_mmap_pgoff + 0x3c8 }

     Source : <0x00037dd2> { _kmem_cache_alloc + 0x4a }

  15 Target : <0x00037dca> { _kmem_cache_alloc + 0x42 }

     Source : <0x00037de4> { _kmem_cache_alloc + 0x5c }

BUG: failure at mm/nommu.c:862/do_mmap_private()!

Kernel panic - not syncing: BUG!

Follow-ups

--- Bryan Wu                                                 2008-04-01 07:51:05

It it because there is no NOMMU version of mmap function in NFS code.

Normally it should be generic_file_mmap() which has both MMU version and NOMMU

version.

So it should be fixed in the trunk and branch, I will pass this fix to LKML for

review.

Thanks

-Bryan

--- Mike Frysinger                                           2008-04-01 17:05:23

yep, works for me now, thanks

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

File Name     File Type     File Size     Posted By

No Files Were Found

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.