On Thu, 12 Nov 2020 13:09:57 -0600 Thomas Falcon wrote: > This patch introduces the infrastructure to send batched subordinate > Command Response Queue descriptors, which are used by the ibmvnic > driver to send TX frame and RX buffer descriptors. > > Signed-off-by: Thomas Falcon <tlfal...@linux.ibm.com>
> @@ -2957,6 +2963,19 @@ static struct ibmvnic_sub_crq_queue > *init_sub_crq_queue(struct ibmvnic_adapter > > scrq->adapter = adapter; > scrq->size = 4 * PAGE_SIZE / sizeof(*scrq->msgs); > + scrq->ind_buf.index = 0; > + > + scrq->ind_buf.indir_arr = > + dma_alloc_coherent(dev, > + IBMVNIC_IND_ARR_SZ, > + &scrq->ind_buf.indir_dma, > + GFP_KERNEL); > + > + if (!scrq->ind_buf.indir_arr) { > + dev_err(dev, "Couldn't allocate indirect scrq buffer\n"); This warning/error is not necessary, memory allocation will trigger an OOM message already. > + goto reg_failed; Don't you have to do something like rc = plpar_hcall_norets(H_FREE_SUB_CRQ, adapter->vdev->unit_address, scrq->crq_num); ? > + } > + > spin_lock_init(&scrq->lock); >