diff options
Diffstat (limited to 'drivers/net/wan/dscc4.c')
-rw-r--r-- | drivers/net/wan/dscc4.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c index dca024471455..50d2f9108dca 100644 --- a/drivers/net/wan/dscc4.c +++ b/drivers/net/wan/dscc4.c | |||
@@ -890,12 +890,11 @@ static int dscc4_found1(struct pci_dev *pdev, void __iomem *ioaddr) | |||
890 | struct dscc4_dev_priv *root; | 890 | struct dscc4_dev_priv *root; |
891 | int i, ret = -ENOMEM; | 891 | int i, ret = -ENOMEM; |
892 | 892 | ||
893 | root = kmalloc(dev_per_card*sizeof(*root), GFP_KERNEL); | 893 | root = kcalloc(dev_per_card, sizeof(*root), GFP_KERNEL); |
894 | if (!root) { | 894 | if (!root) { |
895 | printk(KERN_ERR "%s: can't allocate data\n", DRV_NAME); | 895 | printk(KERN_ERR "%s: can't allocate data\n", DRV_NAME); |
896 | goto err_out; | 896 | goto err_out; |
897 | } | 897 | } |
898 | memset(root, 0, dev_per_card*sizeof(*root)); | ||
899 | 898 | ||
900 | for (i = 0; i < dev_per_card; i++) { | 899 | for (i = 0; i < dev_per_card; i++) { |
901 | root[i].dev = alloc_hdlcdev(root + i); | 900 | root[i].dev = alloc_hdlcdev(root + i); |
@@ -903,12 +902,11 @@ static int dscc4_found1(struct pci_dev *pdev, void __iomem *ioaddr) | |||
903 | goto err_free_dev; | 902 | goto err_free_dev; |
904 | } | 903 | } |
905 | 904 | ||
906 | ppriv = kmalloc(sizeof(*ppriv), GFP_KERNEL); | 905 | ppriv = kzalloc(sizeof(*ppriv), GFP_KERNEL); |
907 | if (!ppriv) { | 906 | if (!ppriv) { |
908 | printk(KERN_ERR "%s: can't allocate private data\n", DRV_NAME); | 907 | printk(KERN_ERR "%s: can't allocate private data\n", DRV_NAME); |
909 | goto err_free_dev; | 908 | goto err_free_dev; |
910 | } | 909 | } |
911 | memset(ppriv, 0, sizeof(struct dscc4_pci_priv)); | ||
912 | 910 | ||
913 | ppriv->root = root; | 911 | ppriv->root = root; |
914 | spin_lock_init(&ppriv->lock); | 912 | spin_lock_init(&ppriv->lock); |