免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: Blaider

CPU 0 Unable to handle kernel paging request at virtual address 00000000000000a0 [复制链接]

论坛徽章:
0
发表于 2013-02-26 10:23 |显示全部楼层
回复 7# 瀚海书香


CPU 0 Unable to handle kernel paging request at virtual address 00000028, epc == c006b70c, ra == c006b708
Oops[#1]:
Cpu 0
$ 0   : 00000000 10003c00 0000000f 00000001
$ 4   : 00000000 00001f8e 00001f8e 8050ced1
$ 8   : 00001f8e 00000034 00001f8e 80670000
$12   : 80670000 80670000 fffef800 ffffffff
$16   : c006e218 10003c01 8012ee0c c006b654
$20   : 80130000 00200200 00000001 80550000
$24   : ffffffdf 80361fe4                  
$28   : 8714c000 8714dbe8 806740ec c006b708
Hi    : 000000fa
Lo    : e1468c00
epc   : c006b70c wm97xx_acq_timer+0xb8/0x3b4 [ac97_plugin_wm97xx]
    Not tainted
ra    : c006b708 wm97xx_acq_timer+0xb4/0x3b4 [ac97_plugin_wm97xx]
Status: 10003c03    KERNEL EXL IE
Cause : 00808008
BadVA : 00000028
PrId  : 04030202 (Au1250)
Modules linked in: ac97_plugin_wm97xx(+)
Process insmod (pid: 879, threadinfo=8714c000, task=87144098, tls=00000000)
Stack : 000225c1 00001f7f 00001f7f 8050ced1 2e5e0e8d 0000000b 80671a80 8714dc38
        00000100 c006b654 805a0000 00200200 00000001 80550000 8013a758 8714dd84
        8010a62c 8010a650 fffffff1 87082274 8714dc38 8714dc38 00000040 00000100
        80671938 00000004 0000000a 80670000 80134c10 ffff7fff 8714de0c 00000039
        80160da8 80160d88 10003c01 80143870 10003c00 00000000 806714d1 3b9aca00
        ...
Call Trace:
[<c006b70c>] wm97xx_acq_timer+0xb8/0x3b4 [ac97_plugin_wm97xx]
[<8013a758>] run_timer_softirq+0x188/0x234
[<80134c10>] __do_softirq+0xb0/0x15c
[<80134d50>] do_softirq+0x94/0x9c
[<80100604>] ret_from_irq+0x0/0x4
[<8012ed44>] vprintk+0x368/0x430
[<8012ee30>] printk+0x24/0x30
[<c0071128>] wm97xx_ts_init_module+0x128/0x258 [ac97_plugin_wm97xx]
[<8010984c>] do_one_initcall+0x3c/0x1f4
[<8015d6a0>] sys_init_module+0xb0/0x1b8
[<80102390>] stack_done+0x20/0x3c
按照你所说的,我的这个应该在wm97xx_acq_timer的0xb8/0x3b4 处出现了错误,对吗?

   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-02-26 10:28 |显示全部楼层
回复 11# chouxiaohuai
从第一行,其实就可以看出,基本上应该是非法操作指针所致。看一下你的代码那里未初始化,或者 free 之后仍然引用的。


   

论坛徽章:
0
发表于 2013-02-26 11:46 |显示全部楼层
回复 7# 瀚海书香


    高了这么久kernel,都不怎么会定位。mark 下。

论坛徽章:
0
发表于 2013-02-26 15:43 |显示全部楼层
回复 12# Godbach

static  inline int pendown (wm97xx_ts_t *ts)
  {
    printk("ddddddddddd\n");
     return ts->codec->codec_read(ts->codec, AC97_WM97XX_DIGITISER_RD) & WM97XX_PEN_DOWN;
}

static void wm97xx_acq_timer(unsigned long data)
{
   wm97xx_ts_t *ts = (wm97xx_ts_t*)data;
        unsigned long flags;
         static long x, y, x0, y0;
        static int p0=0, penup=0; //pendown flag
         TS_EVENT event;

         spin_lock_irqsave(&ts->lock, flags);
         printk("0000000000000\n");
        /* are we still registered ? */
         if (!ts->is_registered) {
                spin_unlock_irqrestore(&ts->lock, flags);
         //      return; /* we better stop then */
        }
        printk("1111111111111\n");

          //by xhhe.
        /* read coordinates if pen is down */
        //if (!pendown(ts))
         //      goto acq_exit;
         if (!pendown(ts))
        { //pen is not down now.
                printk("2222222222222222222");
                 if(penup == 0xFF) //ALready has a pne up event;
                 {
                 printk("33333333333333");
                goto acq_exit;
                 }
               if(penup < 2)
                 {//Waite 2 timer to create a steady pen UP event.
                         penup++;
                         goto acq_exit;
                }
                 p0 |= 1; //penup should equal 2.
。。。。。。。。。。。。。。
我查了好久,觉得是 if (!pendown(ts))这个函数中,这句return ts->codec->codec_read(ts->codec, AC97_WM97XX_DIGITISER_RD) & WM97XX_PEN_DOWN有问题,但是就是不知道什么问题。求指点一二。。。




   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-02-26 22:09 |显示全部楼层
回复 14# chouxiaohuai
对于你怀疑的地方,可以自己加调试信息


   

论坛徽章:
0
发表于 2013-02-27 08:40 |显示全部楼层
回复 15# Godbach
打印信息已经加了,可以确定是ts->codec->codec_read(xx,yyy)这个有问题,一直改不正确。


   

论坛徽章:
0
发表于 2013-04-03 13:55 |显示全部楼层
版主好啊,我遇到了和这个贴类似的问题,但是按照版主的提示,还是无法找到问题点,请版主指导指导啊!
启动信息:
CPU 0 Unable to handle kernel paging request at virtual address c515ad98, epc == c515ad99, ra == c01fe0a8
Oops[#1]:
Cpu 0
$ 0   : 00000000 1000fc01 00000000 c0210000
$ 4   : c024c100 00000000 00000001 c0266910
$ 8   : 00000001 00000000 00000000 00000000
$12   : 00000000 c0214868 0018ef94 00000000
$16   : 00000000 00000000 00000000 00000000
$20   : 00000000 00000000 00000000 00000000
$24   : c02724d0 00000000                  
$28   : c0268000 c0269e88 00000000 c01fe0a8
Acx   : 00000000
Hi    : 0098963a
Lo    : 3adf4500
epc   : c515ad99     Not tainted
ra    : c01fe0a8 Status: 1000fc03    KERNEL EXL IE
Cause : 10000008
BadVA : c515ad98
PrId  : 00019224 (MIPS 4KSd)
Modules linked in:
Process swapper (pid: 1, threadinfo=c0268000, task=c02668e8, tls=00000000)
Stack : 67617064 5f007365 74736b5f 62617472 00000001 725f6567 70646165 73656761
        61706d00 655f6567 695f646e 65725f6f 6d006461 65676170 646e655f 5f6f695f
        74697277 706d0065 5f656761 5f6f6962 6d627573 6d007469 65676170 6c6c615f
        6400636f 706d5f6f 00000000 00000000 00000000 00000000 00000000 00000000
        00000000 c0005bac 6972706f 00632e6f 5f746573 6b736174 00000000 c0003d28
        ...
Call Trace:[<c0005bac>][<c0003d28>][<c01ef958>][<c0005b9c>]

Code: (Bad address in epc)

Kernel panic - not syncing: Attempted to kill init!

论坛徽章:
0
发表于 2013-04-07 09:23 |显示全部楼层
上面的报错信息,更详细地打出来,为:
CPU 0 Unable to handle kernel paging request at virtual address 1feb8d23, epc == c00f59b4, ra == c00f6958
Oops[#1]:
Cpu 0
$ 0   : 00000000 1000fc01 00000000 fffffffe
$ 4   : 1feb8d23 ffffffff 1feb8d23 ffffffff
$ 8   : 0000000a 0000007a 00000074 c0200000
$12   : 00000001 00000073 c00f6e20 c01b2164
$16   : c01fe634 1feb8d23 ffffffff c01fe648
$20   : ffffffff 00000014 c0204c80 c01fe634
$24   : c01b0000 c0285e30                  
$28   : c0284000 c0285cc0 ffffffff c00f6958
Acx   : 000000ff
Hi    : fffffff8
Lo    : 04eb4000
epc   : c00f59b4 strnlen+0xc/0x3c     Not tainted
ra    : c00f6958 string+0x44/0xf8
Status: 1000fc03    KERNEL EXL IE
Cause : 00000008
BadVA : 1feb8d23
PrId  : 00019224 (MIPS 4KSd)
Modules linked in:
Process swapper (pid: 1, threadinfo=c0284000, task=c02828e8, tls=00000000)
Stack : 00000000 c0235bc4 00000000 ffffffff c01fe634 00000000 c01fe648 c0285e34
        c00f6e4c c0235bc4 c0285d58 00000008 c01fe748 c00f113c ffffffff 00000000
        c027bbe8 00000000 c0275a00 c00b9860 c027bbe8 c027bbe8 c01e491c c01fe6e0
        c00899f0 00000000 c027bb38 c0235bc4 c027bb58 c02a1800 c0275a00 c0089b04
        c0230000 c00b9798 c027bbe8 c0285d88 00000000 c027bb90 c027bbe8 c0285d98
        ...
Call Trace:
[<c00f59b4>] strnlen+0xc/0x3c
[<c00f6958>] string+0x44/0xf8
[<c00f6e4c>] vsnprintf+0x440/0x6c4
[<c0113348>] dev_set_name+0x24/0x34
[<c011711c>] platform_device_add+0x60/0x1cc
[<c01173a0>] platform_add_devices+0x34/0xb0
[<c020ba0c>] kernel_init+0xb4/0x30c
[<c0005bac>] kernel_thread_helper+0x10/0x18


Code: 00803021  10a0000b  24a3ffff <80820000> 10400008  00000000  2405ffff  2463ffff  10650004
Kernel panic - not syncing: Attempted to kill init!

从call trace中,看出,出错的地方在strlen函数,但是这个函数是内核的代码包含的,这样也出错,是不是由其他的问题引起的呢?请版主和各位指导指导啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP