• Unable to handle kernel NULL pointer dereference at virtual address 00000000


    # insmod rgb_led.ko
    match successed
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = 88768000
    [00000000] *pgd=88741831, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    Modules linked in: rgb_led(O+)
    CPU: 0 PID: 114 Comm: insmod Tainted: G O 4.1.15+ #4
    Hardware name: Freescale i.MX6 Ultralite (Device Tree)
    task: 88679c80 ti: 8806c000 task.ti: 8806c000
    PC is at led_probe+0x1d8/0x554 [rgb_led]
    LR is at of_get_address+0x1c/0x138
    pc : [<7f00038c>] lr : [<804eeefc>] psr: a0060013
    sp : 8806dd80 ip : 00000000 fp : 778e80dc
    r10: 00000001 r9 : 88717f40 r8 : 00000007
    r7 : fffffdfb r6 : f004021c r5 : 8096a504 r4 : 7f000d18
    r3 : 00000000 r2 : ffffffea r1 : 00000004 r0 : 00000000
    Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 10c5387d Table: 8876806a DAC: 00000015
    Process insmod (pid: 114, stack limit = 0x8806c210)
    Stack: (0x8806dd80 to 0x8806e000)
    dd80: 88101c10 7f000b7c 00000000 80a10d1c 88101c10 7f000b7c fffffdfb 8034760c
    dda0: 80a10d1c 88101c10 7f000b7c 00000000 00000007 80345ed4 88101c10 7f000b7c
    ddc0: 88101c44 8098c108 00000000 803460e8 00000000 7f000b7c 8034605c 8034444c
    dde0: 8803095c 880f7f34 7f000b7c 88557b80 00000000 80345688 7f000ac0 8096d820
    de00: 884c8100 7f000b7c 8096d820 884c8100 7f003000 803466d4 8096d820 8096d820
    de20: 884c8100 7f003010 8096d820 80009704 00000000 8040003f 88001f00 800e4b40
    de40: 00000001 88717380 8040003e 8bc644e0 8bb57000 00000000 00000001 8040003e
    de60: 00000001 88001f00 80969260 88001f00 000000d0 8096a6ec 778e80dc 800e61cc
    de80: 7f000bc0 7f000bc0 884c80c0 00000001 7f000c08 00000001 778e80dc 80684b4c
    dea0: 00000001 7f000c08 8806df58 7f000bc0 88717f48 80095e48 7f000bcc 00007fff
    dec0: 80093440 800efed8 800935c4 00c44008 7f000d08 a0a679ac 7f000bcc 00000000
    dee0: a0a66000 00002587 009c11c1 00000000 0000000f 00000000 00000000 00000000
    df00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    df20: 00000000 00000000 00000000 00000000 00000018 00000000 00000003 00c44008
    df40: 0000017b 8000f684 8806c000 00000000 00000000 800966bc a0a66000 00002587
    df60: a0a674fc a0a673ae a0a682ac 00000dac 00000fdc 00000000 00000000 00000000
    df80: 0000001e 0000001f 00000016 00000013 00000011 00000000 00c44008 ffffffff
    dfa0: 7ea6ef45 8000f500 00c44008 ffffffff 00000003 00c44008 00000000 7ea6ef45
    dfc0: 00c44008 ffffffff 7ea6ef45 0000017b 00000000 00000000 76fb6000 00000000
    dfe0: 7ea6ec98 7ea6ec88 00026cb8 76f0fad2 80060030 00000003 d7f7dff3 e9feee7f
    [<7f00038c>] (led_probe [rgb_led]) from [<8034760c>] (platform_drv_probe+0x44/0xa4)
    [<8034760c>] (platform_drv_probe) from [<80345ed4>] (driver_probe_device+0x16c/0x2b0)
    [<80345ed4>] (driver_probe_device) from [<803460e8>] (__driver_attach+0x8c/0x90)
    [<803460e8>] (__driver_attach) from [<8034444c>] (bus_for_each_dev+0x6c/0xa0)
    [<8034444c>] (bus_for_each_dev) from [<80345688>] (bus_add_driver+0x140/0x1ec)
    [<80345688>] (bus_add_driver) from [<803466d4>] (driver_register+0x78/0xf8)
    [<803466d4>] (driver_register) from [<7f003010>] (led_platform_driver_init+0x10/0x30 [rgb_led])
    [<7f003010>] (led_platform_driver_init [rgb_led]) from [<80009704>] (do_one_initcall+0x80/0x1d8)
    [<80009704>] (do_one_initcall) from [<80684b4c>] (do_init_module+0x58/0x1a8)
    [<80684b4c>] (do_init_module) from [<80095e48>] (load_module+0x165c/0x1d48)
    [<80095e48>] (load_module) from [<800966bc>] (SyS_finit_module+0x64/0x74)
    [<800966bc>] (SyS_finit_module) from [<8000f500>] (ret_fast_syscall+0x0/0x3c)
    Code: e5940018 eb53bcb8 e594301c e584002c (e5936000)
    ---[ end trace 13e21d4f75523d46 ]---

    此bug发生情况:弄开发板的rgb灯的驱动,加载驱动的时候,报错。看内容是非法指针的使用,才导致系统出错。

    首先看红色部分,打印了match successed,此为led_probe函数的开头的printk,接着看红色部分 PC is at led_probe,错误发生在led_probe中,检查后,发现某个结构体指针没有赋值就用了,所以报错了。

  • 相关阅读:
    SlipHover,能感知鼠标方向的图片遮罩效果jQuery插件
    jQuery插件开发精品教程,让你的jQuery提升一个台阶
    HTML5打造的炫酷本地音乐播放器-喵喵Player
    无论何时,记得做好代码的清理工作
    statcounter统计的浏览器市场占有率
    开大你的音响,感受HTML5 Audio API带来的视听盛宴
    requestAnimationFrame,Web中写动画的另一种选择
    好的用户界面-界面设计的一些技巧
    Windows上帝模式,上帝应该就是这样使用Windows的
    JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
  • 原文地址:https://www.cnblogs.com/Rainingday/p/13942775.html
Copyright © 2020-2023  润新知