Unable to handle kernel NULL pointer dereference at virtual address 00000008

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Unable to handle kernel NULL pointer dereference at virtual address 00000008

1,728 Views
santhosh2
Contributor IV

Hi,

I'm trying to access the register memeory address but Iam getting the error when i try to read IORESOURCE_MEM

Below is the code snippet

   res = platform_get_resource(pdev, IORESOURCE_MEM, 0); // get resource info
   remap_size = res->end - res->start + 1;               // get resource memory size
   base_addr = ioremap(res->start, remap_size);  

Kernel boot log

------------------------------------------------------------------------------------------------------------------

[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
[    0.000000]       .text : 0xffff000008080000 - 0xffff000008e60000   ( 14208 KB)
[    0.000000]     .rodata : 0xffff000008e60000 - 0xffff0000094c0000   (  6528 KB)
[    0.000000]       .init : 0xffff0000094c0000 - 0xffff000009600000   (  1280 KB)
[    0.000000]       .data : 0xffff000009600000 - 0xffff0000097ad200   (  1717 KB)
[    0.000000]        .bss : 0xffff0000097ad200 - 0xffff00000981d1c0   (   448 KB)
[    0.000000]     fixed   : 0xffff7dfffe7f9000 - 0xffff7dfffec00000   (  4124 KB)
[    0.000000]     PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)
[    0.000000]               0xffff7e0000000000 - 0xffff7e0002000000   (    32 MB actual)
[    0.000000]     memory  : 0xffff800000000000 - 0xffff800080000000   (  2048 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]     RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000]     Tasks RCU enabled.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: no VLPI support, no direct LPI support
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] i.MX8MM clock driver init done

------------------------------------------------------------------------------------------------------------------

Error log:

------------------------------------------------------------------------------------------------------------------

 Unable to handle kernel NULL pointer dereference at virtual address 00000008
