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;
+}