diff options
Diffstat (limited to 'lib/sg_split.c')
-rw-r--r-- | lib/sg_split.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/sg_split.c b/lib/sg_split.c index 9982c63d1063..60a0babebf2e 100644 --- a/lib/sg_split.c +++ b/lib/sg_split.c | |||
@@ -176,11 +176,13 @@ int sg_split(struct scatterlist *in, const int in_mapped_nents, | |||
176 | * The order of these 3 calls is important and should be kept. | 176 | * The order of these 3 calls is important and should be kept. |
177 | */ | 177 | */ |
178 | sg_split_phys(splitters, nb_splits); | 178 | sg_split_phys(splitters, nb_splits); |
179 | ret = sg_calculate_split(in, in_mapped_nents, nb_splits, skip, | 179 | if (in_mapped_nents) { |
180 | split_sizes, splitters, true); | 180 | ret = sg_calculate_split(in, in_mapped_nents, nb_splits, skip, |
181 | if (ret < 0) | 181 | split_sizes, splitters, true); |
182 | goto err; | 182 | if (ret < 0) |
183 | sg_split_mapped(splitters, nb_splits); | 183 | goto err; |
184 | sg_split_mapped(splitters, nb_splits); | ||
185 | } | ||
184 | 186 | ||
185 | for (i = 0; i < nb_splits; i++) { | 187 | for (i = 0; i < nb_splits; i++) { |
186 | out[i] = splitters[i].out_sg; | 188 | out[i] = splitters[i].out_sg; |