[   21.901630] Mem abort info:
[   21.904464]   Exception class = DABT (current EL), IL = 32 bits
[   21.910426]   SET = 0, FnV = 0
[   21.913510]   EA = 0, S1PTW = 0
[   21.916689] Data abort info:
[   21.919606]   ISV = 0, ISS = 0x00000006
[   21.923473]   CM = 0, WnR = 0
[   21.926452] user pgtable: 4k pages, 48-bit VAs, pgd = ffff800074970000
[   21.933009] [0000000000000008] *pgd=00000000b4a6e003, *pud=00000000bbf8f003, *pmd=0000000000000000
[   21.942010] Internal error: Oops: 96000006 [#1] PREEMPT SMP
[   21.947584] Modules linked in: imx8mmini_gpio_platformdevice(O+) 8021q garp stp mrp crc32_ce crct10dif_ce qca9377(O) galcore(O)
[   21.959082] CPU: 0 PID: 4008 Comm: insmod Tainted: G           O    4.14.78-imx_4.14.78_1.0.0_ga+g94da7bd #1
[   21.968908] Hardware name: FSL i.MX8MM EVK board (DT)
[   21.973961] task: ffff80007bc8ec00 task.stack: ffff000019580000
[   21.979889] PC is at gpiodriver_probe+0x2c/0x128 [imx8mmini_gpio_platformdevice]
[   21.987286] LR is at gpiodriver_probe+0x28/0x128 [imx8mmini_gpio_platformdevice]
[   21.994681] pc : [<ffff00000145303c>] lr : [<ffff000001453038>] pstate: 40000145
[   22.002076] sp : ffff000019583ad0
[   22.005390] x29: ffff000019583ad0 x28: ffff000009dc5000
[   22.010703] x27: ffff0000014554d0 x26: 00000000014000c0
[   22.016017] x25: 0000000000000124 x24: 000000000000000b
[   22.021332] x23: 0000000000000000 x22: ffff000001455388
[   22.026649] x21: ffff000001455360 x20: ffff000001455030
[   22.031965] x19: ffff000001455780 x18: 0000000000000010
[   22.037279] x17: 000000000042b2c8 x16: ffff00000814d028
[   22.042594] x15: ffffffffffffffff x14: ffff0000897bb55f
[   22.047907] x13: ffff0000097bb56d x12: ffff000009608df8
[   22.053222] x11: ffff00000862b980 x10: ffff0000195837f0
[   22.058536] x9 : 0000000000000006 x8 : 00000000000d8d20
[   22.063851] x7 : 0000000000000000 x6 : 00000000000002b3
[   22.069166] x5 : 0000000000000000 x4 : 0000000000000000
[   22.074479] x3 : 0000000000000000 x2 : 0000000000000001
[   22.079793] x1 : 0000000000000200 x0 : 0000000000000000
[   22.085110] Process insmod (pid: 4008, stack limit = 0xffff000019580000)
[   22.091811] Call trace:
[   22.094259] Exception stack(0xffff000019583990 to 0xffff000019583ad0)
[   22.100701] 3980:                                   0000000000000000 0000000000000200
[   22.108535] 39a0: 0000000000000001 0000000000000000 0000000000000000 0000000000000000
[   22.116364] 39c0: 00000000000002b3 0000000000000000 00000000000d8d20 0000000000000006
[   22.124194] 39e0: ffff0000195837f0 ffff00000862b980 ffff000009608df8 ffff0000097bb56d
[   22.132025] 3a00: ffff0000897bb55f ffffffffffffffff ffff00000814d028 000000000042b2c8
[   22.139856] 3a20: 0000000000000010 ffff000001455780 ffff000001455030 ffff000001455360
[   22.147689] 3a40: ffff000001455388 0000000000000000 000000000000000b 0000000000000124
[   22.155531] 3a60: 00000000014000c0 ffff0000014554d0 ffff000009dc5000 ffff000019583ad0
[   22.163365] 3a80: ffff000001453038 ffff000019583ad0 ffff00000145303c 0000000040000145
[   22.171195] 3aa0: 0000000000000000 ffff80007bc8ec00 0000ffffffffffff ffff80007bb29018
[   22.179025] 3ac0: ffff000019583ad0 ffff00000145303c
[   22.183912] [<ffff00000145303c>] gpiodriver_probe+0x2c/0x128 [imx8mmini_gpio_platformdevice]
[   22.192357] [<ffff0000086d4db0>] platform_drv_probe+0x58/0xb8
[   22.198107] [<ffff0000086d3190>] driver_probe_device+0x210/0x2d0
[   22.204116] [<ffff0000086d330c>] __driver_attach+0xbc/0xc0
[   22.209604] [<ffff0000086d12ec>] bus_for_each_dev+0x4c/0x98
[   22.215176] [<ffff0000086d2aa8>] driver_attach+0x20/0x28                               
[   22.220490] [<ffff0000086d25f8>] bus_add_driver+0x1b8/0x228                            
[   22.226067] [<ffff0000086d3ca8>] driver_register+0x60/0xf8                             
[   22.231555] [<ffff0000086d4d00>] __platform_driver_register+0x40/0x48                  
[   22.238001] [<ffff00000145802c>] gpio_device_init+0x2c/0x1000 [imx8mmini_gpio_platformdevice]
[   22.246530] [<ffff000008083c90>] do_one_initcall+0x38/0x128
[   22.252105] [<ffff00000814da98>] do_init_module+0x58/0x1b0
[   22.257593] [<ffff00000814c6dc>] load_module+0x1a74/0x21c8
[   22.263080] [<ffff00000814d0d0>] SyS_finit_module+0xa8/0xc0
[   22.268654] Exception stack(0xffff000019583ec0 to 0xffff000019584000)
[   22.275094] 3ec0: 0000000000000003 0000000000419fd0 0000000000000000 0000000000000003
[   22.282924] 3ee0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   22.290759] 3f00: 0000000000000111 0000ffffbe020700 0101010101010101 0000000000000000
[   22.298588] 3f20: 0000000000000001 000000000000270f 0000ffffbe0332c8 0000ffffbe025de0
[   22.306422] 3f40: 0000ffffbe0ec400 000000000042b2c8 000000000000036c 0000000034b0a740
[   22.314251] 3f60: 0000000000419fd0 0000000000000000 0000000000000000 0000000000000000
[   22.322084] 3f80: 0000ffffc7209eb0 0000000000000000 0000000000000000 0000000000000000
[   22.329915] 3fa0: 0000000000000000 0000ffffc7209250 0000000000410d88 0000ffffc7209250
[   22.337745] 3fc0: 0000ffffbe0ec424 0000000080000000 0000000000000003 0000000000000111
[   22.345575] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   22.353406] [<ffff000008083b18>] __sys_trace_return+0x0/0x4
[   22.358983] Code: 52804001 aa1403e0 95ca059d 58000693 (f9400401)
[   22.365081] ---[ end trace 52116b2cc35197e4 ]---
Segmentation fault

Message from syslogd@imx8mmevk at Mon Aug 19 12:55:05 2019 ...
imx8mmevk kernel: [   21.942010] Internal error: Oops: 96000006 [#1] PREEMPT SMP

Message from syslogd@imx8mmevk at Mon Aug 19 12:55:05 2019 ...
imx8mmevk kernel: [   22.085110] Process insmod (pid: 4008, stack limit = 0xffff000019580000)

Message from syslogd@imx8mmevk at Mon Aug 19 12:55:05 2019 ...
imx8mmevk kernel: [   22.358983] Code: 52804001 aa1403e0 95ca059d 58000693 (f9400401)
root@imx8mmevk:~#

------------------------------------------------------------------------------------------------------------------

Whats the issue... I am not able to understand

Regards

Santhosh

0 Kudos
1 Reply

1,377 Views
b36401
NXP Employee
NXP Employee

Please note that some registers are not available for access in user mode. You need to write a driver that will access them.

0 Kudos