linux/drivers/clk/samsung
Krzysztof Kozlowski 495548a3a5 clk: samsung: Fix double add of syscore ops after driver rebind
commit c31844ffdb upstream.

During driver unbind the syscore ops were not unregistered which lead to
double add on syscore list:

$ echo "3810000.audss-clock-controller" > /sys/bus/platform/drivers/exynos-audss-clk/unbind
$ echo "3810000.audss-clock-controller" > /sys/bus/platform/drivers/exynos-audss-clk/bind
[ 1463.044061] ------------[ cut here ]------------
[ 1463.047255] WARNING: CPU: 0 PID: 1 at lib/list_debug.c:36 __list_add+0x8c/0xc0()
[ 1463.054613] list_add double add: new=c06e52c0, prev=c06e52c0, next=c06d5f84.
[ 1463.061625] Modules linked in:
[ 1463.064623] CPU: 0 PID: 1 Comm: bash Tainted: G        W      3.18.0-rc5-next-20141121-00005-ga8fab06eab42-dirty #1022
[ 1463.075338] [<c0014e2c>] (unwind_backtrace) from [<c0011d80>] (show_stack+0x10/0x14)
[ 1463.083046] [<c0011d80>] (show_stack) from [<c048bb70>] (dump_stack+0x70/0xbc)
[ 1463.090236] [<c048bb70>] (dump_stack) from [<c00233d4>] (warn_slowpath_common+0x74/0xb0)
[ 1463.098295] [<c00233d4>] (warn_slowpath_common) from [<c00234a4>] (warn_slowpath_fmt+0x30/0x40)
[ 1463.106962] [<c00234a4>] (warn_slowpath_fmt) from [<c020fe80>] (__list_add+0x8c/0xc0)
[ 1463.114760] [<c020fe80>] (__list_add) from [<c0282094>] (register_syscore_ops+0x30/0x3c)
[ 1463.122819] [<c0282094>] (register_syscore_ops) from [<c0392f20>] (exynos_audss_clk_probe+0x36c/0x460)
[ 1463.132091] [<c0392f20>] (exynos_audss_clk_probe) from [<c0283084>] (platform_drv_probe+0x48/0xa4)
[ 1463.141013] [<c0283084>] (platform_drv_probe) from [<c0281a14>] (driver_probe_device+0x13c/0x37c)
[ 1463.149852] [<c0281a14>] (driver_probe_device) from [<c0280560>] (bind_store+0x90/0xe0)
[ 1463.157822] [<c0280560>] (bind_store) from [<c027fd10>] (drv_attr_store+0x20/0x2c)
[ 1463.165363] [<c027fd10>] (drv_attr_store) from [<c0143898>] (sysfs_kf_write+0x4c/0x50)
[ 1463.173252] [<c0143898>] (sysfs_kf_write) from [<c0142c80>] (kernfs_fop_write+0xbc/0x198)
[ 1463.181395] [<c0142c80>] (kernfs_fop_write) from [<c00e2be0>] (vfs_write+0xa0/0x1a8)
[ 1463.189104] [<c00e2be0>] (vfs_write) from [<c00e2f00>] (SyS_write+0x40/0x8c)
[ 1463.196122] [<c00e2f00>] (SyS_write) from [<c000f2a0>] (ret_fast_syscall+0x0/0x48)
[ 1463.203655] ---[ end trace 08f6710c9bc8d8f3 ]---
[ 1463.208244] exynos-audss-clk 3810000.audss-clock-controller: setup completed

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: 1241ef94cc ("clk: samsung: register audio subsystem clocks using common clock framework")
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2015-01-15 10:44:19 +00:00
..
clk-exynos-audss.c clk: samsung: Fix double add of syscore ops after driver rebind 2015-01-15 10:44:19 +00:00
clk-exynos4.c clk: samsung: exynos4: Remove SRC_MASK_ISP gates 2014-06-30 14:46:03 +02:00
clk-exynos3250.c clk: samsung: exynos3250: Add clocks using common clock framework 2014-05-14 19:41:32 +02:00
clk-exynos5250.c clk/exynos5250: fix bit number for tv sysmmu clock 2014-06-30 14:46:36 +02:00
clk-exynos5260.c clk/exynos5260: add clock file for exynos5260 2014-05-14 19:16:55 +02:00
clk-exynos5260.h clk/exynos5260: add clock file for exynos5260 2014-05-14 19:16:55 +02:00
clk-exynos5410.c clk: exynos5410: register clocks using common clock framework 2014-05-31 02:13:16 +09:00
clk-exynos5420.c This batch of fixes is for a handful of clock drivers from Allwinner, 2014-07-13 12:21:04 -07:00
clk-exynos5440.c clk/samsung: add support for multiple clock providers 2014-05-14 19:15:38 +02:00
clk-pll.c clk/samsung: add support for pll2650xx 2014-05-14 19:16:54 +02:00
clk-pll.h clk/samsung: add support for pll2650xx 2014-05-14 19:16:54 +02:00
clk-s3c64xx.c clk: s3c64xx: Hookup SPI clocks correctly 2014-06-30 14:46:26 +02:00
clk-s3c2410-dclk.c clk: samsung: fix build error 2014-05-26 14:19:39 -07:00
clk-s3c2410.c clk: samsung: add more aliases for s3c24xx 2014-06-30 14:45:56 +02:00
clk-s3c2412.c clk/samsung: add support for multiple clock providers 2014-05-14 19:15:38 +02:00
clk-s3c2443.c clk/samsung: add support for multiple clock providers 2014-05-14 19:15:38 +02:00
clk.c clk: samsung: fixed compiler warning [-Wpointer-to-int-cast] 2014-05-14 19:40:05 +02:00
clk.h clk/samsung: add support for multiple clock providers 2014-05-14 19:15:38 +02:00
Kconfig ARM: S3C24XX: move S3C24XX clock Kconfig options to Samsung clock Kconfig file 2014-05-14 19:41:15 +02:00
Makefile clk: exynos5410: register clocks using common clock framework 2014-05-31 02:13:16 +09:00