aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2013-05-22 06:20:10 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-05-30 13:30:44 -0400
commitaeb168f77c745fa4964e217400c9d43685e46705 (patch)
tree57e85aefc9c9fc27f9a5f0579fe94d48e91954fe
parent2b861f4b2b4787772b4f508c8cdfa492a01a60db (diff)
gpio-langwell: initialize lock before usage
Otherwise we will end up with traceback from LOCKDEP: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-rc2-next-20130521-00028-g09aa9fc #487 00000000 00000000 f6c55c54 c1541fe4 f6040bf8 f6c55c8c c1069ef1 c1726bc1 c1726cc8 c1726c9e 00000000 f6c584e0 f6c58000 f6c55ce8 00000000 f6040bf8 f6040bf8 00000046 f6c58000 f6c55d00 c106a18d 00000a2b 00000003 00004f02 Call Trace: [<c1541fe4>] dump_stack+0x49/0x77 [<c1069ef1>] register_lock_class+0x58/0x260 [<c106a18d>] __lock_acquire+0x94/0xcff [<c106adc8>] ? __lock_acquire+0xccf/0xcff [<c106b2ad>] lock_acquire+0xcc/0x10d [<c1269c7c>] ? lnw_irq_type+0x63/0xe9 [<c1545da0>] _raw_spin_lock_irqsave+0x32/0x42 [<c1269c7c>] ? lnw_irq_type+0x63/0xe9 [<c1269c7c>] lnw_irq_type+0x63/0xe9 [<c108f454>] __irq_set_trigger+0x98/0x123 [<c1090225>] irq_set_irq_type+0x2f/0x51 [<c1090225>] ? irq_set_irq_type+0x2f/0x51 [<c1269d02>] ? lnw_irq_type+0xe9/0xe9 [<c1269d34>] lnw_gpio_irq_map+0x32/0x3b [<c10914f2>] irq_domain_add_legacy+0xe2/0x107 [<c1091b53>] irq_domain_add_simple+0x47/0x60 [<c1269f6e>] lnw_gpio_probe+0x119/0x217 [<c1271018>] pci_device_probe+0x5a/0x92 ... Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by: David Cohen <david.a.cohen@intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/gpio/gpio-langwell.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpio/gpio-langwell.c b/drivers/gpio/gpio-langwell.c
index b8a5729ca4f6..a0190de14371 100644
--- a/drivers/gpio/gpio-langwell.c
+++ b/drivers/gpio/gpio-langwell.c
@@ -380,6 +380,8 @@ static int lnw_gpio_probe(struct pci_dev *pdev,
380 lnw->chip.can_sleep = 0; 380 lnw->chip.can_sleep = 0;
381 lnw->pdev = pdev; 381 lnw->pdev = pdev;
382 382
383 spin_lock_init(&lnw->lock);
384
383 lnw->domain = irq_domain_add_simple(pdev->dev.of_node, ngpio, irq_base, 385 lnw->domain = irq_domain_add_simple(pdev->dev.of_node, ngpio, irq_base,
384 &lnw_gpio_irq_ops, lnw); 386 &lnw_gpio_irq_ops, lnw);
385 if (!lnw->domain) { 387 if (!lnw->domain) {
@@ -399,8 +401,6 @@ static int lnw_gpio_probe(struct pci_dev *pdev,
399 irq_set_handler_data(pdev->irq, lnw); 401 irq_set_handler_data(pdev->irq, lnw);
400 irq_set_chained_handler(pdev->irq, lnw_irq_handler); 402 irq_set_chained_handler(pdev->irq, lnw_irq_handler);
401 403
402 spin_lock_init(&lnw->lock);
403
404 pm_runtime_put_noidle(&pdev->dev); 404 pm_runtime_put_noidle(&pdev->dev);
405 pm_runtime_allow(&pdev->dev); 405 pm_runtime_allow(&pdev->dev);
406 406