return -ENOMEM;
 
        for (i = 0; i < IPW_COMMAND_POOL_SIZE; i++) {
-               v = pci_alloc_consistent(priv->pci_dev,
-                                        sizeof(struct ipw2100_cmd_header), &p);
+               v = pci_zalloc_consistent(priv->pci_dev,
+                                         sizeof(struct ipw2100_cmd_header),
+                                         &p);
                if (!v) {
                        printk(KERN_ERR DRV_NAME ": "
                               "%s: PCI alloc failed for msg "
                        break;
                }
 
-               memset(v, 0, sizeof(struct ipw2100_cmd_header));
-
                priv->msg_buffers[i].type = COMMAND;
                priv->msg_buffers[i].info.c_struct.cmd =
                    (struct ipw2100_cmd_header *)v;
        IPW_DEBUG_INFO("enter\n");
 
        q->size = entries * sizeof(struct ipw2100_status);
-       q->drv =
-           (struct ipw2100_status *)pci_alloc_consistent(priv->pci_dev,
-                                                         q->size, &q->nic);
+       q->drv = pci_zalloc_consistent(priv->pci_dev, q->size, &q->nic);
        if (!q->drv) {
                IPW_DEBUG_WARNING("Can not allocate status queue.\n");
                return -ENOMEM;
        }
 
-       memset(q->drv, 0, q->size);
-
        IPW_DEBUG_INFO("exit\n");
 
        return 0;
 
        q->entries = entries;
        q->size = entries * sizeof(struct ipw2100_bd);
-       q->drv = pci_alloc_consistent(priv->pci_dev, q->size, &q->nic);
+       q->drv = pci_zalloc_consistent(priv->pci_dev, q->size, &q->nic);
        if (!q->drv) {
                IPW_DEBUG_INFO
                    ("can't allocate shared memory for buffer descriptors\n");
                return -ENOMEM;
        }
-       memset(q->drv, 0, q->size);
 
        IPW_DEBUG_INFO("exit\n");