mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
treewide: kmalloc() -> kmalloc_array()
The kmalloc() function has a 2-factor argument form, kmalloc_array(). This
patch replaces cases of:
kmalloc(a * b, gfp)
with:
kmalloc_array(a * b, gfp)
as well as handling cases of:
kmalloc(a * b * c, gfp)
with:
kmalloc(array3_size(a, b, c), gfp)
as it's slightly less ugly than:
kmalloc_array(array_size(a, b), c, gfp)
This does, however, attempt to ignore constant size factors like:
kmalloc(4 * 1024, gfp)
though any constants defined via macros get caught up in the conversion.
Any factors with a sizeof() of "unsigned char", "char", and "u8" were
dropped, since they're redundant.
The tools/ directory was manually excluded, since it has its own
implementation of kmalloc().
The Coccinelle script used for this was:
// Fix redundant parens around sizeof().
@@
type TYPE;
expression THING, E;
@@
(
kmalloc(
- (sizeof(TYPE)) * E
+ sizeof(TYPE) * E
, ...)
|
kmalloc(
- (sizeof(THING)) * E
+ sizeof(THING) * E
, ...)
)
// Drop single-byte sizes and redundant parens.
@@
expression COUNT;
typedef u8;
typedef __u8;
@@
(
kmalloc(
- sizeof(u8) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(__u8) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(char) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(unsigned char) * (COUNT)
+ COUNT
, ...)
|
kmalloc(
- sizeof(u8) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(__u8) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(char) * COUNT
+ COUNT
, ...)
|
kmalloc(
- sizeof(unsigned char) * COUNT
+ COUNT
, ...)
)
// 2-factor product with sizeof(type/expression) and identifier or constant.
@@
type TYPE;
expression THING;
identifier COUNT_ID;
constant COUNT_CONST;
@@
(
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (COUNT_ID)
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * COUNT_ID
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (COUNT_CONST)
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * COUNT_CONST
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (COUNT_ID)
+ COUNT_ID, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * COUNT_ID
+ COUNT_ID, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (COUNT_CONST)
+ COUNT_CONST, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * COUNT_CONST
+ COUNT_CONST, sizeof(THING)
, ...)
)
// 2-factor product, only identifiers.
@@
identifier SIZE, COUNT;
@@
- kmalloc
+ kmalloc_array
(
- SIZE * COUNT
+ COUNT, SIZE
, ...)
// 3-factor product with 1 sizeof(type) or sizeof(expression), with
// redundant parens removed.
@@
expression THING;
identifier STRIDE, COUNT;
type TYPE;
@@
(
kmalloc(
- sizeof(TYPE) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(TYPE) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kmalloc(
- sizeof(THING) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kmalloc(
- sizeof(THING) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
)
// 3-factor product with 2 sizeof(variable), with redundant parens removed.
@@
expression THING1, THING2;
identifier COUNT;
type TYPE1, TYPE2;
@@
(
kmalloc(
- sizeof(TYPE1) * sizeof(TYPE2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kmalloc(
- sizeof(THING1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(THING1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
|
kmalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
)
// 3-factor product, only identifiers, with redundant parens removed.
@@
identifier STRIDE, SIZE, COUNT;
@@
(
kmalloc(
- (COUNT) * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- (COUNT) * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kmalloc(
- COUNT * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
)
// Any remaining multi-factor products, first at least 3-factor products,
// when they're not all constants...
@@
expression E1, E2, E3;
constant C1, C2, C3;
@@
(
kmalloc(C1 * C2 * C3, ...)
|
kmalloc(
- (E1) * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- (E1) * (E2) * E3
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- (E1) * (E2) * (E3)
+ array3_size(E1, E2, E3)
, ...)
|
kmalloc(
- E1 * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
)
// And then all remaining 2 factors products when they're not all constants,
// keeping sizeof() as the second factor argument.
@@
expression THING, E1, E2;
type TYPE;
constant C1, C2, C3;
@@
(
kmalloc(sizeof(THING) * C2, ...)
|
kmalloc(sizeof(TYPE) * C2, ...)
|
kmalloc(C1 * C2 * C3, ...)
|
kmalloc(C1 * C2, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * (E2)
+ E2, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(TYPE) * E2
+ E2, sizeof(TYPE)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * (E2)
+ E2, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- sizeof(THING) * E2
+ E2, sizeof(THING)
, ...)
|
- kmalloc
+ kmalloc_array
(
- (E1) * E2
+ E1, E2
, ...)
|
- kmalloc
+ kmalloc_array
(
- (E1) * (E2)
+ E1, E2
, ...)
|
- kmalloc
+ kmalloc_array
(
- E1 * E2
+ E1, E2
, ...)
)
Signed-off-by: Kees Cook <[email protected]>
This commit is contained in:
parent
1c542f38ab
commit
6da2ec5605
377 changed files with 1014 additions and 748 deletions
|
|
@ -1855,8 +1855,8 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
|
|||
|
||||
rt = &id->route;
|
||||
rt->num_paths = ib_event->param.req_rcvd.alternate_path ? 2 : 1;
|
||||
rt->path_rec = kmalloc(sizeof *rt->path_rec * rt->num_paths,
|
||||
GFP_KERNEL);
|
||||
rt->path_rec = kmalloc_array(rt->num_paths, sizeof(*rt->path_rec),
|
||||
GFP_KERNEL);
|
||||
if (!rt->path_rec)
|
||||
goto err;
|
||||
|
||||
|
|
|
|||
|
|
@ -235,8 +235,9 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
|
|||
|
||||
if (params->cache) {
|
||||
pool->cache_bucket =
|
||||
kmalloc(IB_FMR_HASH_SIZE * sizeof *pool->cache_bucket,
|
||||
GFP_KERNEL);
|
||||
kmalloc_array(IB_FMR_HASH_SIZE,
|
||||
sizeof(*pool->cache_bucket),
|
||||
GFP_KERNEL);
|
||||
if (!pool->cache_bucket) {
|
||||
ret = -ENOMEM;
|
||||
goto out_free_pool;
|
||||
|
|
|
|||
|
|
@ -92,8 +92,8 @@ int c4iw_id_table_alloc(struct c4iw_id_table *alloc, u32 start, u32 num,
|
|||
alloc->last = 0;
|
||||
alloc->max = num;
|
||||
spin_lock_init(&alloc->lock);
|
||||
alloc->table = kmalloc(BITS_TO_LONGS(num) * sizeof(long),
|
||||
GFP_KERNEL);
|
||||
alloc->table = kmalloc_array(BITS_TO_LONGS(num), sizeof(long),
|
||||
GFP_KERNEL);
|
||||
if (!alloc->table)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -302,7 +302,8 @@ static int mlx4_ib_add_gid(const union ib_gid *gid,
|
|||
ctx->refcount++;
|
||||
}
|
||||
if (!ret && hw_update) {
|
||||
gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC);
|
||||
gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
|
||||
GFP_ATOMIC);
|
||||
if (!gids) {
|
||||
ret = -ENOMEM;
|
||||
} else {
|
||||
|
|
@ -355,7 +356,8 @@ static int mlx4_ib_del_gid(const struct ib_gid_attr *attr, void **context)
|
|||
if (!ret && hw_update) {
|
||||
int i;
|
||||
|
||||
gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC);
|
||||
gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
|
||||
GFP_ATOMIC);
|
||||
if (!gids) {
|
||||
ret = -ENOMEM;
|
||||
} else {
|
||||
|
|
@ -2872,9 +2874,9 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
|
|||
goto err_counter;
|
||||
|
||||
ibdev->ib_uc_qpns_bitmap =
|
||||
kmalloc(BITS_TO_LONGS(ibdev->steer_qpn_count) *
|
||||
sizeof(long),
|
||||
GFP_KERNEL);
|
||||
kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count),
|
||||
sizeof(long),
|
||||
GFP_KERNEL);
|
||||
if (!ibdev->ib_uc_qpns_bitmap)
|
||||
goto err_steer_qp_release;
|
||||
|
||||
|
|
|
|||
|
|
@ -573,8 +573,8 @@ static int alloc_proxy_bufs(struct ib_device *dev, struct mlx4_ib_qp *qp)
|
|||
int i;
|
||||
|
||||
qp->sqp_proxy_rcv =
|
||||
kmalloc(sizeof (struct mlx4_ib_buf) * qp->rq.wqe_cnt,
|
||||
GFP_KERNEL);
|
||||
kmalloc_array(qp->rq.wqe_cnt, sizeof(struct mlx4_ib_buf),
|
||||
GFP_KERNEL);
|
||||
if (!qp->sqp_proxy_rcv)
|
||||
return -ENOMEM;
|
||||
for (i = 0; i < qp->rq.wqe_cnt; i++) {
|
||||
|
|
|
|||
|
|
@ -90,8 +90,8 @@ int mthca_alloc_init(struct mthca_alloc *alloc, u32 num, u32 mask,
|
|||
alloc->max = num;
|
||||
alloc->mask = mask;
|
||||
spin_lock_init(&alloc->lock);
|
||||
alloc->table = kmalloc(BITS_TO_LONGS(num) * sizeof (long),
|
||||
GFP_KERNEL);
|
||||
alloc->table = kmalloc_array(BITS_TO_LONGS(num), sizeof(long),
|
||||
GFP_KERNEL);
|
||||
if (!alloc->table)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -162,7 +162,8 @@ int mthca_array_init(struct mthca_array *array, int nent)
|
|||
int npage = (nent * sizeof (void *) + PAGE_SIZE - 1) / PAGE_SIZE;
|
||||
int i;
|
||||
|
||||
array->page_list = kmalloc(npage * sizeof *array->page_list, GFP_KERNEL);
|
||||
array->page_list = kmalloc_array(npage, sizeof(*array->page_list),
|
||||
GFP_KERNEL);
|
||||
if (!array->page_list)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -220,7 +221,8 @@ int mthca_buf_alloc(struct mthca_dev *dev, int size, int max_direct,
|
|||
npages *= 2;
|
||||
}
|
||||
|
||||
dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL);
|
||||
dma_list = kmalloc_array(npages, sizeof(*dma_list),
|
||||
GFP_KERNEL);
|
||||
if (!dma_list)
|
||||
goto err_free;
|
||||
|
||||
|
|
@ -231,12 +233,14 @@ int mthca_buf_alloc(struct mthca_dev *dev, int size, int max_direct,
|
|||
npages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
|
||||
shift = PAGE_SHIFT;
|
||||
|
||||
dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL);
|
||||
dma_list = kmalloc_array(npages, sizeof(*dma_list),
|
||||
GFP_KERNEL);
|
||||
if (!dma_list)
|
||||
return -ENOMEM;
|
||||
|
||||
buf->page_list = kmalloc(npages * sizeof *buf->page_list,
|
||||
GFP_KERNEL);
|
||||
buf->page_list = kmalloc_array(npages,
|
||||
sizeof(*buf->page_list),
|
||||
GFP_KERNEL);
|
||||
if (!buf->page_list)
|
||||
goto err_out;
|
||||
|
||||
|
|
|
|||
|
|
@ -565,9 +565,9 @@ int mthca_cmd_use_events(struct mthca_dev *dev)
|
|||
{
|
||||
int i;
|
||||
|
||||
dev->cmd.context = kmalloc(dev->cmd.max_cmds *
|
||||
sizeof (struct mthca_cmd_context),
|
||||
GFP_KERNEL);
|
||||
dev->cmd.context = kmalloc_array(dev->cmd.max_cmds,
|
||||
sizeof(struct mthca_cmd_context),
|
||||
GFP_KERNEL);
|
||||
if (!dev->cmd.context)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -479,15 +479,15 @@ static int mthca_create_eq(struct mthca_dev *dev,
|
|||
eq->nent = roundup_pow_of_two(max(nent, 2));
|
||||
npages = ALIGN(eq->nent * MTHCA_EQ_ENTRY_SIZE, PAGE_SIZE) / PAGE_SIZE;
|
||||
|
||||
eq->page_list = kmalloc(npages * sizeof *eq->page_list,
|
||||
GFP_KERNEL);
|
||||
eq->page_list = kmalloc_array(npages, sizeof(*eq->page_list),
|
||||
GFP_KERNEL);
|
||||
if (!eq->page_list)
|
||||
goto err_out;
|
||||
|
||||
for (i = 0; i < npages; ++i)
|
||||
eq->page_list[i].buf = NULL;
|
||||
|
||||
dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL);
|
||||
dma_list = kmalloc_array(npages, sizeof(*dma_list), GFP_KERNEL);
|
||||
if (!dma_list)
|
||||
goto err_out_free;
|
||||
|
||||
|
|
|
|||
|
|
@ -712,9 +712,9 @@ int mthca_init_db_tab(struct mthca_dev *dev)
|
|||
dev->db_tab->max_group1 = 0;
|
||||
dev->db_tab->min_group2 = dev->db_tab->npages - 1;
|
||||
|
||||
dev->db_tab->page = kmalloc(dev->db_tab->npages *
|
||||
sizeof *dev->db_tab->page,
|
||||
GFP_KERNEL);
|
||||
dev->db_tab->page = kmalloc_array(dev->db_tab->npages,
|
||||
sizeof(*dev->db_tab->page),
|
||||
GFP_KERNEL);
|
||||
if (!dev->db_tab->page) {
|
||||
kfree(dev->db_tab);
|
||||
return -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
|
|||
|
||||
for (i = 0; i <= buddy->max_order; ++i) {
|
||||
s = BITS_TO_LONGS(1 << (buddy->max_order - i));
|
||||
buddy->bits[i] = kmalloc(s * sizeof (long), GFP_KERNEL);
|
||||
buddy->bits[i] = kmalloc_array(s, sizeof(long), GFP_KERNEL);
|
||||
if (!buddy->bits[i])
|
||||
goto err_out_free;
|
||||
bitmap_zero(buddy->bits[i],
|
||||
|
|
|
|||
|
|
@ -1054,8 +1054,8 @@ static int mthca_alloc_wqe_buf(struct mthca_dev *dev,
|
|||
size = PAGE_ALIGN(qp->send_wqe_offset +
|
||||
(qp->sq.max << qp->sq.wqe_shift));
|
||||
|
||||
qp->wrid = kmalloc((qp->rq.max + qp->sq.max) * sizeof (u64),
|
||||
GFP_KERNEL);
|
||||
qp->wrid = kmalloc_array(qp->rq.max + qp->sq.max, sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
if (!qp->wrid)
|
||||
goto err_out;
|
||||
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ static int mthca_alloc_srq_buf(struct mthca_dev *dev, struct mthca_pd *pd,
|
|||
if (pd->ibpd.uobject)
|
||||
return 0;
|
||||
|
||||
srq->wrid = kmalloc(srq->max * sizeof (u64), GFP_KERNEL);
|
||||
srq->wrid = kmalloc_array(srq->max, sizeof(u64), GFP_KERNEL);
|
||||
if (!srq->wrid)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -904,7 +904,7 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev)
|
|||
int i;
|
||||
struct netdev_hw_addr *ha;
|
||||
|
||||
addrs = kmalloc(ETH_ALEN * mc_count, GFP_ATOMIC);
|
||||
addrs = kmalloc_array(mc_count, ETH_ALEN, GFP_ATOMIC);
|
||||
if (!addrs) {
|
||||
set_allmulti(nesdev, nic_active_bit);
|
||||
goto unlock;
|
||||
|
|
|
|||
|
|
@ -1873,7 +1873,8 @@ struct ib_srq *ocrdma_create_srq(struct ib_pd *ibpd,
|
|||
srq->bit_fields_len = (srq->rq.max_cnt / 32) +
|
||||
(srq->rq.max_cnt % 32 ? 1 : 0);
|
||||
srq->idx_bit_fields =
|
||||
kmalloc(srq->bit_fields_len * sizeof(u32), GFP_KERNEL);
|
||||
kmalloc_array(srq->bit_fields_len, sizeof(u32),
|
||||
GFP_KERNEL);
|
||||
if (srq->idx_bit_fields == NULL)
|
||||
goto arm_err;
|
||||
memset(srq->idx_bit_fields, 0xff,
|
||||
|
|
|
|||
|
|
@ -2496,15 +2496,16 @@ static void init_6120_cntrnames(struct qib_devdata *dd)
|
|||
dd->cspec->cntrnamelen = sizeof(cntr6120names) - 1;
|
||||
else
|
||||
dd->cspec->cntrnamelen = 1 + s - cntr6120names;
|
||||
dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
|
||||
for (i = 0, s = (char *)portcntr6120names; s; i++)
|
||||
s = strchr(s + 1, '\n');
|
||||
dd->cspec->nportcntrs = i - 1;
|
||||
dd->cspec->portcntrnamelen = sizeof(portcntr6120names) - 1;
|
||||
dd->cspec->portcntrs = kmalloc(dd->cspec->nportcntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->cspec->portcntrs = kmalloc_array(dd->cspec->nportcntrs,
|
||||
sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
}
|
||||
|
||||
static u32 qib_read_6120cntrs(struct qib_devdata *dd, loff_t pos, char **namep,
|
||||
|
|
|
|||
|
|
@ -3147,15 +3147,16 @@ static void init_7220_cntrnames(struct qib_devdata *dd)
|
|||
dd->cspec->cntrnamelen = sizeof(cntr7220names) - 1;
|
||||
else
|
||||
dd->cspec->cntrnamelen = 1 + s - cntr7220names;
|
||||
dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
|
||||
for (i = 0, s = (char *)portcntr7220names; s; i++)
|
||||
s = strchr(s + 1, '\n');
|
||||
dd->cspec->nportcntrs = i - 1;
|
||||
dd->cspec->portcntrnamelen = sizeof(portcntr7220names) - 1;
|
||||
dd->cspec->portcntrs = kmalloc(dd->cspec->nportcntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->cspec->portcntrs = kmalloc_array(dd->cspec->nportcntrs,
|
||||
sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
}
|
||||
|
||||
static u32 qib_read_7220cntrs(struct qib_devdata *dd, loff_t pos, char **namep,
|
||||
|
|
|
|||
|
|
@ -3648,8 +3648,9 @@ static int qib_do_7322_reset(struct qib_devdata *dd)
|
|||
|
||||
if (msix_entries) {
|
||||
/* can be up to 512 bytes, too big for stack */
|
||||
msix_vecsave = kmalloc(2 * dd->cspec->num_msix_entries *
|
||||
sizeof(u64), GFP_KERNEL);
|
||||
msix_vecsave = kmalloc_array(2 * dd->cspec->num_msix_entries,
|
||||
sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -5009,16 +5010,17 @@ static void init_7322_cntrnames(struct qib_devdata *dd)
|
|||
dd->cspec->cntrnamelen = sizeof(cntr7322names) - 1;
|
||||
else
|
||||
dd->cspec->cntrnamelen = 1 + s - cntr7322names;
|
||||
dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
|
||||
for (i = 0, s = (char *)portcntr7322names; s; i++)
|
||||
s = strchr(s + 1, '\n');
|
||||
dd->cspec->nportcntrs = i - 1;
|
||||
dd->cspec->portcntrnamelen = sizeof(portcntr7322names) - 1;
|
||||
for (i = 0; i < dd->num_pports; ++i) {
|
||||
dd->pport[i].cpspec->portcntrs = kmalloc(dd->cspec->nportcntrs
|
||||
* sizeof(u64), GFP_KERNEL);
|
||||
dd->pport[i].cpspec->portcntrs =
|
||||
kmalloc_array(dd->cspec->nportcntrs, sizeof(u64),
|
||||
GFP_KERNEL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6412,12 +6414,15 @@ static int qib_init_7322_variables(struct qib_devdata *dd)
|
|||
sbufcnt = dd->piobcnt2k + dd->piobcnt4k +
|
||||
NUM_VL15_BUFS + BITS_PER_LONG - 1;
|
||||
sbufcnt /= BITS_PER_LONG;
|
||||
dd->cspec->sendchkenable = kmalloc(sbufcnt *
|
||||
sizeof(*dd->cspec->sendchkenable), GFP_KERNEL);
|
||||
dd->cspec->sendgrhchk = kmalloc(sbufcnt *
|
||||
sizeof(*dd->cspec->sendgrhchk), GFP_KERNEL);
|
||||
dd->cspec->sendibchk = kmalloc(sbufcnt *
|
||||
sizeof(*dd->cspec->sendibchk), GFP_KERNEL);
|
||||
dd->cspec->sendchkenable =
|
||||
kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendchkenable),
|
||||
GFP_KERNEL);
|
||||
dd->cspec->sendgrhchk =
|
||||
kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendgrhchk),
|
||||
GFP_KERNEL);
|
||||
dd->cspec->sendibchk =
|
||||
kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendibchk),
|
||||
GFP_KERNEL);
|
||||
if (!dd->cspec->sendchkenable || !dd->cspec->sendgrhchk ||
|
||||
!dd->cspec->sendibchk) {
|
||||
ret = -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -258,8 +258,9 @@ int iser_alloc_rx_descriptors(struct iser_conn *iser_conn,
|
|||
goto alloc_login_buf_fail;
|
||||
|
||||
iser_conn->num_rx_descs = session->cmds_max;
|
||||
iser_conn->rx_descs = kmalloc(iser_conn->num_rx_descs *
|
||||
sizeof(struct iser_rx_desc), GFP_KERNEL);
|
||||
iser_conn->rx_descs = kmalloc_array(iser_conn->num_rx_descs,
|
||||
sizeof(struct iser_rx_desc),
|
||||
GFP_KERNEL);
|
||||
if (!iser_conn->rx_descs)
|
||||
goto rx_desc_alloc_fail;
|
||||
|
||||
|
|
|
|||
|
|
@ -1035,16 +1035,17 @@ static int srp_alloc_req_data(struct srp_rdma_ch *ch)
|
|||
|
||||
for (i = 0; i < target->req_ring_size; ++i) {
|
||||
req = &ch->req_ring[i];
|
||||
mr_list = kmalloc(target->mr_per_cmd * sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
mr_list = kmalloc_array(target->mr_per_cmd, sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
if (!mr_list)
|
||||
goto out;
|
||||
if (srp_dev->use_fast_reg) {
|
||||
req->fr_list = mr_list;
|
||||
} else {
|
||||
req->fmr_list = mr_list;
|
||||
req->map_page = kmalloc(srp_dev->max_pages_per_mr *
|
||||
sizeof(void *), GFP_KERNEL);
|
||||
req->map_page = kmalloc_array(srp_dev->max_pages_per_mr,
|
||||
sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
if (!req->map_page)
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -720,7 +720,7 @@ static struct srpt_ioctx **srpt_alloc_ioctx_ring(struct srpt_device *sdev,
|
|||
WARN_ON(ioctx_size != sizeof(struct srpt_recv_ioctx)
|
||||
&& ioctx_size != sizeof(struct srpt_send_ioctx));
|
||||
|
||||
ring = kmalloc(ring_size * sizeof(ring[0]), GFP_KERNEL);
|
||||
ring = kmalloc_array(ring_size, sizeof(ring[0]), GFP_KERNEL);
|
||||
if (!ring)
|
||||
goto out;
|
||||
for (i = 0; i < ring_size; ++i) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue