zoukankan      html  css  js  c++  java
  • 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中,检查后,发现某个结构体指针没有赋值就用了,所以报错了。

  • 相关阅读:
    mysq 日期相减
    说说时间观与时间管理——北漂18年(71)
    ionic之切换开关
    ionic之单选框
    SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE locks在RR模式下可以看到最新的记录
    14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
    14.5.2.2 autocommit, Commit, and Rollback
    14.5.2 事务隔离级别
    对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间
    mysql explain 解释
  • 原文地址:https://www.cnblogs.com/Rainingday/p/13942775.html
Copyright © 2011-2022 走看看