diff options
| -rw-r--r-- | drivers/xen/gntdev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c index 00b3accc43ee..b0f9e8fb0052 100644 --- a/drivers/xen/gntdev.c +++ b/drivers/xen/gntdev.c | |||
| @@ -662,7 +662,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma) | |||
| 662 | if (map->flags) { | 662 | if (map->flags) { |
| 663 | if ((vma->vm_flags & VM_WRITE) && | 663 | if ((vma->vm_flags & VM_WRITE) && |
| 664 | (map->flags & GNTMAP_readonly)) | 664 | (map->flags & GNTMAP_readonly)) |
| 665 | return -EINVAL; | 665 | goto out_unlock_put; |
| 666 | } else { | 666 | } else { |
| 667 | map->flags = GNTMAP_host_map; | 667 | map->flags = GNTMAP_host_map; |
| 668 | if (!(vma->vm_flags & VM_WRITE)) | 668 | if (!(vma->vm_flags & VM_WRITE)) |
| @@ -700,6 +700,8 @@ unlock_out: | |||
| 700 | spin_unlock(&priv->lock); | 700 | spin_unlock(&priv->lock); |
| 701 | return err; | 701 | return err; |
| 702 | 702 | ||
| 703 | out_unlock_put: | ||
| 704 | spin_unlock(&priv->lock); | ||
| 703 | out_put_map: | 705 | out_put_map: |
| 704 | if (use_ptemod) | 706 | if (use_ptemod) |
| 705 | map->vma = NULL; | 707 | map->vma = NULL; |
