Message ID | 20160623075324.21935-1-stephen.boyd@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On 2016년 06월 23일 16:53, Stephen Boyd wrote: > 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: Stephen Boyd <stephen.boyd@linaro.org> > --- > drivers/extcon/extcon.c | 4 ++++ > 1 file changed, 4 insertions(+) This patch has some merge conflict because the base branch is not on linux-next. But, Looks good to me. I applied it manually on extcon-next branch. Thanks, Chanwoo Choi
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index 21a123cadf78..161acb826334 100644 --- a/drivers/extcon/extcon.c +++ b/drivers/extcon/extcon.c @@ -586,6 +586,8 @@ int extcon_register_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_register(&edev->nh[idx], nb); @@ -611,6 +613,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);
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: Stephen Boyd <stephen.boyd@linaro.org> --- drivers/extcon/extcon.c | 4 ++++ 1 file changed, 4 insertions(+)