Never directly free @dev after calling device_register(), even
if it returned an error! Always use put_device() to give up the
reference initialized.

Signed-off-by: Arvind Yadav <[email protected]>
---
 drivers/pwm/sysfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c
index 83f2b0b..7c71cdb 100644
--- a/drivers/pwm/sysfs.c
+++ b/drivers/pwm/sysfs.c
@@ -273,7 +273,8 @@ static int pwm_export_child(struct device *parent, struct 
pwm_device *pwm)
        ret = device_register(&export->child);
        if (ret) {
                clear_bit(PWMF_EXPORTED, &pwm->flags);
-               kfree(export);
+               put_device(&export->child);
+               export = NULL;
                return ret;
        }
 
-- 
1.9.1

Reply via email to