diff options
Diffstat (limited to 'drivers/media/common/saa7146_core.c')
-rw-r--r-- | drivers/media/common/saa7146_core.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c index 2899d34e5f7..04c1938b9c9 100644 --- a/drivers/media/common/saa7146_core.c +++ b/drivers/media/common/saa7146_core.c | |||
@@ -109,10 +109,9 @@ static struct scatterlist* vmalloc_to_sg(unsigned char *virt, int nr_pages) | |||
109 | struct page *pg; | 109 | struct page *pg; |
110 | int i; | 110 | int i; |
111 | 111 | ||
112 | sglist = kmalloc(sizeof(struct scatterlist)*nr_pages, GFP_KERNEL); | 112 | sglist = kcalloc(nr_pages, sizeof(struct scatterlist), GFP_KERNEL); |
113 | if (NULL == sglist) | 113 | if (NULL == sglist) |
114 | return NULL; | 114 | return NULL; |
115 | memset(sglist,0,sizeof(struct scatterlist)*nr_pages); | ||
116 | for (i = 0; i < nr_pages; i++, virt += PAGE_SIZE) { | 115 | for (i = 0; i < nr_pages; i++, virt += PAGE_SIZE) { |
117 | pg = vmalloc_to_page(virt); | 116 | pg = vmalloc_to_page(virt); |
118 | if (NULL == pg) | 117 | if (NULL == pg) |
@@ -306,15 +305,13 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent | |||
306 | struct saa7146_dev *dev; | 305 | struct saa7146_dev *dev; |
307 | int err = -ENOMEM; | 306 | int err = -ENOMEM; |
308 | 307 | ||
309 | dev = kmalloc(sizeof(struct saa7146_dev), GFP_KERNEL); | 308 | /* clear out mem for sure */ |
309 | dev = kzalloc(sizeof(struct saa7146_dev), GFP_KERNEL); | ||
310 | if (!dev) { | 310 | if (!dev) { |
311 | ERR(("out of memory.\n")); | 311 | ERR(("out of memory.\n")); |
312 | goto out; | 312 | goto out; |
313 | } | 313 | } |
314 | 314 | ||
315 | /* clear out mem for sure */ | ||
316 | memset(dev, 0x0, sizeof(struct saa7146_dev)); | ||
317 | |||
318 | DEB_EE(("pci:%p\n",pci)); | 315 | DEB_EE(("pci:%p\n",pci)); |
319 | 316 | ||
320 | err = pci_enable_device(pci); | 317 | err = pci_enable_device(pci); |