<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/clk, branch v4.3-rc6</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Partially revert "clk: mvebu: Convert to clk_hw based provider APIs"</title>
<updated>2015-10-14T18:28:17+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-14T18:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e79b202c632f24f49f2eb9459b88b5fd9e332263'/>
<id>e79b202c632f24f49f2eb9459b88b5fd9e332263</id>
<content type='text'>
This partially reverts commit eca61c9ff2588e1df373e61078e1874976315839.

Thomas reports that it causes regressions on Armada XP devices.
This is because of_clk_get_parent_name() relies on the property
'clock-output-names' to resolve the name of a clock's parent,
without trying to get the clock from the framework and call
__clk_get_name(). Given that Armada XP devices don't have the
'clock-output-names' property, of_clk_get_parent_name() returns
the name of the node which doesn't match the actual parent
clock's name at all, causing CPU clocks to never link up with
their parents.

Reported-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This partially reverts commit eca61c9ff2588e1df373e61078e1874976315839.

Thomas reports that it causes regressions on Armada XP devices.
This is because of_clk_get_parent_name() relies on the property
'clock-output-names' to resolve the name of a clock's parent,
without trying to get the clock from the framework and call
__clk_get_name(). Given that Armada XP devices don't have the
'clock-output-names' property, of_clk_get_parent_name() returns
the name of the node which doesn't match the actual parent
clock's name at all, causing CPU clocks to never link up with
their parents.

Reported-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm into clk-fixes</title>
<updated>2015-10-02T18:22:23+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-02T18:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9f30a04d768f64280dc0c40b730746e82f298d88'/>
<id>9f30a04d768f64280dc0c40b730746e82f298d88</id>
<content type='text'>
Pull fixes from Tero Kristo:

"A few TI clock driver fixes to pull against 4.3-rc"

* 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm: (3 commits)
  clk: ti: dflt: fix enable_reg validity check
  clk: ti: fix dual-registration of uart4_ick
  clk: ti: clk-7xx: Remove hardwired ABE clock configuration
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull fixes from Tero Kristo:

"A few TI clock driver fixes to pull against 4.3-rc"

* 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm: (3 commits)
  clk: ti: dflt: fix enable_reg validity check
  clk: ti: fix dual-registration of uart4_ick
  clk: ti: clk-7xx: Remove hardwired ABE clock configuration
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: ti: dflt: fix enable_reg validity check</title>
<updated>2015-10-02T06:24:28+00:00</updated>
<author>
<name>Suman Anna</name>
<email>s-anna@ti.com</email>
</author>
<published>2015-09-29T22:37:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7aba4f5201d1b7b3ddb0b03883d9edf69851ddad'/>
<id>7aba4f5201d1b7b3ddb0b03883d9edf69851ddad</id>
<content type='text'>
The default clock enabling functions for TI clocks -
omap2_dflt_clk_enable() and omap2_dflt_clk_disable() perform a
NULL check for the enable_reg field of the clk_hw_omap structure.
This enable_reg field however is merely a combination of the index
of the master IP module, and the offset from the master IP module's
base address. A value of 0 is perfectly valid, and the current error
checking will fail in these cases. The issue was found when trying
to enable the iva2_ck clock on OMAP3 platforms.

