On Wed, Dec 02, 2015 at 03:56:27PM -0500, ira.we...@intel.com wrote:
> -             for (i = tx->idx; i >= 0; i--) {
> -                     if (tx->iovecs[i].flags & TXREQ_FLAGS_IOVEC_LAST_PKT)
> -                             unpin_vector_pages(tx->iovecs[i].vec);
> +     /*
> +      * If we have any io vectors associated with this txreq,
> +      * check whether they need to be 'freed'. We can't free them
> +      * here because the unpin function needs to be able to sleep.
> +      */
> +     i = tx->idx;
> +     while (i)
> +             if (tx->iovecs[i--].flags & TXREQ_FLAGS_IOVEC_LAST_PKT) {
> +                     defer = true;
> +                     break;
>               }


In the original code, we checked tx->iovecs[0].flags but now we skip
that one.  Going back to the original for loop is probably the right way
to fix this.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to