linux/drivers/regulator
Inderpal Singh 3ef303988c regulator: s5m8767: Fix probe failure due to stack corruption
The function sec_reg_read invokes regmap_read which expects unsigned int *
as the destination address. The existing driver is passing address of local
variable "val" which is u8. This causes the stack corruption and following
dump is observed during probe.

Hence change "val" from u8 to unsigned int.

Unable to handle kernel paging request at virtual address 02410020
pgd = c0004000
[02410020] *pgd=00000000
Internal error: Oops: 80000005 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0    Not tainted  (3.6.0-00696-g98a28b18-dirty #27)
PC is at 0x2410020
LR is at _regulator_get_voltage+0x3c/0x70
pc : [<02410020>]    lr : [<c02395d4>]    psr: 20000013
sp : cf839b68  ip : 00000000  fp : cf92d410
r10: 0000cfd0  r9 : c06d9878  r8 : 0000f0a0
r7 : cf839b70  r6 : cf92d400  r5 : 00000011  r4 : cf000000
r3 : 02410020  r2 : 00000000  r1 : 00000048  r0 : cf000000
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
...........................
.................................

[<c02395d4>] (_regulator_get_voltage+0x3c/0x70) from [<c023ad80>] (print_constraints+0x50/0x36c)
[<c023ad80>] (print_constraints+0x50/0x36c) from [<c023e504>] (set_machine_constraints+0xe8/0x2b0)
[<c023e504>] (set_machine_constraints+0xe8/0x2b0) from [<c023e9c8>] (regulator_register+0x2fc/0x604)
[<c023e9c8>] (regulator_register+0x2fc/0x604) from [<c049d628>] (s5m8767_pmic_probe+0x688/0x718)
[<c049d628>] (s5m8767_pmic_probe+0x688/0x718) from [<c029915c>] (platform_drv_probe+0x18/0x1c)
[<c029915c>] (platform_drv_probe+0x18/0x1c) from [<c0297dd0>] (really_probe+0x68/0x1f4)
[<c0297dd0>] (really_probe+0x68/0x1f4) from [<c0298070>] (driver_probe_device+0x30/0x48)

Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-12-24 16:24:37 +00:00
..
88pm8607.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
aat2870-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
ab3100.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
ab8500.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
ad5398.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
anatop-regulator.c Merge remote-tracking branch 'regulator/topic/min' into regulator-next 2012-12-10 12:43:00 +09:00
arizona-ldo1.c Merge remote-tracking branch 'regulator/topic/hotplug' into regulator-next 2012-12-10 12:42:55 +09:00
arizona-micsupp.c Merge remote-tracking branch 'regulator/topic/hotplug' into regulator-next 2012-12-10 12:42:55 +09:00
as3711-regulator.c regulator: as3711: Fix the logic in as3711_sel_check 2012-11-27 20:25:18 +00:00
core.c Merge remote-tracking branch 'regulator/topic/change' into regulator-next 2012-12-11 21:44:53 +09:00
da903x.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
da9052-regulator.c Merge remote-tracking branch 'regulator/topic/hotplug' into regulator-next 2012-12-10 12:42:55 +09:00
da9055-regulator.c Merge remote-tracking branch 'regulator/topic/min' into regulator-next 2012-12-10 12:43:00 +09:00
db8500-prcmu.c regulator: remove use of __devinit 2012-11-20 10:31:26 +09:00
dbx500-prcmu.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
dbx500-prcmu.h regulators/db8500: split off shared dbx500 code 2012-01-20 12:01:29 +00:00
dummy.c regulator: remove use of __devinit 2012-11-20 10:31:26 +09:00
dummy.h
fan53555.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
fixed-helper.c regulator: extend the fixed dummy voltage regulator to accept voltage 2012-06-19 23:22:30 +01:00
fixed.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
gpio-regulator.c Merge remote-tracking branch 'regulator/topic/gpio' into regulator-next 2012-12-10 23:14:11 +09:00
isl6271a-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
Kconfig Merge remote-tracking branch 'regulator/topic/max8973' into regulator-next 2012-12-10 12:42:59 +09:00
lp872x.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
lp3971.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
lp3972.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
lp8788-buck.c Merge remote-tracking branch 'regulator/topic/lp8788' into regulator-next 2012-12-10 12:42:57 +09:00
lp8788-ldo.c Merge remote-tracking branch 'regulator/topic/lp8788' into regulator-next 2012-12-10 12:42:57 +09:00
Makefile Merge remote-tracking branch 'regulator/topic/max8973' into regulator-next 2012-12-10 12:42:59 +09:00
max1586.c Merge remote-tracking branch 'regulator/topic/max1586' into regulator-next 2012-12-10 12:42:58 +09:00
max8649.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max8660.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max8907-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max8925-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max8952.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max8973-regulator.c regulator: max8973: provide enable/disable if external control disabled 2012-11-23 21:16:35 +09:00
max8997.c Merge branch 'topic/hotplug' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-max8997 2012-11-27 20:06:08 +00:00
max8998.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
max77686.c Merge remote-tracking branch 'regulator/topic/max77686' into regulator-next 2012-12-10 12:42:58 +09:00
mc13xxx-regulator-core.c regulator: remove use of __devinit 2012-11-20 10:31:26 +09:00
mc13xxx.h regulator: mc13xxx: Remove get_voltage implementation for single voltage regulators 2012-08-28 11:00:27 -07:00
mc13783-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
mc13892-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
of_regulator.c regulator: deprecate regulator-compatible DT property 2012-09-25 13:44:47 +01:00
palmas-regulator.c Merge remote-tracking branch 'regulator/topic/palmas' into regulator-next 2012-12-10 12:43:17 +09:00
pcap-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
pcf50633-regulator.c Merge remote-tracking branch 'regulator/topic/min' into regulator-next 2012-12-10 12:43:00 +09:00
rc5t583-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
s2mps11.c Merge remote-tracking branch 'regulator/topic/s2mps11' into regulator-next 2012-12-10 12:43:19 +09:00
s5m8767.c regulator: s5m8767: Fix probe failure due to stack corruption 2012-12-24 16:24:37 +00:00
tps6105x-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps6507x-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps6524x-regulator.c regulator: remove use of __devinit 2012-11-20 10:31:26 +09:00
tps6586x-regulator.c Merge remote-tracking branch 'regulator/topic/tps6586x' into regulator-next 2012-12-10 12:43:29 +09:00
tps51632-regulator.c Merge remote-tracking branch 'regulator/topic/tps516312' into regulator-next 2012-12-10 12:43:24 +09:00
tps62360-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps65023-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps65090-regulator.c Merge remote-tracking branch 'regulator/topic/tps65090' into regulator-next 2012-12-10 12:43:27 +09:00
tps65217-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps65910-regulator.c Merge remote-tracking branch 'regulator/topic/tps65910' into regulator-next 2012-12-10 12:43:30 +09:00
tps65912-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
tps80031-regulator.c Merge remote-tracking branch 'regulator/topic/tps80031' into regulator-next 2012-12-10 12:43:32 +09:00
twl-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
userspace-consumer.c regulator: userspace-consumer: Convert to use devm_* APIs 2012-04-18 10:26:24 +01:00
vexpress.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
virtual.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
wm831x-dcdc.c Merge remote-tracking branch 'regulator/topic/wm831x' into regulator-next 2012-12-10 12:43:33 +09:00
wm831x-isink.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
wm831x-ldo.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
wm8350-regulator.c regulator: wm8350: Reuse map_voltage() to get selector of a given uV 2012-06-17 20:53:58 +01:00
wm8400-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00
wm8994-regulator.c regulator: remove use of __devexit 2012-11-20 10:53:38 +09:00