So, switch the check to use IS_ERR. This correction is similar to the
logic used in commit c807dbedb5e5 ("clk: ti: fix ti_clk_get_reg_addr
error handling").

Fixes: 9f37e90efaf0 ("clk: ti: dflt: move support for default gate clock..")
Signed-off-by: Suman Anna &lt;s-anna@ti.com&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The default clock enabling functions for TI clocks -
omap2_dflt_clk_enable() and omap2_dflt_clk_disable() perform a
NULL check for the enable_reg field of the clk_hw_omap structure.
This enable_reg field however is merely a combination of the index
of the master IP module, and the offset from the master IP module's
base address. A value of 0 is perfectly valid, and the current error
checking will fail in these cases. The issue was found when trying
to enable the iva2_ck clock on OMAP3 platforms.

So, switch the check to use IS_ERR. This correction is similar to the
logic used in commit c807dbedb5e5 ("clk: ti: fix ti_clk_get_reg_addr
error handling").

Fixes: 9f37e90efaf0 ("clk: ti: dflt: move support for default gate clock..")
Signed-off-by: Suman Anna &lt;s-anna@ti.com&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: ti: fix dual-registration of uart4_ick</title>
<updated>2015-10-02T06:24:28+00:00</updated>
<author>
<name>Ben Dooks</name>
<email>ben.dooks@codethink.co.uk</email>
</author>
<published>2015-09-29T14:01:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=19e79687de22f23bcfb5e79cce3daba20af228d1'/>
<id>19e79687de22f23bcfb5e79cce3daba20af228d1</id>
<content type='text'>
On the OMAP AM3517 platform the uart4_ick gets registered
twice, causing any power management to /dev/ttyO3 to fail
when trying to wake the device up.

This solves the following oops:

[] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa09e008
[] PC is at serial_omap_pm+0x48/0x15c
[] LR is at _raw_spin_unlock_irqrestore+0x30/0x5c

Fixes: aafd900cab87 ("CLK: TI: add omap3 clock init file")
Cc: stable@vger.kernel.org
Cc: mturquette@baylibre.com
Cc: sboyd@codeaurora.org
Cc: linux-clk@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Cc: linux-kernel@lists.codethink.co.uk
Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On the OMAP AM3517 platform the uart4_ick gets registered
twice, causing any power management to /dev/ttyO3 to fail
when trying to wake the device up.

This solves the following oops:

[] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa09e008
[] PC is at serial_omap_pm+0x48/0x15c
[] LR is at _raw_spin_unlock_irqrestore+0x30/0x5c

Fixes: aafd900cab87 ("CLK: TI: add omap3 clock init file")
Cc: stable@vger.kernel.org
Cc: mturquette@baylibre.com
Cc: sboyd@codeaurora.org
Cc: linux-clk@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Cc: linux-kernel@lists.codethink.co.uk
Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: ti: clk-7xx: Remove hardwired ABE clock configuration</title>
<updated>2015-10-02T06:24:28+00:00</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@ti.com</email>
</author>
<published>2015-08-24T07:35:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4b3061b39132cba0c31b0eb767a9faeedf9437fc'/>
<id>4b3061b39132cba0c31b0eb767a9faeedf9437fc</id>
<content type='text'>
The ABE related clocks should be configured via DT and not have it wired
inside of the kernel.

Fixes: a74c52def9ab ("clk: ti: clk-7xx: Correct ABE DPLL configuration")
Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ABE related clocks should be configured via DT and not have it wired
inside of the kernel.

Fixes: a74c52def9ab ("clk: ti: clk-7xx: Correct ABE DPLL configuration")
Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Signed-off-by: Tero Kristo &lt;t-kristo@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: samsung: fix cpu clock's flags checking</title>
<updated>2015-09-22T16:53:51+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>b.zolnierkie@samsung.com</email>
</author>
<published>2015-08-28T11:49:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9e294bf88a583825a413df408b9fe9e658fb93ac'/>
<id>9e294bf88a583825a413df408b9fe9e658fb93ac</id>
<content type='text'>
CLK_CPU_HAS_DIV1 and CLK_CPU_NEEDS_DEBUG_ALT_DIV masks were
incorrectly used as a bit numbers.  Fix it.

Tested on Exynos4210 based Origen board and on Exynos5250 based
Arndale board.

Cc: Tomasz Figa &lt;tomasz.figa@gmail.com&gt;
Cc: Michael Turquette &lt;mturquette@baylibre.com&gt;
Cc: Thomas Abraham &lt;thomas.ab@samsung.com&gt;
Fixes: ddeac8d96 ("clk: samsung: add infrastructure to register cpu clocks")
Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Reviewed-by: Javier Martinez Canillas &lt;javier@dowhile0.org&gt;
Acked-by: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CLK_CPU_HAS_DIV1 and CLK_CPU_NEEDS_DEBUG_ALT_DIV masks were
incorrectly used as a bit numbers.  Fix it.

Tested on Exynos4210 based Origen board and on Exynos5250 based
Arndale board.

Cc: Tomasz Figa &lt;tomasz.figa@gmail.com&gt;
Cc: Michael Turquette &lt;mturquette@baylibre.com&gt;
Cc: Thomas Abraham &lt;thomas.ab@samsung.com&gt;
Fixes: ddeac8d96 ("clk: samsung: add infrastructure to register cpu clocks")
Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Reviewed-by: Javier Martinez Canillas &lt;javier@dowhile0.org&gt;
Acked-by: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux</title>
<updated>2015-09-20T03:17:40+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-09-20T03:17:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d590b2d4bf61ab8d9ccaae033063eabe15699f9e'/>
<id>d590b2d4bf61ab8d9ccaae033063eabe15699f9e</id>
<content type='text'>
Pull clk fixes from Stephen Boyd:
 "A few driver fixes for tegra, rockchip, and st SoCs and a two-liner in
  the framework to avoid oops when get_parent ops return out of range
  values on tegra platforms"

* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x
  clk: check for invalid parent index of orphans in __clk_init()
  clk: tegra: dfll: Properly protect OPP list
  clk: rockchip: add critical clock for rk3368
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull clk fixes from Stephen Boyd:
 "A few driver fixes for tegra, rockchip, and st SoCs and a two-liner in
  the framework to avoid oops when get_parent ops return out of range
  values on tegra platforms"

* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x
  clk: check for invalid parent index of orphans in __clk_init()
  clk: tegra: dfll: Properly protect OPP list
  clk: rockchip: add critical clock for rk3368
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x</title>
<updated>2015-09-17T18:51:43+00:00</updated>
<author>
<name>Gabriel Fernandez</name>
<email>gabriel.fernandez@linaro.org</email>
</author>
<published>2015-09-16T07:42:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d34e210ed3a28050441f15228fd5ed929028d9cd'/>
<id>d34e210ed3a28050441f15228fd5ed929028d9cd</id>
<content type='text'>
Use a generic name for this kind of PLL

Correction in dts files are already done here:
commit 5eb26c605909 ("ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x")

Signed-off-by: Gabriel Fernandez &lt;gabriel.fernandez@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use a generic name for this kind of PLL

Correction in dts files are already done here:
commit 5eb26c605909 ("ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x")

Signed-off-by: Gabriel Fernandez &lt;gabriel.fernandez@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: check for invalid parent index of orphans in __clk_init()</title>
<updated>2015-09-16T22:35:18+00:00</updated>
<author>
<name>Mans Rullgard</name>
<email>mans@mansr.com</email>
</author>
<published>2015-02-15T12:33:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9054a31d603ea82c6ed4914170a8708812a16324'/>
<id>9054a31d603ea82c6ed4914170a8708812a16324</id>
<content type='text'>
If a mux clock is initialised (by hardware or firmware) with an
invalid parent, its -&gt;get_parent() can return an out of range
index.  For example, the generic mux clock attempts to return
-EINVAL, which due to the u8 return type ends up a rather large
number.  Using this index with the parent_names[] array results
in an invalid pointer and (usually) a crash in the following
strcmp().

This patch adds a check for the parent index being in range,
ignoring clocks reporting invalid values.

Signed-off-by: Mans Rullgard &lt;mans@mansr.com&gt;
Tested-by: Rhyland Klein &lt;rklein@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a mux clock is initialised (by hardware or firmware) with an
invalid parent, its -&gt;get_parent() can return an out of range
index.  For example, the generic mux clock attempts to return
-EINVAL, which due to the u8 return type ends up a rather large
number.  Using this index with the parent_names[] array results
in an invalid pointer and (usually) a crash in the following
strcmp().

This patch adds a check for the parent index being in range,
ignoring clocks reporting invalid values.

Signed-off-by: Mans Rullgard &lt;mans@mansr.com&gt;
Tested-by: Rhyland Klein &lt;rklein@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: dfll: Properly protect OPP list</title>
<updated>2015-09-16T22:16:03+00:00</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2015-09-10T13:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e1595d89ae8180e0d3815cc75336ac3484de0aa0'/>
<id>e1595d89ae8180e0d3815cc75336ac3484de0aa0</id>
<content type='text'>
The OPP list needs to be protected against concurrent accesses. Using
simple RCU read locks does the trick and gets rid of the following
lockdep warning:

	===============================
	[ INFO: suspicious RCU usage. ]
	4.2.0-next-20150908 #1 Not tainted
	-------------------------------
	drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!

	other info that might help us debug this:

	rcu_scheduler_active = 1, debug_locks = 0
	4 locks held by kworker/u8:0/6:
	 #0:  ("%s""deferwq"){++++.+}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #1:  (deferred_probe_work){+.+.+.}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;c03b8194&gt;] __device_attach+0x20/0x118
	 #3:  (prepare_lock){+.+...}, at: [&lt;c054bc08&gt;] clk_prepare_lock+0x10/0xf8

	stack backtrace:
	CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
	Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
	Workqueue: deferwq deferred_probe_work_func
	[&lt;c001802c&gt;] (unwind_backtrace) from [&lt;c00135a4&gt;] (show_stack+0x10/0x14)
	[&lt;c00135a4&gt;] (show_stack) from [&lt;c02a8418&gt;] (dump_stack+0x94/0xd4)
	[&lt;c02a8418&gt;] (dump_stack) from [&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil+0x108/0x114)
	[&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil) from [&lt;c0551a3c&gt;] (dfll_calculate_rate_request+0xb8/0x170)
	[&lt;c0551a3c&gt;] (dfll_calculate_rate_request) from [&lt;c0551b10&gt;] (dfll_clk_round_rate+0x1c/0x2c)
	[&lt;c0551b10&gt;] (dfll_clk_round_rate) from [&lt;c054de2c&gt;] (clk_calc_new_rates+0x1b8/0x228)
	[&lt;c054de2c&gt;] (clk_calc_new_rates) from [&lt;c054e44c&gt;] (clk_core_set_rate_nolock+0x44/0xac)
	[&lt;c054e44c&gt;] (clk_core_set_rate_nolock) from [&lt;c054e4d8&gt;] (clk_set_rate+0x24/0x34)
	[&lt;c054e4d8&gt;] (clk_set_rate) from [&lt;c0512460&gt;] (tegra124_cpufreq_probe+0x120/0x230)
	[&lt;c0512460&gt;] (tegra124_cpufreq_probe) from [&lt;c03b9cbc&gt;] (platform_drv_probe+0x44/0xac)
	[&lt;c03b9cbc&gt;] (platform_drv_probe) from [&lt;c03b84c8&gt;] (driver_probe_device+0x218/0x304)
	[&lt;c03b84c8&gt;] (driver_probe_device) from [&lt;c03b69b0&gt;] (bus_for_each_drv+0x60/0x94)
	[&lt;c03b69b0&gt;] (bus_for_each_drv) from [&lt;c03b8228&gt;] (__device_attach+0xb4/0x118)
	ata1: SATA link down (SStatus 0 SControl 300)
	[&lt;c03b8228&gt;] (__device_attach) from [&lt;c03b77c8&gt;] (bus_probe_device+0x88/0x90)
	[&lt;c03b77c8&gt;] (bus_probe_device) from [&lt;c03b7be8&gt;] (deferred_probe_work_func+0x58/0x8c)
	[&lt;c03b7be8&gt;] (deferred_probe_work_func) from [&lt;c0040dfc&gt;] (process_one_work+0x188/0x4bc)
	[&lt;c0040dfc&gt;] (process_one_work) from [&lt;c004117c&gt;] (worker_thread+0x4c/0x4f4)
	[&lt;c004117c&gt;] (worker_thread) from [&lt;c0047230&gt;] (kthread+0xe4/0xf8)
	[&lt;c0047230&gt;] (kthread) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
[vince.h@nvidia.com: Unlock rcu on error path]
Signed-off-by: Vince Hsu &lt;vince.h@nvidia.com&gt;
[sboyd@codeaurora.org: Dropped second hunk that nested the rcu
read lock unnecessarily]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The OPP list needs to be protected against concurrent accesses. Using
simple RCU read locks does the trick and gets rid of the following
lockdep warning:

	===============================
	[ INFO: suspicious RCU usage. ]
	4.2.0-next-20150908 #1 Not tainted
	-------------------------------
	drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!

	other info that might help us debug this:

	rcu_scheduler_active = 1, debug_locks = 0
	4 locks held by kworker/u8:0/6:
	 #0:  ("%s""deferwq"){++++.+}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #1:  (deferred_probe_work){+.+.+.}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;c03b8194&gt;] __device_attach+0x20/0x118
	 #3:  (prepare_lock){+.+...}, at: [&lt;c054bc08&gt;] clk_prepare_lock+0x10/0xf8

	stack backtrace:
	CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
	Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
	Workqueue: deferwq deferred_probe_work_func
	[&lt;c001802c&gt;] (unwind_backtrace) from [&lt;c00135a4&gt;] (show_stack+0x10/0x14)
	[&lt;c00135a4&gt;] (show_stack) from [&lt;c02a8418&gt;] (dump_stack+0x94/0xd4)
	[&lt;c02a8418&gt;] (dump_stack) from [&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil+0x108/0x114)
	[&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil) from [&lt;c0551a3c&gt;] (dfll_calculate_rate_request+0xb8/0x170)
	[&lt;c0551a3c&gt;] (dfll_calculate_rate_request) from [&lt;c0551b10&gt;] (dfll_clk_round_rate+0x1c/0x2c)
	[&lt;c0551b10&gt;] (dfll_clk_round_rate) from [&lt;c054de2c&gt;] (clk_calc_new_rates+0x1b8/0x228)
	[&lt;c054de2c&gt;] (clk_calc_new_rates) from [&lt;c054e44c&gt;] (clk_core_set_rate_nolock+0x44/0xac)
	[&lt;c054e44c&gt;] (clk_core_set_rate_nolock) from [&lt;c054e4d8&gt;] (clk_set_rate+0x24/0x34)
	[&lt;c054e4d8&gt;] (clk_set_rate) from [&lt;c0512460&gt;] (tegra124_cpufreq_probe+0x120/0x230)
	[&lt;c0512460&gt;] (tegra124_cpufreq_probe) from [&lt;c03b9cbc&gt;] (platform_drv_probe+0x44/0xac)
	[&lt;c03b9cbc&gt;] (platform_drv_probe) from [&lt;c03b84c8&gt;] (driver_probe_device+0x218/0x304)
	[&lt;c03b84c8&gt;] (driver_probe_device) from [&lt;c03b69b0&gt;] (bus_for_each_drv+0x60/0x94)
	[&lt;c03b69b0&gt;] (bus_for_each_drv) from [&lt;c03b8228&gt;] (__device_attach+0xb4/0x118)
	ata1: SATA link down (SStatus 0 SControl 300)
	[&lt;c03b8228&gt;] (__device_attach) from [&lt;c03b77c8&gt;] (bus_probe_device+0x88/0x90)
	[&lt;c03b77c8&gt;] (bus_probe_device) from [&lt;c03b7be8&gt;] (deferred_probe_work_func+0x58/0x8c)
	[&lt;c03b7be8&gt;] (deferred_probe_work_func) from [&lt;c0040dfc&gt;] (process_one_work+0x188/0x4bc)
	[&lt;c0040dfc&gt;] (process_one_work) from [&lt;c004117c&gt;] (worker_thread+0x4c/0x4f4)
	[&lt;c004117c&gt;] (worker_thread) from [&lt;c0047230&gt;] (kthread+0xe4/0xf8)
	[&lt;c0047230&gt;] (kthread) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
[vince.h@nvidia.com: Unlock rcu on error path]
Signed-off-by: Vince Hsu &lt;vince.h@nvidia.com&gt;
[sboyd@codeaurora.org: Dropped second hunk that nested the rcu
read lock unnecessarily]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
