net: thunderx: check if memory allocation was successful
authorAleksey Makarov <aleksey.makarov@caviumnetworks.com>
Tue, 2 Jun 2015 18:00:26 +0000 (11:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jun 2015 19:49:33 +0000 (12:49 -0700)
This fixes a coccinelle warning:

coccinelle warnings: (new ones prefixed by >>)

>> drivers/net/ethernet/cavium/thunder/nicvf_queues.c:360:1-11: alloc
>> with no test, possible model on line 367

vim +360 drivers/net/ethernet/cavium/thunder/nicvf_queues.c

   354 err = nicvf_alloc_q_desc_mem(nic, &sq->dmem, q_len,
SND_QUEUE_DESC_SIZE,
   355      NICVF_SQ_BASE_ALIGN_BYTES);
   356 if (err)
   357 return err;
   358
   359 sq->desc = sq->dmem.base;
 > 360 sq->skbuff = kcalloc(q_len, sizeof(u64), GFP_ATOMIC);
   361 sq->head = 0;
   362 sq->tail = 0;
   363 atomic_set(&sq->free_cnt, q_len - 1);
   364 sq->thresh = SND_QUEUE_THRESH;
   365
   366 /* Preallocate memory for TSO segment's header */
 > 367 sq->tso_hdrs = dma_alloc_coherent(&nic->pdev->dev,
   368   q_len *
TSO_HEADER_SIZE,
   369   &sq->tso_hdrs_phys,
GFP_KERNEL);
   370 if (!sq->tso_hdrs)

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Aleksey Makarov <aleksey.makarov@caviumnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/thunder/nicvf_queues.c

index 8929029613ca141dec12e560987d5d16a5acd54d..2ed7d1b7f7e8bca0d97c7b6420ae9a5d1d8ca866 100644 (file)
@@ -357,6 +357,8 @@ static int nicvf_init_snd_queue(struct nicvf *nic,
 
        sq->desc = sq->dmem.base;
        sq->skbuff = kcalloc(q_len, sizeof(u64), GFP_ATOMIC);
+       if (!sq->skbuff)
+               return -ENOMEM;
        sq->head = 0;
        sq->tail = 0;
        atomic_set(&sq->free_cnt, q_len - 1);