drivers/net: Convert unbounded kzalloc calls to kcalloc

These changes may be slightly safer in some instances.

There are other kzalloc calls with a multiply, but those
calls are typically "small fixed #" * sizeof(some pointer)"
and those are not converted.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Joe Perches 2010-08-11 07:02:48 +00:00 коммит произвёл David S. Miller
Родитель 5a68d5ee00
Коммит baeb2ffab4
21 изменённых файлов: 37 добавлений и 38 удалений

Просмотреть файл

@ -1022,7 +1022,7 @@ static int cnic_alloc_bnx2x_context(struct cnic_dev *dev)
if (blks > cp->ethdev->ctx_tbl_len) if (blks > cp->ethdev->ctx_tbl_len)
return -ENOMEM; return -ENOMEM;
cp->ctx_arr = kzalloc(blks * sizeof(struct cnic_ctx), GFP_KERNEL); cp->ctx_arr = kcalloc(blks, sizeof(struct cnic_ctx), GFP_KERNEL);
if (cp->ctx_arr == NULL) if (cp->ctx_arr == NULL)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -180,7 +180,7 @@ static void ehea_update_firmware_handles(void)
num_portres * EHEA_NUM_PORTRES_FW_HANDLES; num_portres * EHEA_NUM_PORTRES_FW_HANDLES;
if (num_fw_handles) { if (num_fw_handles) {
arr = kzalloc(num_fw_handles * sizeof(*arr), GFP_KERNEL); arr = kcalloc(num_fw_handles, sizeof(*arr), GFP_KERNEL);
if (!arr) if (!arr)
goto out; /* Keep the existing array */ goto out; /* Keep the existing array */
} else } else
@ -265,7 +265,7 @@ static void ehea_update_bcmc_registrations(void)
} }
if (num_registrations) { if (num_registrations) {
arr = kzalloc(num_registrations * sizeof(*arr), GFP_ATOMIC); arr = kcalloc(num_registrations, sizeof(*arr), GFP_ATOMIC);
if (!arr) if (!arr)
goto out; /* Keep the existing array */ goto out; /* Keep the existing array */
} else } else

Просмотреть файл

