aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Meyer <thomas@m3y3r.de>2011-12-02 07:36:13 -0500
committerDavid S. Miller <davem@davemloft.net>2011-12-04 01:32:06 -0500
commitc2e4e25afcc8ae1835a6100089f1f9fd3a362430 (patch)
tree91220e94fa972df95b7bb0277d019fdb9f3cdbf6
parentddf98e6d30a966dbd6e675c90e2caa5b9486e519 (diff)
sfc: Use kcalloc instead of kzalloc to allocate array
The advantage of kcalloc is, that will prevent integer overflows which could result from the multiplication of number of elements and size and it is also a bit nicer to read. The semantic patch that makes this change is available in https://lkml.org/lkml/2011/11/25/107 Signed-off-by: Thomas Meyer <thomas@m3y3r.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/sfc/rx.c2
-rw-r--r--drivers/net/ethernet/sfc/selftest.c4
-rw-r--r--drivers/net/ethernet/sfc/tx.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c
index 752d521c09b1..955b14956deb 100644
--- a/drivers/net/ethernet/sfc/rx.c
+++ b/drivers/net/ethernet/sfc/rx.c
@@ -669,7 +669,7 @@ int efx_probe_rx_queue(struct efx_rx_queue *rx_queue)
669 rx_queue->ptr_mask); 669 rx_queue->ptr_mask);
670 670
671 /* Allocate RX buffers */ 671 /* Allocate RX buffers */
672 rx_queue->buffer = kzalloc(entries * sizeof(*rx_queue->buffer), 672 rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer),
673 GFP_KERNEL); 673 GFP_KERNEL);
674 if (!rx_queue->buffer) 674 if (!rx_queue->buffer)
675 return -ENOMEM; 675 return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c
index 822f6c2a6a7c..52edd24fcde3 100644
--- a/drivers/net/ethernet/sfc/selftest.c
+++ b/drivers/net/ethernet/sfc/selftest.c
@@ -503,8 +503,8 @@ efx_test_loopback(struct efx_tx_queue *tx_queue,
503 /* Determine how many packets to send */ 503 /* Determine how many packets to send */
504 state->packet_count = efx->txq_entries / 3; 504 state->packet_count = efx->txq_entries / 3;
505 state->packet_count = min(1 << (i << 2), state->packet_count); 505 state->packet_count = min(1 << (i << 2), state->packet_count);
506 state->skbs = kzalloc(sizeof(state->skbs[0]) * 506 state->skbs = kcalloc(state->packet_count,
507 state->packet_count, GFP_KERNEL); 507 sizeof(state->skbs[0]), GFP_KERNEL);
508 if (!state->skbs) 508 if (!state->skbs)
509 return -ENOMEM; 509 return -ENOMEM;
510 state->flush = false; 510 state->flush = false;
diff --git a/drivers/net/ethernet/sfc/tx.c b/drivers/net/ethernet/sfc/tx.c
index e0e00b3d6a82..72f0fbc73b1a 100644
--- a/drivers/net/ethernet/sfc/tx.c
+++ b/drivers/net/ethernet/sfc/tx.c
@@ -479,7 +479,7 @@ int efx_probe_tx_queue(struct efx_tx_queue *tx_queue)
479 tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); 479 tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask);
480 480
481 /* Allocate software ring */ 481 /* Allocate software ring */
482 tx_queue->buffer = kzalloc(entries * sizeof(*tx_queue->buffer), 482 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
483 GFP_KERNEL); 483 GFP_KERNEL);
484 if (!tx_queue->buffer) 484 if (!tx_queue->buffer)
485 return -ENOMEM; 485 return -ENOMEM;