Commit 41544f9f38f19cb46dc9a8fa37c58677a0300899
Committed by
Olof Johansson
1 parent
a30e93186c
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
reset: sunxi: fix spinlock initialization
Call spin_lock_init() before the spinlocks are used, both in early init and probe functions preventing a lockdep splat. I have been observing lockdep complaining [1] during boot on my a80 optimus [2] when CONFIG_PROVE_LOCKING has been enabled. This patch resolves the splat, and has been tested on a few other sunxi platforms without issue. [1] http://storage.kernelci.org/next/next-20150107/arm-multi_v7_defconfig+CONFIG_PROVE_LOCKING=y/lab-tbaker/boot-sun9i-a80-optimus.html [2] http://kernelci.org/boot/?a80-optimus Signed-off-by: Tyler Baker <tyler.baker@linaro.org> Cc: <stable@vger.kernel.org> Acked-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
Showing 1 changed file with 4 additions and 0 deletions Side-by-side Diff
drivers/reset/reset-sunxi.c
... | ... | @@ -102,6 +102,8 @@ |
102 | 102 | goto err_alloc; |
103 | 103 | } |
104 | 104 | |
105 | + spin_lock_init(&data->lock); | |
106 | + | |
105 | 107 | data->rcdev.owner = THIS_MODULE; |
106 | 108 | data->rcdev.nr_resets = size * 32; |
107 | 109 | data->rcdev.ops = &sunxi_reset_ops; |
... | ... | @@ -156,6 +158,8 @@ |
156 | 158 | data->membase = devm_ioremap_resource(&pdev->dev, res); |
157 | 159 | if (IS_ERR(data->membase)) |
158 | 160 | return PTR_ERR(data->membase); |
161 | + | |
162 | + spin_lock_init(&data->lock); | |
159 | 163 | |
160 | 164 | data->rcdev.owner = THIS_MODULE; |
161 | 165 | data->rcdev.nr_resets = resource_size(res) * 32; |