[media] v4l: async: Make it safe to unregister unregistered notifier
Calling v4l2_async_notifier_unregister() on a notifier that hasn't been registered leads to a crash. To simplify drivers, make it safe to unregister a notifier that has not been registered. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
Родитель
3f359a7cb1
Коммит
8e3fbfee23
|
@ -192,6 +192,9 @@ void v4l2_async_notifier_unregister(struct v4l2_async_notifier *notifier)
|
||||||
struct device *dev[n_subdev];
|
struct device *dev[n_subdev];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
if (!notifier->v4l2_dev)
|
||||||
|
return;
|
||||||
|
|
||||||
mutex_lock(&list_lock);
|
mutex_lock(&list_lock);
|
||||||
|
|
||||||
list_del(¬ifier->list);
|
list_del(¬ifier->list);
|
||||||
|
@ -225,6 +228,9 @@ void v4l2_async_notifier_unregister(struct v4l2_async_notifier *notifier)
|
||||||
}
|
}
|
||||||
put_device(d);
|
put_device(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notifier->v4l2_dev = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't care about the waiting list, it is initialised and populated
|
* Don't care about the waiting list, it is initialised and populated
|
||||||
* upon notifier registration.
|
* upon notifier registration.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче