lists.zerezo.com



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SoC camera crashes when host is not module



I am writing driver for i.MX CSI interface... And while I was loading my
driver with insmod everything was OK, but when I compiled it into the
kernel it crashed. I believe that it is a bug in the soc_camera. Seems
like device_register is being used without kref initialization.

[42949374.020000] WARNING: at lib/kref.c:43 kref_get+0x48/0x50()
[42949374.020000] Modules linked in:
[42949374.030000] [<c001c908>] (dump_stack+0x0/0x14) from [<c002d90c>] (warn_on_slowpath+0x4c/0x68) [42949374.040000] [<c002d8c0>] (warn_on_slowpath+0x0/0x68) from [<c00c5134>] (kref_get+0x48/0x50)
[42949374.050000]  r6:c01ce6dc r5:c01ce55c r4:c01ce6e0
[42949374.050000] [<c00c50ec>] (kref_get+0x0/0x50) from [<c00c4870>] (kobject_get+0x18/0x20)
[42949374.060000]  r4:c01ce6dc
[42949374.060000] [<c00c4858>] (kobject_get+0x0/0x20) from [<c00c4950>] (kobject_add_internal+0x64/0x1f8)
[42949374.070000]  r4:c01ce55c
[42949374.070000] [<c00c48ec>] (kobject_add_internal+0x0/0x1f8) from [<c00c4b94>] (kobject_add_varg+0x44/0x54) [42949374.080000] r8:c01ce4f4 r7:00000000 r6:c01ce6dc r5:c01ce55c r4:00000000 [42949374.090000] [<c00c4b50>] (kobject_add_varg+0x0/0x54) from [<c00c4eac>] (kobject_add+0x40/0x68)
[42949374.100000]  r6:c01ce580 r5:c01c8aec r4:c01ce4f4
[42949374.110000] [<c00c4e6c>] (kobject_add+0x0/0x68) from [<c00e292c>] (device_add+0x7c/0x4f4)
[42949374.110000]  r3:c01ce580 r2:c019f4dc
[42949374.120000] [<c00e28b0>] (device_add+0x0/0x4f4) from [<c00e2dc0>] (device_register+0x1c/0x20) [42949374.130000] [<c00e2da4>] (device_register+0x0/0x20) from [<c00f74f0>] (soc_camera_host_register+0xc0/0x19c)
[42949374.140000]  r4:c01ce4ec
[42949374.140000] [<c00f7430>] (soc_camera_host_register+0x0/0x19c) from [<c0014054>] (imx_camera_probe+0x260/0x380) [42949374.150000] r8:00000006 r7:00000000 r6:c01c8778 r5:c01c8aec r4:c3c96cfc [42949374.160000] [<c0013df4>] (imx_camera_probe+0x0/0x380) from [<c00e573c>] (platform_drv_probe+0x20/0x24) [42949374.170000] [<c00e571c>] (platform_drv_probe+0x0/0x24) from [<c00e4a2c>] (driver_probe_device+0xb0/0x1b4) [42949374.180000] [<c00e497c>] (driver_probe_device+0x0/0x1b4) from [<c00e4b98>] (__driver_attach+0x68/0x6c) [42949374.190000] r8:c01cdea4 r7:c00e4b30 r6:c01ce4b0 r5:c01c8828 r4:c01c8780 [42949374.200000] [<c00e4b30>] (__driver_attach+0x0/0x6c) from [<c00e4124>] (bus_for_each_dev+0x5c/0x88)
[42949374.200000]  r6:c01ce4b0 r5:c3c0ded0 r4:00000000
[42949374.210000] [<c00e40c8>] (bus_for_each_dev+0x0/0x88) from [<c00e488c>] (driver_attach+0x20/0x28)
[42949374.220000]  r7:c0011874 r6:c01ce4b0 r5:c01ce4b0 r4:c3c96be8
[42949374.230000] [<c00e486c>] (driver_attach+0x0/0x28) from [<c00e4568>] (bus_add_driver+0xa8/0x1dc) [42949374.230000] [<c00e44c0>] (bus_add_driver+0x0/0x1dc) from [<c00e4d34>] (driver_register+0x54/0x130) [42949374.240000] [<c00e4ce0>] (driver_register+0x0/0x130) from [<c00e59c4>] (platform_driver_register+0x6c/0x88) [42949374.250000] r8:c3c0c000 r7:c0011874 r6:00000000 r5:00000000 r4:c0016404 [42949374.260000] [<c00e5958>] (platform_driver_register+0x0/0x88) from [<c0011888>] (imx_camera_init+0x14/0x1c) [42949374.270000] [<c0011874>] (imx_camera_init+0x0/0x1c) from [<c00087ac>] (kernel_init+0x78/0x290) [42949374.280000] [<c0008734>] (kernel_init+0x0/0x290) from [<c0030dfc>] (do_exit+0x0/0x614)
[42949374.290000] ---[ end trace 362b35ef15250fa4 ]---
[42949374.290000] kobject: 'camera_host0' (c01ce55c): kobject_add_internal: parent: '<NULL>', set: 'devices' [42949374.300000] Unable to handle kernel NULL pointer dereference at virtual address 00000020
[42949374.310000] pgd = c0004000
[42949374.320000] [00000020] *pgd=00000000
[42949374.320000] Internal error: Oops: 5 [#1]
[42949374.320000] Modules linked in:
[42949374.320000] CPU: 0    Tainted: G        W  (2.6.26-rc4 #24)
[42949374.320000] PC is at sysfs_addrm_start+0x34/0x9c
[42949374.320000] LR is at sysfs_addrm_start+0x28/0x9c
[42949374.320000] pc : [<c00a4ffc>]    lr : [<c00a4ff0>]    psr: 60000013
[42949374.320000] sp : c3c0dcd8  ip : c3c0dcd8  fp : c3c0dcec
[42949374.320000] r10: c01c8780  r9 : c01ce55c  r8 : c3c0dd24
[42949374.320000] r7 : 00000000 r6 : c01ce55c r5 : c3c0dcf0 r4 : 00000000 [42949374.320000] r3 : 00000000 r2 : c01d4220 r1 : ffffffd0 r0 : c3c03004 [42949374.320000] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[42949374.320000] Control: 0000317f  Table: 08004000  DAC: 00000017
[42949374.320000] Process swapper (pid: 1, stack limit = 0xc3c0c260)
[42949374.320000] Stack: (0xc3c0dcd8 to 0xc3c0e000)
[42949374.320000] dcc0: c3c0dcf0 c3c96d94 [42949374.320000] dce0: c3c0dd20 c3c0dcf0 c00a5580 c00a4fd8 00000000 00000000 00000000 00000000 [42949374.320000] dd00: c01ce55c c01ce55c c01ce6dc 00000000 c01ce6dc c3c0dd38 c3c0dd24 c00a561c [42949374.320000] dd20: c00a5544 c00c49cc c01ce55c c3c0dd64 c3c0dd3c c00c49e0 c00a55f4 00000000 [42949374.320000] dd40: c3c07394 00000000 c01ce55c c01ce6dc 00000000 c01ce4f4 c3c0dd80 c3c0dd68 [42949374.320000] dd60: c00c4b94 c00c48fc c01ce4f4 c01c8aec c01ce580 c3c0dd94 c3c0dd84 c00c4eac [42949374.320000] dd80: c00c4b60 c3c0dd9c c3c0ddd0 c3c0dda0 c00e292c c00c4e80 c019f4dc c01ce580 [42949374.320000] dda0: c01c8780 c3c0ddd0 c01ce4f4 c01c8aec c01c8778 00000000 c01ce4f4 c4850000 [42949374.320000] ddc0: c01c8780 c3c0dde4 c3c0ddd4 c00e2dc0 c00e28c0 c01ce4ec c3c0de08 c3c0dde8 [42949374.320000] dde0: c00f74f0 c00e2db4 c3c96cfc c01c8aec c01c8778 00000000 00000006 c3c0de7c [42949374.320000] de00: c3c0de0c c0014054 c00f7440 c00c79e4 c3c0de44 c3c96ccc c3c0de40 c3c0de28 [42949374.320000] de20: c3c0de44 00000000 c3c96ccc c3c23418 e000928c c4850000 c4850008 c00a5fbc [42949374.320000] de40: c00a5254 c3c23418 00000000 00000000 00000001 c01c8780 c01ce4b0 c01ce4b0 [42949374.320000] de60: c00e4b30 c01d6350 00000000 00000000 c3c0de8c c3c0de80 c00e573c c0013e04 [42949374.320000] de80: c3c0deb0 c3c0de90 c00e4a2c c00e572c c01c8780 c01c8828 c01ce4b0 c00e4b30 [42949374.320000] dea0: c01cdea4 c3c0decc c3c0deb4 c00e4b98 c00e498c 00000000 c3c0ded0 c01ce4b0 [42949374.320000] dec0: c3c0def8 c3c0ded0 c00e4124 c00e4b40 c3c07818 c3c07818 c01c87c8 c3c96be8 [42949374.320000] dee0: c01ce4b0 c01ce4b0 c0011874 c3c0df08 c3c0defc c00e488c c00e40d8 c3c0df34 [42949374.320000] df00: c3c0df0c c00e4568 c00e487c c01a179c c0016404 c01ce4b0 00000000 c0011874 [42949374.320000] df20: c3c0c000 c0015168 c3c0df58 c3c0df38 c00e4d34 c00e44d0 c0016404 00000000 [42949374.320000] df40: 00000000 c0011874 c3c0c000 c3c0df68 c3c0df5c c00e59c4 c00e4cf0 c3c0df78 [42949374.320000] df60: c3c0df6c c0011888 c00e5968 c3c0dff4 c3c0df7c c00087ac c0011884 bee40f34 [42949374.320000] df80: c3c0dfa4 c3c0c000 00000000 c3c0df00 c3c0df9c c002af78 c002ac3c 00000000 [42949374.320000] dfa0: 00000000 c3c0dfb0 c0018aa4 c002af68 00000000 00000000 c0008734 c0030dfc [42949374.320000] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [42949374.320000] dfe0: 00000000 00000000 00000000 c3c0dff8 c0030dfc c0008744 00000000 02000000
[42949374.320000] Backtrace:
[42949374.320000] [<c00a4fc8>] (sysfs_addrm_start+0x0/0x9c) from [<c00a5580>] (create_dir+0x4c/0xb0)
[42949374.320000]  r5:c3c96d94 r4:c3c0dcf0
[42949374.320000] [<c00a5534>] (create_dir+0x0/0xb0) from [<c00a561c>] (sysfs_create_dir+0x38/0x4c) [42949374.320000] r8:c01ce6dc r7:00000000 r6:c01ce6dc r5:c01ce55c r4:c01ce55c [42949374.320000] [<c00a55e4>] (sysfs_create_dir+0x0/0x4c) from [<c00c49e0>] (kobject_add_internal+0xf4/0x1f8)
[42949374.320000]  r4:c01ce55c
[42949374.320000] [<c00c48ec>] (kobject_add_internal+0x0/0x1f8) from [<c00c4b94>] (kobject_add_varg+0x44/0x54) [42949374.320000] r8:c01ce4f4 r7:00000000 r6:c01ce6dc r5:c01ce55c r4:00000000 [42949374.320000] [<c00c4b50>] (kobject_add_varg+0x0/0x54) from [<c00c4eac>] (kobject_add+0x40/0x68)
[42949374.320000]  r6:c01ce580 r5:c01c8aec r4:c01ce4f4
[42949374.320000] [<c00c4e6c>] (kobject_add+0x0/0x68) from [<c00e292c>] (device_add+0x7c/0x4f4)
[42949374.320000]  r3:c01ce580 r2:c019f4dc
[42949374.320000] [<c00e28b0>] (device_add+0x0/0x4f4) from [<c00e2dc0>] (device_register+0x1c/0x20) [42949374.320000] [<c00e2da4>] (device_register+0x0/0x20) from [<c00f74f0>] (soc_camera_host_register+0xc0/0x19c)
[42949374.320000]  r4:c01ce4ec
[42949374.320000] [<c00f7430>] (soc_camera_host_register+0x0/0x19c) from [<c0014054>] (imx_camera_probe+0x260/0x380) [42949374.320000] r8:00000006 r7:00000000 r6:c01c8778 r5:c01c8aec r4:c3c96cfc [42949374.320000] [<c0013df4>] (imx_camera_probe+0x0/0x380) from [<c00e573c>] (platform_drv_probe+0x20/0x24) [42949374.320000] [<c00e571c>] (platform_drv_probe+0x0/0x24) from [<c00e4a2c>] (driver_probe_device+0xb0/0x1b4) [42949374.320000] [<c00e497c>] (driver_probe_device+0x0/0x1b4) from [<c00e4b98>] (__driver_attach+0x68/0x6c) [42949374.320000] r8:c01cdea4 r7:c00e4b30 r6:c01ce4b0 r5:c01c8828 r4:c01c8780 [42949374.320000] [<c00e4b30>] (__driver_attach+0x0/0x6c) from [<c00e4124>] (bus_for_each_dev+0x5c/0x88)
[42949374.320000]  r6:c01ce4b0 r5:c3c0ded0 r4:00000000
[42949374.320000] [<c00e40c8>] (bus_for_each_dev+0x0/0x88) from [<c00e488c>] (driver_attach+0x20/0x28)
[42949374.320000]  r7:c0011874 r6:c01ce4b0 r5:c01ce4b0 r4:c3c96be8
[42949374.320000] [<c00e486c>] (driver_attach+0x0/0x28) from [<c00e4568>] (bus_add_driver+0xa8/0x1dc) [42949374.320000] [<c00e44c0>] (bus_add_driver+0x0/0x1dc) from [<c00e4d34>] (driver_register+0x54/0x130) [42949374.320000] [<c00e4ce0>] (driver_register+0x0/0x130) from [<c00e59c4>] (platform_driver_register+0x6c/0x88) [42949374.320000] r8:c3c0c000 r7:c0011874 r6:00000000 r5:00000000 r4:c0016404 [42949374.320000] [<c00e5958>] (platform_driver_register+0x0/0x88) from [<c0011888>] (imx_camera_init+0x14/0x1c) [42949374.320000] [<c0011874>] (imx_camera_init+0x0/0x1c) from [<c00087ac>] (kernel_init+0x78/0x290) [42949374.320000] [<c0008734>] (kernel_init+0x0/0x290) from [<c0030dfc>] (do_exit+0x0/0x614)
[42949374.320000] Code: eb030471 e59f2064 e1a03004 e5920000 (e5941020)

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list