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,  	 * The order of these 3 calls is important and should be kept.  	 */  	sg_split_phys(splitters, nb_splits); -	ret = sg_calculate_split(in, in_mapped_nents, nb_splits, skip, -				 split_sizes, splitters, true); -	if (ret < 0) -		goto err; -	sg_split_mapped(splitters, nb_splits); +	if (in_mapped_nents) { +		ret = sg_calculate_split(in, in_mapped_nents, nb_splits, skip, +					 split_sizes, splitters, true); +		if (ret < 0) +			goto err; +		sg_split_mapped(splitters, nb_splits); +	}  	for (i = 0; i < nb_splits; i++) {  		out[i] = splitters[i].out_sg;  | 
