ibmvnic: Allocate zero-filled memory for sub crqs
authorNathan Fontenot <nfont@linux.vnet.ibm.com>
Wed, 19 Apr 2017 17:45:16 +0000 (13:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Apr 2017 17:33:54 +0000 (13:33 -0400)
Update the allocation of memory for the sub crq structs and their
associated pages to allocate zero-filled memory.

Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index ce8b14748832f47a9f7afec7c201e4b29245c7f5..221d65286329a523742b0b769de3b7ac8de0e8cd 100644 (file)
@@ -1360,12 +1360,12 @@ static struct ibmvnic_sub_crq_queue *init_sub_crq_queue(struct ibmvnic_adapter
        struct ibmvnic_sub_crq_queue *scrq;
        int rc;
 
-       scrq = kmalloc(sizeof(*scrq), GFP_ATOMIC);
+       scrq = kzalloc(sizeof(*scrq), GFP_ATOMIC);
        if (!scrq)
                return NULL;
 
-       scrq->msgs = (union sub_crq *)__get_free_pages(GFP_ATOMIC, 2);
-       memset(scrq->msgs, 0, 4 * PAGE_SIZE);
+       scrq->msgs =
+               (union sub_crq *)__get_free_pages(GFP_ATOMIC | __GFP_ZERO, 2);
        if (!scrq->msgs) {
                dev_warn(dev, "Couldn't allocate crq queue messages page\n");
                goto zero_page_failed;
@@ -1393,9 +1393,6 @@ static struct ibmvnic_sub_crq_queue *init_sub_crq_queue(struct ibmvnic_adapter
 
        scrq->adapter = adapter;
        scrq->size = 4 * PAGE_SIZE / sizeof(*scrq->msgs);
-       scrq->cur = 0;
-       atomic_set(&scrq->used, 0);
-       scrq->rx_skb_top = NULL;
        spin_lock_init(&scrq->lock);
 
        netdev_dbg(adapter->netdev,