iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr4);
 
        /* Get BD buffer */
-       bd_buffer = dma_alloc_coherent(priv->dev,
-                                      (RX_BD_RING_LEN + TX_BD_RING_LEN) *
-                                      MAX_RX_BUF_LENGTH,
-                                      &bd_dma_addr, GFP_KERNEL);
+       bd_buffer = dma_zalloc_coherent(priv->dev,
+                                       (RX_BD_RING_LEN + TX_BD_RING_LEN) *
+                                       MAX_RX_BUF_LENGTH,
+                                       &bd_dma_addr, GFP_KERNEL);
 
        if (!bd_buffer) {
                dev_err(priv->dev, "Could not allocate buffer descriptors\n");
                goto free_tiptr;
        }
 
-       memset(bd_buffer, 0, (RX_BD_RING_LEN + TX_BD_RING_LEN)
-                       * MAX_RX_BUF_LENGTH);
-
        priv->rx_buffer = bd_buffer;
        priv->tx_buffer = bd_buffer + RX_BD_RING_LEN * MAX_RX_BUF_LENGTH;