linux/drivers/media/platform/s5p-mfc
Javier Martinez Canillas 8b120e73e5 [media] s5p-mfc: Don't try to put pm->clock if lookup failed
Failing to get the struct s5p_mfc_pm .clock is a non-fatal error so the
clock field can have a errno pointer value. But s5p_mfc_final_pm() only
checks if .clock is not NULL before attempting to unprepare and put it.

This leads to the following warning in clk_put() due s5p_mfc_final_pm():

WARNING: CPU: 3 PID: 1023 at drivers/clk/clk.c:2814 s5p_mfc_final_pm+0x48/0x74 [s5p_mfc]
CPU: 3 PID: 1023 Comm: rmmod Tainted: G        W       4.6.0-rc6-next-20160502-00005-g5a15a49106bc #9
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[<c010e1bc>] (unwind_backtrace) from [<c010af28>] (show_stack+0x10/0x14)
[<c010af28>] (show_stack) from [<c032485c>] (dump_stack+0x88/0x9c)
[<c032485c>] (dump_stack) from [<c011b8e8>] (__warn+0xe8/0x100)
[<c011b8e8>] (__warn) from [<c011b9b0>] (warn_slowpath_null+0x20/0x28)
[<c011b9b0>] (warn_slowpath_null) from [<bf16004c>] (s5p_mfc_final_pm+0x48/0x74 [s5p_mfc])
[<bf16004c>] (s5p_mfc_final_pm [s5p_mfc]) from [<bf157414>] (s5p_mfc_remove+0x8c/0x94 [s5p_mfc])
[<bf157414>] (s5p_mfc_remove [s5p_mfc]) from [<c03fe1f8>] (platform_drv_remove+0x24/0x3c)
[<c03fe1f8>] (platform_drv_remove) from [<c03fcc70>] (__device_release_driver+0x84/0x110)
[<c03fcc70>] (__device_release_driver) from [<c03fcdd8>] (driver_detach+0xac/0xb0)
[<c03fcdd8>] (driver_detach) from [<c03fbff8>] (bus_remove_driver+0x4c/0xa0)
[<c03fbff8>] (bus_remove_driver) from [<c01886a8>] (SyS_delete_module+0x174/0x1b8)
[<c01886a8>] (SyS_delete_module) from [<c01078c0>] (ret_fast_syscall+0x0/0x3c)

Assign the pointer to NULL in case of a lookup failure to fix the issue.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2016-06-07 10:45:07 -03:00
..
Makefile
regs-mfc-v6.h [media] s5p-mfc: check mfc bus ctrl before reset 2014-10-28 15:44:32 -02:00
regs-mfc-v7.h [media] s5p-mfc: Move INIT_BUFFER_OPTIONS from v7 to v6 2014-05-23 15:29:05 -03:00
regs-mfc-v8.h [media] s5p-mfc: Core support for v8 encoder 2014-05-23 15:47:24 -03:00
regs-mfc.h [media] media_tree: Fix spelling errors 2013-11-29 14:43:50 -02:00
s5p_mfc_cmd_v5.c [media] s5p_mfc: get rid of several warnings 2014-08-26 18:52:13 -03:00
s5p_mfc_cmd_v5.h
s5p_mfc_cmd_v6.c [media] s5p-mfc: add return value check in mfc_sys_init_cmd 2015-08-11 06:24:32 -03:00
s5p_mfc_cmd_v6.h
s5p_mfc_cmd.c
s5p_mfc_cmd.h
s5p_mfc_common.h [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void 2015-12-23 13:59:46 -02:00
s5p_mfc_ctrl.c [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void 2015-12-23 13:59:46 -02:00
s5p_mfc_ctrl.h [media] s5p-mfc: Extract open/close MFC instance commands 2014-05-23 15:00:20 -03:00
s5p_mfc_debug.h [media] s5p_mfc: don't use an external symbol called 'debug' 2014-08-26 18:52:02 -03:00
s5p_mfc_dec.c [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void 2015-12-23 13:59:46 -02:00
s5p_mfc_dec.h [media] s5p-mfc: constify s5p_mfc_codec_ops structures 2015-12-23 13:52:30 -02:00
s5p_mfc_enc.c [media] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME 2016-02-19 08:10:36 -02:00
s5p_mfc_enc.h [media] s5p-mfc: constify s5p_mfc_codec_ops structures 2015-12-23 13:52:30 -02:00
s5p_mfc_intr.c
s5p_mfc_intr.h
s5p_mfc_iommu.h [media] media: s5p-mfc: fix compilation issue on archs other than ARM (32bit) 2016-06-07 10:25:15 -03:00
s5p_mfc_opr_v5.c [media] s5p-mfc: use spinlock to protect MFC context 2015-12-23 13:58:36 -02:00
s5p_mfc_opr_v5.h
s5p_mfc_opr_v6.c [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void 2015-12-23 13:59:46 -02:00
s5p_mfc_opr_v6.h [media] s5p-mfc: Add variants to access mfc registers 2014-05-23 15:30:38 -03:00
s5p_mfc_opr.c [media] s5p-mfc: add additional check for incorrect memory configuration 2015-08-11 06:25:50 -03:00
s5p_mfc_opr.h [media] s5p-mfc: remove volatile attribute from MFC register addresses 2015-12-23 14:00:22 -02:00
s5p_mfc_pm.c [media] s5p-mfc: Don't try to put pm->clock if lookup failed 2016-06-07 10:45:07 -03:00
s5p_mfc_pm.h
s5p_mfc.c media: s5p-mfc: add iommu support 2016-06-03 11:13:45 +02:00