Etnaviv DRM driver - oops when unloading

Lucas Stach l.stach at pengutronix.de
Wed May 27 05:49:17 PDT 2015


Hi Alexander,

Am Mittwoch, den 27.05.2015, 14:45 +0200 schrieb Alexander Holler:
> Hello,
> 
> I've just build and booted the Etnaviv driver as module with Kernel 4.0.4.
> 
> When I unload the driver with rmmod an oops happens:
> 
Thanks for the report.

I'm currently working on the patchstack to get it into shape for another
submission. I'll take a look at this problem.

Regards,
Lucas

> ------------[ cut here ]------------
> WARNING: CPU: 1 PID: 2192 at drivers/staging/etnaviv/etnaviv_gem.c:404 
> etnaviv_gem_paddr_locked+0x30/0x38 [etnaviv]()
> Modules linked in: nft_reject_ipv6 nf_reject_ipv6 nf_log_ipv6 
> nf_conntrack_ipv6 nf_defrag_ipv6 nf_tables_ipv6 nft_reject_ipv4 
> nf_reject_ipv4 nft_reject nf_log_ipv4 nf_log_common nft_log nft_counter 
> nft_meta nf_conntrack_ipv4 nf_defrag_ipv4 nft_ct nf_conntrack nft_hash 
> nft_rbtree nf_tables_ipv4 nf_tables nfnetlink bridge stp llc rfcomm bnep 
> hci_uart sch_sfq nfsd auth_rpcgss lockd grace sunrpc imx_ipuv3_crtc 
> dw_hdmi_imx dw_hdmi evdev imx_ipu_v3 brcmfmac imxdrm brcmutil 
> ci_hdrc_imx ci_hdrc imx_thermal etnaviv(C-) usbmisc_imx drm_kms_helper 
> gpio_keys
> CPU: 1 PID: 2192 Comm: rmmod Tainted: G         C 
> 4.0.4-wandq-00210-g9240da9 #325
> Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
> [<8010cd14>] (unwind_backtrace) from [<80109778>] (show_stack+0x10/0x14)
> [<80109778>] (show_stack) from [<8068ed1c>] (dump_stack+0x94/0xd4)
> [<8068ed1c>] (dump_stack) from [<80126a54>] (warn_slowpath_common+0x84/0xb4)
> [<80126a54>] (warn_slowpath_common) from [<80126b20>] 
> (warn_slowpath_null+0x1c/0x24)
> [<80126b20>] (warn_slowpath_null) from [<7f059d28>] 
> (etnaviv_gem_paddr_locked+0x30/0x38 [etnaviv])
> [<7f059d28>] (etnaviv_gem_paddr_locked [etnaviv]) from [<7f05b198>] 
> (etnaviv_gpu_hw_init+0xb4/0x18c [etnaviv])
> [<7f05b198>] (etnaviv_gpu_hw_init [etnaviv]) from [<7f05bbf0>] 
> (etnaviv_gpu_rpm_resume+0x70/0xcc [etnaviv])
> [<7f05bbf0>] (etnaviv_gpu_rpm_resume [etnaviv]) from [<80413044>] 
> (__rpm_callback+0x2c/0x60)
> [<80413044>] (__rpm_callback) from [<80413098>] (rpm_callback+0x20/0x80)
> [<80413098>] (rpm_callback) from [<80413e50>] (rpm_resume+0x350/0x524)
> [<80413e50>] (rpm_resume) from [<80414070>] (__pm_runtime_resume+0x4c/0x64)
> [<80414070>] (__pm_runtime_resume) from [<8040b9a8>] 
> (__device_release_driver+0x1c/0xc4)
> [<8040b9a8>] (__device_release_driver) from [<8040c0f4>] 
> (driver_detach+0xac/0xb0)
> [<8040c0f4>] (driver_detach) from [<8040b75c>] (bus_remove_driver+0x4c/0xa0)
> [<8040b75c>] (bus_remove_driver) from [<7f05dcc8>] 
> (etnaviv_exit+0x10/0x348 [etnaviv])
> [<7f05dcc8>] (etnaviv_exit [etnaviv]) from [<801839d4>] 
> (SyS_delete_module+0x174/0x1b8)
> [<801839d4>] (SyS_delete_module) from [<80106420>] 
> (ret_fast_syscall+0x0/0x34)
> ---[ end trace e3e10844e84f28b3 ]---
> Unable to handle kernel NULL pointer dereference at virtual address 00000058
> pgd = d0430000
> [00000058] *pgd=60452831, *pte=00000000, *ppte=00000000
> Internal error: Oops: 17 [#1] PREEMPT SMP ARM
> Modules linked in: nft_reject_ipv6 nf_reject_ipv6 nf_log_ipv6 
> nf_conntrack_ipv6 nf_defrag_ipv6 nf_tables_ipv6 nft_reject_ipv4 
> nf_reject_ipv4 nft_reject nf_log_ipv4 nf_log_common nft_log nft_counter 
> nft_meta nf_conntrack_ipv4 nf_defrag_ipv4 nft_ct nf_conntrack nft_hash 
> nft_rbtree nf_tables_ipv4 nf_tables nfnetlink bridge stp llc rfcomm bnep 
> hci_uart sch_sfq nfsd auth_rpcgss lockd grace sunrpc imx_ipuv3_crtc 
> dw_hdmi_imx dw_hdmi evdev imx_ipu_v3 brcmfmac imxdrm brcmutil 
> ci_hdrc_imx ci_hdrc imx_thermal etnaviv(C-) usbmisc_imx drm_kms_helper 
> gpio_keys
> CPU: 1 PID: 2192 Comm: rmmod Tainted: G        WC 
> 4.0.4-wandq-00210-g9240da9 #325
> Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
> task: d48ce300 ti: d1f26000 task.ti: d1f26000
> PC is at etnaviv_buffer_init+0x4/0xa0 [etnaviv]
> LR is at etnaviv_gpu_hw_init+0x98/0x18c [etnaviv]
> pc : [<7f05d4f0>]    lr : [<7f05b17c>]    psr: a00e0013\x0asp : d1f27e98 
>   ip : 00000000  fp : 01c09d58
> r10: 00000000  r9 : d1f26000  r8 : 00000004
> r7 : 80a02100  r6 : 80411c80  r5 : dd75bfc0  r4 : dd61f410
> r3 : 00000000  r2 : 00000730  r1 : 00000000  r0 : dd61f410
> Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
> Control: 10c5387d  Table: 6043004a  DAC: 00000015
> Process rmmod (pid: 2192, stack limit = 0xd1f26210)
> Stack: (0xd1f27e98 to 0xd1f28000)
> 7e80:                                                       00000001 
> dd61f410
> 7ea0: dd75bfc0 7f05bbf0 7f05bb80 de120a10 de120a74 80413044 de120a10 
> 00000000
> 7ec0: de120410 80413098 80411c80 de120a10 00000000 80413e50 01c09d58 
> 8068bebc
> 7ee0: ddaf2e25 8068c028 de1bb3a4 7f0601a4 de1d4044 de120a10 de120a74 
> 00000004
> 7f00: 600e0013 801065a4 d1f26000 80414070 7f0601a4 de120a10 7f0601a4 
> de120a44
> 7f20: 00000081 8040b9a8 7f0601a4 de120a10 7f0601a4 8040c0f4 7f0601a4 
> 01c09d8c
> 7f40: 00000000 8040b75c 7f060240 7f05dcc8 7f05dcb8 801839d4 d4b29488 
> 616e7465
> 7f60: 00766976 00000000 d48ce728 00000000 d48ce728 00000000 80a4230c 
> d48ce300
> 7f80: 01c09d58 8013da84 d4b29480 d1f26000 801065a4 00f27fb0 00000006 
> 01c09d58
> 7fa0: 7e868e68 80106420 01c09d58 7e868e68 01c09d8c 00000800 63760a00 
> 63760a00
> 7fc0: 01c09d58 7e868e68 00000000 00000081 00000001 7e869078 0002e1a0 
> 01c09d58
> 7fe0: 76e94400 7e868e14 000186d0 76e9440c 600e0010 01c09d8c 3136315b 
> 203a5d39
> [<7f05d4f0>] (etnaviv_buffer_init [etnaviv]) from [<00000001>] (0x1)
> Code: eb4c93a7 e28dd014 e8bd8030 e5903050 (e5932058)
> ---[ end trace e3e10844e84f28b4 ]---
> 
> I've tried it two times, both ended with the same oops. So it seems to 
> be reproducible (here).
> 
> I haven't had a deeper look at the source, but after a quick look I 
> assume a fix isn't that hard.
> 
> Regards,
> 
> Alexander Holler

-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |



More information about the dri-devel mailing list