@ -188,7 +188,7 @@ int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct,
buf->nbufs = (size + PAGE_SIZE - 1) / PAGE_SIZE; buf->nbufs = (size + PAGE_SIZE - 1) / PAGE_SIZE;
buf->npages = buf->nbufs; buf->npages = buf->nbufs;
buf->page_shift = PAGE_SHIFT; buf->page_shift = PAGE_SHIFT;
buf->page_list = kzalloc(buf->nbufs * sizeof *buf->page_list, buf->page_list = kcalloc(buf->nbufs, sizeof(*buf->page_list),
GFP_KERNEL); GFP_KERNEL);
if (!buf->page_list) if (!buf->page_list)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -322,7 +322,7 @@ int mlx4_en_create_rx_ring(struct mlx4_en_priv *priv,
ring->lro.ip_summed_aggr = CHECKSUM_UNNECESSARY; ring->lro.ip_summed_aggr = CHECKSUM_UNNECESSARY;
ring->lro.max_desc = mdev->profile.num_lro; ring->lro.max_desc = mdev->profile.num_lro;
ring->lro.max_aggr = MAX_SKB_FRAGS; ring->lro.max_aggr = MAX_SKB_FRAGS;
ring->lro.lro_arr = kzalloc(mdev->profile.num_lro * ring->lro.lro_arr = kcalloc(mdev->profile.num_lro,
sizeof(struct net_lro_desc), sizeof(struct net_lro_desc),
GFP_KERNEL); GFP_KERNEL);
if (!ring->lro.lro_arr) { if (!ring->lro.lro_arr) {

Просмотреть файл

@ -85,7 +85,7 @@ u64 mlx4_make_profile(struct mlx4_dev *dev,
struct mlx4_resource tmp; struct mlx4_resource tmp;
int i, j; int i, j;
profile = kzalloc(MLX4_RES_NUM * sizeof *profile, GFP_KERNEL); profile = kcalloc(MLX4_RES_NUM, sizeof(*profile), GFP_KERNEL);
if (!profile) if (!profile)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -3753,8 +3753,8 @@ static void myri10ge_probe_slices(struct myri10ge_priv *mgp)
* slices. We give up on MSI-X if we can only get a single * slices. We give up on MSI-X if we can only get a single
* vector. */ * vector. */
mgp->msix_vectors = kzalloc(mgp->num_slices * mgp->msix_vectors = kcalloc(mgp->num_slices, sizeof(*mgp->msix_vectors),
sizeof(*mgp->msix_vectors), GFP_KERNEL); GFP_KERNEL);
if (mgp->msix_vectors == NULL) if (mgp->msix_vectors == NULL)
goto disable_msix; goto disable_msix;
for (i = 0; i < mgp->num_slices; i++) { for (i = 0; i < mgp->num_slices; i++) {

Просмотреть файл

@ -4504,7 +4504,7 @@ static int niu_alloc_channels(struct niu *np)
np->dev->real_num_tx_queues = np->num_tx_rings; np->dev->real_num_tx_queues = np->num_tx_rings;
np->rx_rings = kzalloc(np->num_rx_rings * sizeof(struct rx_ring_info), np->rx_rings = kcalloc(np->num_rx_rings, sizeof(struct rx_ring_info),
GFP_KERNEL); GFP_KERNEL);
err = -ENOMEM; err = -ENOMEM;
if (!np->rx_rings) if (!np->rx_rings)
@ -4538,7 +4538,7 @@ static int niu_alloc_channels(struct niu *np)
return err; return err;
} }
np->tx_rings = kzalloc(np->num_tx_rings * sizeof(struct tx_ring_info), np->tx_rings = kcalloc(np->num_tx_rings, sizeof(struct tx_ring_info),
GFP_KERNEL); GFP_KERNEL);
err = -ENOMEM; err = -ENOMEM;
if (!np->tx_rings) if (!np->tx_rings)

Просмотреть файл

@ -2159,8 +2159,8 @@ start:
/* Alarm MSIX Vectors count */ /* Alarm MSIX Vectors count */
vdev->intr_cnt++; vdev->intr_cnt++;
vdev->entries = kzalloc(vdev->intr_cnt * sizeof(struct msix_entry), vdev->entries = kcalloc(vdev->intr_cnt, sizeof(struct msix_entry),
GFP_KERNEL); GFP_KERNEL);
if (!vdev->entries) { if (!vdev->entries) {
vxge_debug_init(VXGE_ERR, vxge_debug_init(VXGE_ERR,
"%s: memory allocation failed", "%s: memory allocation failed",
@ -2169,9 +2169,9 @@ start:
goto alloc_entries_failed; goto alloc_entries_failed;
} }
vdev->vxge_entries = vdev->vxge_entries = kcalloc(vdev->intr_cnt,
kzalloc(vdev->intr_cnt * sizeof(struct vxge_msix_entry), sizeof(struct vxge_msix_entry),
GFP_KERNEL); GFP_KERNEL);
if (!vdev->vxge_entries) { if (!vdev->vxge_entries) {
vxge_debug_init(VXGE_ERR, "%s: memory allocation failed", vxge_debug_init(VXGE_ERR, "%s: memory allocation failed",
VXGE_DRIVER_NAME); VXGE_DRIVER_NAME);

Просмотреть файл

@ -2723,9 +2723,8 @@ static int airo_networks_allocate(struct airo_info *ai)
if (ai->networks) if (ai->networks)
return 0; return 0;
ai->networks = ai->networks = kcalloc(AIRO_MAX_NETWORK_COUNT, sizeof(BSSListElement),
kzalloc(AIRO_MAX_NETWORK_COUNT * sizeof(BSSListElement), GFP_KERNEL);
GFP_KERNEL);
if (!ai->networks) { if (!ai->networks) {
airo_print_warn("", "Out of memory allocating beacons"); airo_print_warn("", "Out of memory allocating beacons");
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -1182,7 +1182,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max,
len = bw << 1; len = bw << 1;
} }
samples = kzalloc(len * sizeof(struct b43_c32), GFP_KERNEL); samples = kcalloc(len, sizeof(struct b43_c32), GFP_KERNEL);
if (!samples) { if (!samples) {
b43err(dev->wl, "allocation for samples generation failed\n"); b43err(dev->wl, "allocation for samples generation failed\n");
return 0; return 0;

Просмотреть файл

@ -1921,9 +1921,9 @@ static int ipw2100_net_init(struct net_device *dev)
bg_band->band = IEEE80211_BAND_2GHZ; bg_band->band = IEEE80211_BAND_2GHZ;
bg_band->n_channels = geo->bg_channels; bg_band->n_channels = geo->bg_channels;
bg_band->channels = bg_band->channels = kcalloc(geo->bg_channels,
kzalloc(geo->bg_channels * sizeof(struct ieee80211_channel),
sizeof(struct ieee80211_channel), GFP_KERNEL); GFP_KERNEL);
if (!bg_band->channels) { if (!bg_band->channels) {
ipw2100_down(priv); ipw2100_down(priv);
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -11467,9 +11467,9 @@ static int ipw_net_init(struct net_device *dev)
bg_band->band = IEEE80211_BAND_2GHZ; bg_band->band = IEEE80211_BAND_2GHZ;
bg_band->n_channels = geo->bg_channels; bg_band->n_channels = geo->bg_channels;
bg_band->channels = bg_band->channels = kcalloc(geo->bg_channels,
kzalloc(geo->bg_channels * sizeof(struct ieee80211_channel),
sizeof(struct ieee80211_channel), GFP_KERNEL); GFP_KERNEL);
/* translate geo->bg to bg_band.channels */ /* translate geo->bg to bg_band.channels */
for (i = 0; i < geo->bg_channels; i++) { for (i = 0; i < geo->bg_channels; i++) {
bg_band->channels[i].band = IEEE80211_BAND_2GHZ; bg_band->channels[i].band = IEEE80211_BAND_2GHZ;
@ -11502,9 +11502,9 @@ static int ipw_net_init(struct net_device *dev)
a_band->band = IEEE80211_BAND_5GHZ; a_band->band = IEEE80211_BAND_5GHZ;
a_band->n_channels = geo->a_channels; a_band->n_channels = geo->a_channels;
a_band->channels = a_band->channels = kcalloc(geo->a_channels,
kzalloc(geo->a_channels * sizeof(struct ieee80211_channel),
sizeof(struct ieee80211_channel), GFP_KERNEL); GFP_KERNEL);
/* translate geo->bg to a_band.channels */ /* translate geo->bg to a_band.channels */
for (i = 0; i < geo->a_channels; i++) { for (i = 0; i < geo->a_channels; i++) {
a_band->channels[i].band = IEEE80211_BAND_2GHZ; a_band->channels[i].band = IEEE80211_BAND_2GHZ;

Просмотреть файл

@ -1481,7 +1481,7 @@ static int rt2400pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -1795,7 +1795,7 @@ static int rt2500pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -1698,7 +1698,7 @@ static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -2865,7 +2865,7 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -333,7 +333,7 @@ static ssize_t rt2x00debug_read_queue_stats(struct file *file,
if (*offset) if (*offset)
return 0; return 0;
data = kzalloc(lines * MAX_LINE_LENGTH, GFP_KERNEL); data = kcalloc(lines, MAX_LINE_LENGTH, GFP_KERNEL);
if (!data) if (!data)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -755,7 +755,7 @@ static int rt2x00queue_alloc_entries(struct data_queue *queue,
* Allocate all queue entries. * Allocate all queue entries.
*/ */
entry_size = sizeof(*entries) + qdesc->priv_size; entry_size = sizeof(*entries) + qdesc->priv_size;
entries = kzalloc(queue->limit * entry_size, GFP_KERNEL); entries = kcalloc(queue->limit, entry_size, GFP_KERNEL);
if (!entries) if (!entries)
return -ENOMEM; return -ENOMEM;
@ -891,7 +891,7 @@ int rt2x00queue_allocate(struct rt2x00_dev *rt2x00dev)
*/ */
rt2x00dev->data_queues = 2 + rt2x00dev->ops->tx_queues + req_atim; rt2x00dev->data_queues = 2 + rt2x00dev->ops->tx_queues + req_atim;
queue = kzalloc(rt2x00dev->data_queues * sizeof(*queue), GFP_KERNEL); queue = kcalloc(rt2x00dev->data_queues, sizeof(*queue), GFP_KERNEL);
if (!queue) { if (!queue) {
ERROR(rt2x00dev, "Queue allocation failed.\n"); ERROR(rt2x00dev, "Queue allocation failed.\n");
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -2654,7 +2654,7 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -2084,7 +2084,7 @@ static int rt73usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/* /*
* Create channel information array * Create channel information array
*/ */
info = kzalloc(spec->num_channels * sizeof(*info), GFP_KERNEL); info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;

Просмотреть файл

@ -248,7 +248,7 @@ int wl1271_scan(struct wl1271 *wl, const u8 *ssid, size_t ssid_len,
wl->scan.req = req; wl->scan.req = req;
wl->scan.scanned_ch = kzalloc(req->n_channels * wl->scan.scanned_ch = kcalloc(req->n_channels,
sizeof(*wl->scan.scanned_ch), sizeof(*wl->scan.scanned_ch),
GFP_KERNEL); GFP_KERNEL);
wl1271_scan_stm(wl); wl1271_scan_stm(wl);