lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 22 Jun 2009 17:06:36 +0530
From:	"Aggarwal, Anuj" <anuj.aggarwal@...com>
To:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC:	"lrg@...mlogic.co.uk" <lrg@...mlogic.co.uk>,
	Mark Brown <broonie@...ena.org.uk>
Subject: Regulator enable called without increasing the use_count

Hi,

In set_machine_constraints(), for regulators which are enabled at boot 
time, ops->enable() is called. But use_count is not increased, as was done
in regulator_enable(). Because of this, I cannot call regulator_disable()
on this regulator, even if it is enabled by default and I want to disable
it now. The framework throws me the following error:

<4>------------[ cut here ]------------
------------[ cut here ]------------
<4>WARNING: at drivers/regulator/core.c:1165 _regulator_disable+0x44/0x104()
WARNING: at drivers/regulator/core.c:1165 _regulator_disable+0x44/0x104()
unbalanced disables for LDO1
unbalanced disables for LDO1
Modules linked in:Modules linked in: tps_test(+) tps_test(+)

[<c0032ea4>] [<c0032ea4>] (dump_stack+0x0/0x14) (dump_stack+0x0/0x14) from [<c00
5ad30>] from [<c005ad30>] (warn_slowpath+0x6c/0x88)
(warn_slowpath+0x6c/0x88)
[<c005acc4>] [<c005acc4>] (warn_slowpath+0x0/0x88) (warn_slowpath+0x0/0x88) from
 [<c01992d8>] from [<c01992d8>] (_regulator_disable+0x44/0x104)
(_regulator_disable+0x44/0x104)
 r3:c03b72ef r3:c03b72ef r2:c03b6cac r2:c03b6cac

 r7:00000000 r7:00000000 r6:00000014 r6:00000014 r5:fffffffb r5:fffffffb r4:c70e
ce00 r4:c70ece00

[<c0199294>] [<c0199294>] (_regulator_disable+0x0/0x104) (_regulator_disable+0x0
/0x104) from [<c0199468>] from [<c0199468>] (regulator_disable+0x24/0x38)
(regulator_disable+0x24/0x38)
 r5:c70ece38 r5:c70ece38 r4:c70ece00 r4:c70ece00

[<c0199444>] [<c0199444>] (regulator_disable+0x0/0x38) (regulator_disable+0x0/0x
38) from [<bf0000cc>] from [<bf0000cc>] (test_tps65023+0xcc/0x150 [tps_test])
(test_tps65023+0xcc/0x150 [tps_test])
 r5:00000000 r5:00000000 r4:c729bce0 r4:c729bce0

[<bf000000>] [<bf000000>] (test_tps65023+0x0/0x150 [tps_test]) (test_tps65023+0x
0/0x150 [tps_test]) from [<bf003030>] from [<bf003030>] (tps_regulator_test_init
+0x30/0x48 [tps_test])
(tps_regulator_test_init+0x30/0x48 [tps_test])
 r6:c0433e20 r6:c0433e20 r5:bf000900 r5:bf000900 r4:00006ee1 r4:00006ee1

[<bf003000>] [<bf003000>] (tps_regulator_test_init+0x0/0x48 [tps_test]) (tps_reg
ulator_test_init+0x0/0x48 [tps_test]) from [<c002e2b0>] from [<c002e2b0>] (do_on
e_initcall+0x58/0x184)
(do_one_initcall+0x58/0x184)
[<c002e258>] [<c002e258>] (do_one_initcall+0x0/0x184) (do_one_initcall+0x0/0x184
) from [<c007e1d8>] from [<c007e1d8>] (sys_init_module+0x98/0x198)
(sys_init_module+0x98/0x198)
[<c007e140>] [<c007e140>] (sys_init_module+0x0/0x198) (sys_init_module+0x0/0x198
) from [<c002ee00>] from [<c002ee00>] (ret_fast_syscall+0x0/0x2c)
(ret_fast_syscall+0x0/0x2c)
 r7:00000080 r7:00000080 r6:00016f85 r6:00016f85 r5:beb33f04 r5:beb33f04 r4:0000
6ee1 r4:00006ee1

<4>---[ end trace fd7133e282dc9996 ]---
---[ end trace fd7133e282dc9996 ]---


Why is it designed like that? Should I enable it again and then call the 
disable()?

Regards,
Anuj Aggarwal

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