summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-03-15 09:36:55 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-03-15 09:36:55 +0100
commite01b7d04a61cf9684cc4145ddfc32f3010f6c03d (patch)
tree40c9ad7dc5db19f34c748212db44a9af3bef8c41
parent1e28eed17697bcf343c6743f0028cc3b5dd88bf0 (diff)
parentd3bdd1c3140724967ca4136755538fa7c05c2b4e (diff)
downloadlinux-stable-e01b7d04a61cf9684cc4145ddfc32f3010f6c03d.tar.gz
linux-stable-e01b7d04a61cf9684cc4145ddfc32f3010f6c03d.tar.bz2
linux-stable-e01b7d04a61cf9684cc4145ddfc32f3010f6c03d.zip
Merge tag 'extcon-fixes-for-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next
Chanwoo writes: Update extcon for v5.12-rc4 Detailed update of this pull request as following: 1. Add stubs of extcon_register_notifier_all() function for when CONFIG_EXTCON is disabled. 2. Fix exception handling in extcon_dev_register() when failed to initialize the extcon device. * tag 'extcon-fixes-for-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon: extcon: Fix error handling in extcon_dev_register extcon: Add stubs for extcon_register_notifier_all() functions
-rw-r--r--drivers/extcon/extcon.c1
-rw-r--r--include/linux/extcon.h23
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 0a6438cbb3f3..e7a9561a826d 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -1241,6 +1241,7 @@ int extcon_dev_register(struct extcon_dev *edev)
sizeof(*edev->nh), GFP_KERNEL);
if (!edev->nh) {
ret = -ENOMEM;
+ device_unregister(&edev->dev);
goto err_dev;
}
diff --git a/include/linux/extcon.h b/include/linux/extcon.h
index fd183fb9c20f..0c19010da77f 100644
--- a/include/linux/extcon.h
+++ b/include/linux/extcon.h
@@ -271,6 +271,29 @@ static inline void devm_extcon_unregister_notifier(struct device *dev,
struct extcon_dev *edev, unsigned int id,
struct notifier_block *nb) { }
+static inline int extcon_register_notifier_all(struct extcon_dev *edev,
+ struct notifier_block *nb)
+{
+ return 0;
+}
+
+static inline int extcon_unregister_notifier_all(struct extcon_dev *edev,
+ struct notifier_block *nb)
+{
+ return 0;
+}
+
+static inline int devm_extcon_register_notifier_all(struct device *dev,
+ struct extcon_dev *edev,
+ struct notifier_block *nb)
+{
+ return 0;
+}
+
+static inline void devm_extcon_unregister_notifier_all(struct device *dev,
+ struct extcon_dev *edev,
+ struct notifier_block *nb) { }
+
static inline struct extcon_dev *extcon_get_extcon_dev(const char *extcon_name)
{
return ERR_PTR(-ENODEV);