[PATCH 1/3] IB/core: add a simple SRQ pool per PD
Sagi Grimberg
sagi at grimberg.me
Thu Nov 16 10:32:41 PST 2017
> +EXPORT_SYMBOL(ib_srq_pool_init);
> +
> +void ib_srq_pool_destroy(struct ib_pd *pd)
> +{
> + struct ib_srq *srq;
> + unsigned long flags;
> +
> + spin_lock_irqsave(&pd->srq_lock, flags);
> + while (!list_empty(&pd->srqs)) {
> + srq = list_first_entry(&pd->srqs, struct ib_srq, pd_entry);
> + list_del(&srq->pd_entry);
> +
> + spin_unlock_irqrestore(&pd->srq_lock, flags);
> + ib_destroy_srq(srq);
> + spin_lock_irqsave(&pd->srq_lock, flags);
> + }
> + spin_unlock_irqrestore(&pd->srq_lock, flags);
Why not just splicing the list and iterate sanely?
More information about the Linux-nvme
mailing list