Showing error 570

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: drivers/regulator/core.c
Line in file: 1553
Project: Linux Kernel
Project version: 2.6.28
Confirmation: Fixed by b136fb4463d13eea129bf090a8a465bba6bf0003
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:59 UTC


Source:

1523int regulator_register_notifier(struct regulator *regulator,
1524                              struct notifier_block *nb)
1525{
1526        return blocking_notifier_chain_register(&regulator->rdev->notifier,
1527                                                nb);
1528}
1529EXPORT_SYMBOL_GPL(regulator_register_notifier);
1530
1531/**
1532 * regulator_unregister_notifier - unregister regulator event notifier
1533 * @regulator: regulator source
1534 * @notifier_block: notifier block
1535 *
1536 * Unregister regulator event notifier block.
1537 */
1538int regulator_unregister_notifier(struct regulator *regulator,
1539                                struct notifier_block *nb)
1540{
1541        return blocking_notifier_chain_unregister(&regulator->rdev->notifier,
1542                                                  nb);
1543}
1544EXPORT_SYMBOL_GPL(regulator_unregister_notifier);
1545
1546/* notify regulator consumers and downstream regulator consumers */
1547static void _notifier_call_chain(struct regulator_dev *rdev,
1548                                  unsigned long event, void *data)
1549{
1550        struct regulator_dev *_rdev;
1551
1552        /* call rdev chain first */
1553        mutex_lock(&rdev->mutex);
1554        blocking_notifier_call_chain(&rdev->notifier, event, NULL);
1555        mutex_unlock(&rdev->mutex);
1556
1557        /* now notify regulator we supply */
1558        list_for_each_entry(_rdev, &rdev->supply_list, slist)
1559                _notifier_call_chain(_rdev, event, data);
1560}
1561
1562/**
1563 * regulator_bulk_get - get multiple regulator consumers
Show full sources