On March 03, 2017 5:45 AM Laura Abbott wrote: 
> 
> +static struct sg_table *dup_sg_table(struct sg_table *table)
> +{
> +     struct sg_table *new_table;
> +     int ret, i;
> +     struct scatterlist *sg, *new_sg;
> +
> +     new_table = kzalloc(sizeof(*new_table), GFP_KERNEL);
> +     if (!new_table)
> +             return ERR_PTR(-ENOMEM);
> +
> +     ret = sg_alloc_table(new_table, table->nents, GFP_KERNEL);
> +     if (ret) {
> +             kfree(table);

Free new table?

> +             return ERR_PTR(-ENOMEM);
> +     }
> +
> +     new_sg = new_table->sgl;
> +     for_each_sg(table->sgl, sg, table->nents, i) {
> +             memcpy(new_sg, sg, sizeof(*sg));
> +             sg->dma_address = 0;
> +             new_sg = sg_next(new_sg);
> +     }
> +

Do we need a helper, sg_copy_table(dst_table, src_table)?

> +     return new_table;
> +}
> +

Reply via email to