OSDN Git Service

liquidio: lowmem: init allocated memory to 0
authorRick Farrington <ricardo.farrington@cavium.com>
Tue, 18 Jul 2017 00:50:47 +0000 (17:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Jul 2017 20:24:46 +0000 (13:24 -0700)
Fix GPF in octeon_init_droq(); zero the allocated block 'recv_buf_list'.
This prevents a GPF trying to access an invalid 'recv_buf_list[i]' entry
in octeon_droq_destroy_ring_buffers() if init didn't alloc all entries.

Signed-off-by: Rick Farrington <ricardo.farrington@cavium.com>
Signed-off-by: Satanand Burla <satananda.burla@cavium.com>
Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/octeon_droq.c

index 2e190de..6456683 100644 (file)
@@ -275,12 +275,12 @@ int octeon_init_droq(struct octeon_device *oct,
                droq->max_count);
 
        droq->recv_buf_list = (struct octeon_recv_buffer *)
-                             vmalloc_node(droq->max_count *
+                             vzalloc_node(droq->max_count *
                                                OCT_DROQ_RECVBUF_SIZE,
                                                numa_node);
        if (!droq->recv_buf_list)
                droq->recv_buf_list = (struct octeon_recv_buffer *)
-                                     vmalloc(droq->max_count *
+                                     vzalloc(droq->max_count *
                                                OCT_DROQ_RECVBUF_SIZE);
        if (!droq->recv_buf_list) {
                dev_err(&oct->pci_dev->dev, "Output queue recv buf list alloc failed\n");