Commit a05f44c8 authored by Stephen Boyd's avatar Stephen Boyd Committed by Chanwoo Choi
Browse files

extcon: Check for incorrect connection type in notifier register



If we call extcon_register_notifier() with the wrong cable type,
it blows up with an oops instead of returning an error code.
Let's be nice and fail gracefully given that the consumer might
not know if the cable is supported by the extcon provider.

Signed-off-by: default avatarStephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
parent 70a7da45
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -415,6 +415,8 @@ int extcon_register_notifier(struct extcon_dev *edev, unsigned int id,

	if (edev) {
		idx = find_cable_index_by_id(edev, id);
		if (idx < 0)
			return idx;

		spin_lock_irqsave(&edev->lock, flags);
		ret = raw_notifier_chain_register(&edev->nh[idx], nb);
@@ -458,6 +460,8 @@ int extcon_unregister_notifier(struct extcon_dev *edev, unsigned int id,
		return -EINVAL;

	idx = find_cable_index_by_id(edev, id);
	if (idx < 0)
		return idx;

	spin_lock_irqsave(&edev->lock, flags);
	ret = raw_notifier_chain_unregister(&edev->nh[idx], nb);