diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-11-27 18:16:54 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-11-27 18:16:54 -0500 |
commit | d0b00d3fb96d155649f80bf43b81a50ecdd2047f (patch) | |
tree | f81385425c625157b6d8f56e5187ac460793e141 | |
parent | 3441cded65118c217a749de4350b6cad50b0e350 (diff) | |
parent | 7585ca0dc950583be7fc62099ca43a0c9551a875 (diff) |
Merge tag 'extcon-linus-for-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-linus
Chanwoo writes:
Update extcon for 3.13-rc2
This patchset fix NULL pointer error of extcon-arizona driver and fix issue
about memory of device groups when calling extcon_dev_unregister function.
-rw-r--r-- | drivers/extcon/extcon-arizona.c | 4 | ||||
-rw-r--r-- | drivers/extcon/extcon-class.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c index 3c55ec856e39..a287cece0593 100644 --- a/drivers/extcon/extcon-arizona.c +++ b/drivers/extcon/extcon-arizona.c | |||
@@ -1082,7 +1082,7 @@ static void arizona_micd_set_level(struct arizona *arizona, int index, | |||
1082 | static int arizona_extcon_probe(struct platform_device *pdev) | 1082 | static int arizona_extcon_probe(struct platform_device *pdev) |
1083 | { | 1083 | { |
1084 | struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); | 1084 | struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); |
1085 | struct arizona_pdata *pdata; | 1085 | struct arizona_pdata *pdata = &arizona->pdata; |
1086 | struct arizona_extcon_info *info; | 1086 | struct arizona_extcon_info *info; |
1087 | unsigned int val; | 1087 | unsigned int val; |
1088 | int jack_irq_fall, jack_irq_rise; | 1088 | int jack_irq_fall, jack_irq_rise; |
@@ -1091,8 +1091,6 @@ static int arizona_extcon_probe(struct platform_device *pdev) | |||
1091 | if (!arizona->dapm || !arizona->dapm->card) | 1091 | if (!arizona->dapm || !arizona->dapm->card) |
1092 | return -EPROBE_DEFER; | 1092 | return -EPROBE_DEFER; |
1093 | 1093 | ||
1094 | pdata = dev_get_platdata(arizona->dev); | ||
1095 | |||
1096 | info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); | 1094 | info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); |
1097 | if (!info) { | 1095 | if (!info) { |
1098 | dev_err(&pdev->dev, "Failed to allocate memory\n"); | 1096 | dev_err(&pdev->dev, "Failed to allocate memory\n"); |
diff --git a/drivers/extcon/extcon-class.c b/drivers/extcon/extcon-class.c index 15443d3b6be1..76322330cbd7 100644 --- a/drivers/extcon/extcon-class.c +++ b/drivers/extcon/extcon-class.c | |||
@@ -792,6 +792,8 @@ void extcon_dev_unregister(struct extcon_dev *edev) | |||
792 | return; | 792 | return; |
793 | } | 793 | } |
794 | 794 | ||
795 | device_unregister(&edev->dev); | ||
796 | |||
795 | if (edev->mutually_exclusive && edev->max_supported) { | 797 | if (edev->mutually_exclusive && edev->max_supported) { |
796 | for (index = 0; edev->mutually_exclusive[index]; | 798 | for (index = 0; edev->mutually_exclusive[index]; |
797 | index++) | 799 | index++) |
@@ -812,7 +814,6 @@ void extcon_dev_unregister(struct extcon_dev *edev) | |||
812 | if (switch_class) | 814 | if (switch_class) |
813 | class_compat_remove_link(switch_class, &edev->dev, NULL); | 815 | class_compat_remove_link(switch_class, &edev->dev, NULL); |
814 | #endif | 816 | #endif |
815 | device_unregister(&edev->dev); | ||
816 | put_device(&edev->dev); | 817 | put_device(&edev->dev); |
817 | } | 818 | } |
818 | EXPORT_SYMBOL_GPL(extcon_dev_unregister); | 819 | EXPORT_SYMBOL_GPL(extcon_dev_unregister); |