• Axel Lin's avatar
    regulator: palmas: Fix wrong kfree calls · c71c8fd4
    Axel Lin authored
    The devm_kzalloc function eliminates the need for manual resource releasing
    and simplify error handling. Resources allocated by devm_* are freed
    automatically on driver detach.
    
    Thus adding kfree calls here will introduce double free bug.
    
    The memory of desc array and the pointers to the rdev[] are allocated by
    devm_kzalloc call for struct palmas_pmic.
    
    struct palmas_pmic {
            struct palmas *palmas;
            struct device *dev;
            struct regulator_desc desc[PALMAS_NUM_REGS];
            struct regulator_dev *rdev[PALMAS_NUM_REGS];
            struct mutex mutex;
    
            int smps123;
            int smps457;
    
            int range[PALMAS_REG_SMPS10];
    };
    
    Which means we should not call kfree for pmic->rdev and pmic->desc.
    Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    c71c8fd4
palmas-regulator.c 18.7 KB