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: Stephen Boyd <stephen.boyd@linaro.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
This commit is contained in:
		
							parent
							
								
									70a7da4587
								
							
						
					
					
						commit
						a05f44c89e
					
				| @ -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); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user