URN Logo
UNIX Resources » Linux » China Linux Forum » Linux内核技术 » 42 » Division by zero in kernel. caused by kfree
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  TI专版
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
Division by zero in kernel. caused by kfree
Author: gogoer0671    Posted: 2006-10-13 11:55    Length: 2,342 byte(s)
[Original] [Print] [Top]

错误信息如下:

ring buffer addr is 0x10460000
Division by zero in kernel.
Function entered at [<104868d0>] from [<1056fca4>]
Function entered at [<104a7378>] from [<149dbe20>]
r6 = 13429660 r5 = 00000000 r4 = 12A4F884
Function entered at [<149dbd64>] from [<149d3368>]
r5 = 13FA1BA0 r4 = 12A4F174
Function entered at [<149d32f0>] from [<104b0cd8>]
r6 = 13FFC2E0 r5 = 13429660 r4 = 13FA1BA0
Function entered at [<104b0c50>] from [<104af954>]
r7 = 00000001 r6 = 139A0520 r5 = 00000000 r4 = 13FA1BA0
Function entered at [<104af8d8>] from [<10490838>]
r6 = 00000005 r5 = 00001FFF r4 = 139A0520
Function entered at [<104907b8>] from [<10490fb4>]
r7 = 00000002 r6 = 12C46000 r5 = 12C46000 r4 = 139922A0
Function entered at [<10490ed0>] from [<10496fb4>]
Function entered at [<10496ef0>] from [<10485410>]
r8 = 12C47F04 r7 = 12C47FB0 r6 = 13960AB8 r5 = 00000002
r4 = 12C46000
Function entered at [<1048513c>] from [<1048153c>]

0:
kernel是2.4.26 是打过uClinux 补丁的 , kernel的page offset是 0x10000000 ringbuffer是driver通过kmalloc 分配的

1:
stack里最后两个函数
Function entered at [<104a7378>] 这个是kfree 地址
Function entered at [<104868d0>] 这个是打出“Division by zero in kernel.”的函数地址 应该是处理异常的函数地址

2:
虽然有这个 division by zero 错误 但是kernel并没有panic ,而且 0x10460000 这个内存确实释放了 (下次再调用kmalloc 还是得到这个地址)

3:
如果kmalloc 分配的0x10460000 内存没有被应用程序使用则没有这个错误 ,一旦这段内存被应用程序使用过 则出现这个错误。


纳闷为什么 会出现 Division by zero in kernel. 在kfree的时候 , 好像很不好跟 , 是不是 kfree的内存还在被其他的程序或者 kernel path 使用的内存呢

[Original] [Print] [Top]
« Previous thread
转载: 把linux kernel 2.4 上的driver 移植到 2.6 kernel 注意
Linux内核技术
42
Next thread »
有没有人知道up()能不能用在中断
     

Copyright © 2007~2009 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
webmaster: webmaster@unixresources.net
This page created on 2009-09-07 16:26:59, cost 0.0182089805603 ms.