diff options
Diffstat (limited to 'drivers/xen/gntdev.c')
| -rw-r--r-- | drivers/xen/gntdev.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c index 57efbd3b053b..bd56653b9bbc 100644 --- a/drivers/xen/gntdev.c +++ b/drivers/xen/gntdev.c @@ -380,10 +380,8 @@ static int unmap_grant_pages(struct grant_map *map, int offset, int pages)  		}  		range = 0;  		while (range < pages) { -			if (map->unmap_ops[offset+range].handle == -1) { -				range--; +			if (map->unmap_ops[offset+range].handle == -1)  				break; -			}  			range++;  		}  		err = __unmap_grant_pages(map, offset, range); @@ -1073,8 +1071,10 @@ unlock_out:  out_unlock_put:  	mutex_unlock(&priv->lock);  out_put_map: -	if (use_ptemod) +	if (use_ptemod) {  		map->vma = NULL; +		unmap_grant_pages(map, 0, map->count); +	}  	gntdev_put_map(priv, map);  	return err;  }  | 
