LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 696|回复: 2

请问这个内核模块的错误

[复制链接]
发表于 2005-12-12 15:25:53 | 显示全部楼层 |阅读模式
一个内核Driver模块

调用到do_generic_read_file()函数的时候会出现下边的错误信息(dmesg得到),此函数的形参函数是我自己写的

具体操作是mount

我知道这个错误应该是空指针得到的,不过不知道具体该怎么查

请帮忙分析一下,谢谢


  1. Unable to handle kernel NULL pointer dereference at virtual address 00000000
  2. printing eip:
  3. 00000000
  4. *pde = 0231f067
  5. Oops: 0000 [#1]
  6. Modules linked in: msdos fat vf(U) VD(U) vmhgfs(U) md5 ipv6 dm_mod button battery ac snd_ens1371 snd_rawmidi snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_ac97_codec snd soundcore pcnet32 mii ext3 jbd mptscsih mptbase sd_mod scsi_mod
  7. CPU:    0
  8. EIP:    0060:[<00000000>]    Tainted: PF     VLI
  9. EFLAGS: 00010246   (2.6.9-5.EL)
  10. EIP is at 0x0
  11. eax: c004db80   ebx: c1052580   ecx: c0404f00   edx: c1052580
  12. esi: 00000010   edi: c0fd9eac   ebp: 00000000   esp: c1b87c2c
  13. ds: 007b   es: 007b   ss: 0068
  14. Process mount (pid: 2575, threadinfo=c1b87000 task=c22db220)
  15. Stack: c01488f7 c1b87c9c c004db80 00000000 00000000 c0145cc9 c102a460 00000206
  16.        000001d2 c034f7f4 00000000 000001d2 c034fabc c0145da0 00000001 00000000
  17.        c22db220 00000010 00000000 c0fd9eac 0000000f 00000010 00000010 c0148e1f
  18. Call Trace:
  19. [<c01488f7>] read_pages+0x8d/0xd0
  20. [<c0145cc9>] buffered_rmqueue+0x1c4/0x1e7
  21. [<c0145da0>] __alloc_pages+0xb4/0x298
  22. [<c0148e1f>] do_page_cache_readahead+0x243/0x262
  23. [<c0148f6f>] page_cache_readahead+0x131/0x19e
  24. [<c0142407>] do_generic_mapping_read+0xd9/0x37c
  25. [<c024190d>] __generic_unplug_device+0x2b/0x2d
  26. [<c024198a>] generic_unplug_device+0x7b/0xe0
  27. [<c02419fe>] blk_backing_dev_unplug+0xf/0x10
  28. [<c0163745>] sync_buffer+0x26/0x27
  29. [<c0163841>] __wait_on_buffer+0x67/0x83
  30. [<c01636f6>] bh_wake_function+0x0/0x29
  31. [<c0166f0e>] submit_bh+0x156/0x162
  32. [<c01636f6>] bh_wake_function+0x0/0x29
  33. [<c01653ba>] __bread_slow+0x78/0x8d
  34. [<c016559b>] __bread+0x19/0x1e
  35. [<c399d34f>] fat_fill_super+0x105/0x71f [fat]
  36. [<c01085ee>] do_IRQ+0x239/0x242
  37. [<c0301d40>] common_interrupt+0x18/0x20
  38. [<c390249e>] msdos_fill_super+0xf/0x23 [msdos]
  39. [<c016a1f4>] get_sb_bdev+0xe0/0x11c
  40. [<c03003b2>] __cond_resched+0x14/0x3b
  41. [<c39024c0>] msdos_get_sb+0xe/0x12 [msdos]
  42. [<c390248f>] msdos_fill_super+0x0/0x23 [msdos]
  43. [<c016a3bd>] do_kern_mount+0x8a/0x13a
  44. [<c018405c>] do_new_mount+0x61/0x90
  45. [<c0184ada>] do_mount+0x178/0x190
  46. [<c0145da0>] __alloc_pages+0xb4/0x298
  47. [<c0184f8f>] sys_mount+0x10d/0x1df
  48. [<c0301bfb>] syscall_call+0x7/0xb
  49. Code:  Bad EIP value.
复制代码
 楼主| 发表于 2005-12-12 17:18:59 | 显示全部楼层


出上边错误的时候,源码文件放在vmware的hgfs文件夹下了,这样就会出错

而拷贝到linux的ext3分区上就正常了

这是什么原因???
回复 支持 反对

使用道具 举报

发表于 2005-12-13 17:05:00 | 显示全部楼层
嘿嘿,应该就是文件格式的问题,用file查看一下生成的文件属性吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表