diff options
Diffstat (limited to 'drivers/media/dvb/dvb-core/dvb_ca_en50221.c')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c index 4bb779aeff6..00347a75068 100644 --- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c +++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | |||
@@ -1649,21 +1649,17 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, | |||
1649 | return -EINVAL; | 1649 | return -EINVAL; |
1650 | 1650 | ||
1651 | /* initialise the system data */ | 1651 | /* initialise the system data */ |
1652 | if ((ca = | 1652 | if ((ca = kzalloc(sizeof(struct dvb_ca_private), GFP_KERNEL)) == NULL) { |
1653 | (struct dvb_ca_private *) kmalloc(sizeof(struct dvb_ca_private), | ||
1654 | GFP_KERNEL)) == NULL) { | ||
1655 | ret = -ENOMEM; | 1653 | ret = -ENOMEM; |
1656 | goto error; | 1654 | goto error; |
1657 | } | 1655 | } |
1658 | memset(ca, 0, sizeof(struct dvb_ca_private)); | ||
1659 | ca->pub = pubca; | 1656 | ca->pub = pubca; |
1660 | ca->flags = flags; | 1657 | ca->flags = flags; |
1661 | ca->slot_count = slot_count; | 1658 | ca->slot_count = slot_count; |
1662 | if ((ca->slot_info = kmalloc(sizeof(struct dvb_ca_slot) * slot_count, GFP_KERNEL)) == NULL) { | 1659 | if ((ca->slot_info = kcalloc(slot_count, sizeof(struct dvb_ca_slot), GFP_KERNEL)) == NULL) { |
1663 | ret = -ENOMEM; | 1660 | ret = -ENOMEM; |
1664 | goto error; | 1661 | goto error; |
1665 | } | 1662 | } |
1666 | memset(ca->slot_info, 0, sizeof(struct dvb_ca_slot) * slot_count); | ||
1667 | init_waitqueue_head(&ca->wait_queue); | 1663 | init_waitqueue_head(&ca->wait_queue); |
1668 | ca->thread_pid = 0; | 1664 | ca->thread_pid = 0; |
1669 | init_waitqueue_head(&ca->thread_queue); | 1665 | init_waitqueue_head(&ca->thread_queue); |