diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c index ddff2b72f0a8..51db5bcef720 100644 --- a/drivers/extcon/extcon-palmas.c +++ b/drivers/extcon/extcon-palmas.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -188,11 +189,13 @@ static int palmas_usb_probe(struct platform_device *pdev) palmas_usb->edev.supported_cable = palmas_extcon_cable; palmas_usb->edev.dev.parent = palmas_usb->dev; + palmas_usb->edev.name = kstrdup(node->name, GFP_KERNEL); palmas_usb->edev.mutually_exclusive = mutually_exclusive; status = extcon_dev_register(&palmas_usb->edev); if (status) { dev_err(&pdev->dev, "failed to register extcon device\n"); + kfree(palmas_usb->edev.name); return status; } @@ -230,6 +233,7 @@ static int palmas_usb_probe(struct platform_device *pdev) fail_extcon: extcon_dev_unregister(&palmas_usb->edev); + kfree(palmas_usb->edev.name); return status; } @@ -239,6 +243,7 @@ static int palmas_usb_remove(struct platform_device *pdev) struct palmas_usb *palmas_usb = platform_get_drvdata(pdev); extcon_dev_unregister(&palmas_usb->edev); + kfree(palmas_usb->edev.name); return 0; }