• Inderpal Singh's avatar
    regulator: s5m8767: Fix probe failure due to stack corruption · 3ef30398
    Inderpal Singh authored
    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: default avatarInderpal Singh <inderpal.singh@linaro.org>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    3ef30398
s5m8767.c 20.9 KB