mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
[media] dvb-core/en50221: use dvb_remove_device()
Commit da677fe143
("[media] dvb-core/en50221: use kref to manage
struct dvb_ca_private") moved the dvb_unregister_device() call to the
kref callback, but that left lots of stale device state visible to
userspace (e.g. in sysfs). By using dvb_remove_device() and
dvb_free_device() instead of dvb_unregister_device(), we can avoid
that.
Signed-off-by: Max Kellermann <max.kellermann@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
1f4ed6cd58
commit
4d5030b69b
1 changed files with 2 additions and 1 deletions
|
@ -171,7 +171,7 @@ static void dvb_ca_private_free(struct dvb_ca_private *ca)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
dvb_unregister_device(ca->dvbdev);
|
dvb_free_device(ca->dvbdev);
|
||||||
for (i = 0; i < ca->slot_count; i++)
|
for (i = 0; i < ca->slot_count; i++)
|
||||||
vfree(ca->slot_info[i].rx_buffer.data);
|
vfree(ca->slot_info[i].rx_buffer.data);
|
||||||
|
|
||||||
|
@ -1807,6 +1807,7 @@ void dvb_ca_en50221_release(struct dvb_ca_en50221 *pubca)
|
||||||
for (i = 0; i < ca->slot_count; i++) {
|
for (i = 0; i < ca->slot_count; i++) {
|
||||||
dvb_ca_en50221_slot_shutdown(ca, i);
|
dvb_ca_en50221_slot_shutdown(ca, i);
|
||||||
}
|
}
|
||||||
|
dvb_remove_device(ca->dvbdev);
|
||||||
dvb_ca_private_put(ca);
|
dvb_ca_private_put(ca);
|
||||||
pubca->private = NULL;
|
pubca->private = NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue