On Mon, 2020-08-10 at 02:38 +0000, Xu Wang wrote: > A multiplication for the size determination of a memory allocation > indicated that an array data structure should be processed. > Thus use the corresponding function "devm_kcalloc". [] > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c > b/drivers/net/ethernet/pensando/ionic/ionic_lif.c [] > @@ -412,7 +412,7 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, > unsigned int type, > > new->flags = flags; > > - new->q.info = devm_kzalloc(dev, sizeof(*new->q.info) * num_descs, > + new->q.info = devm_kcalloc(dev, num_descs, sizeof(*new->q.info), > GFP_KERNEL); > if (!new->q.info) { > netdev_err(lif->netdev, "Cannot allocate queue info\n");
You could also remove these unnecessary allocation error messages. There is an existing dump_stack() on allocation failure. > @@ -462,7 +462,7 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, > unsigned int type, > new->intr.index = IONIC_INTR_INDEX_NOT_ASSIGNED; > } > > - new->cq.info = devm_kzalloc(dev, sizeof(*new->cq.info) * num_descs, > + new->cq.info = devm_kcalloc(dev, num_descs, sizeof(*new->cq.info), > GFP_KERNEL); > if (!new->cq.info) { > netdev_err(lif->netdev, "Cannot allocate completion queue > info\n");