xen: fix for 4.11 rc3
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABAgAGBQJYy4bXAAoJELDendYovxMvVPwIAJWsWFoPEb/3sUt/0oYtFiq3 NXj8kHTm8GIn73PSbVQe9V8aoqRO+1+AjveoBz47M10Aro/NfgccGFgWBrhTwYst S5axq4AySGEnUNnSyxxpaBgijBeXnX3jeZ/SJ0EgINy73CV3FjsqWrQrKv6Mt2Hg 6Vwo/ebAxs/FPJQIj7kLsSrWCJvav5145HrzYSEO29JXc6zOSgXZQkLOmdOck2He Kw8XbYgTqDOlLuf3KwzpXJM8bDwird6U7orgfFyMDRyDDOfvKAm3oQpuW8styPL/ NNNOX5sVTqNPktLXVf2Y+W8rlxGCqQEZbCuZYLWbYmrWcv02cD+IGs/Npwg0s00= =zuJx -----END PGP SIGNATURE----- Merge tag 'for-linus-4.11b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fix from Juergen Gross: "A minor fix for using the appropriate refcount_t instead of atomic_t" * tag 'for-linus-4.11b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: drivers, xen: convert grant_map.users from atomic_t to refcount_t
This commit is contained in:
commit
f89406ca1f
|
@ -36,6 +36,7 @@
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/highmem.h>
|
#include <linux/highmem.h>
|
||||||
|
#include <linux/refcount.h>
|
||||||
|
|
||||||
#include <xen/xen.h>
|
#include <xen/xen.h>
|
||||||
#include <xen/grant_table.h>
|
#include <xen/grant_table.h>
|
||||||
|
@ -86,7 +87,7 @@ struct grant_map {
|
||||||
int index;
|
int index;
|
||||||
int count;
|
int count;
|
||||||
int flags;
|
int flags;
|
||||||
atomic_t users;
|
refcount_t users;
|
||||||
struct unmap_notify notify;
|
struct unmap_notify notify;
|
||||||
struct ioctl_gntdev_grant_ref *grants;
|
struct ioctl_gntdev_grant_ref *grants;
|
||||||
struct gnttab_map_grant_ref *map_ops;
|
struct gnttab_map_grant_ref *map_ops;
|
||||||
|
@ -166,7 +167,7 @@ static struct grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count)
|
||||||
|
|
||||||
add->index = 0;
|
add->index = 0;
|
||||||
add->count = count;
|
add->count = count;
|
||||||
atomic_set(&add->users, 1);
|
refcount_set(&add->users, 1);
|
||||||
|
|
||||||
return add;
|
return add;
|
||||||
|
|
||||||
|
@ -212,7 +213,7 @@ static void gntdev_put_map(struct gntdev_priv *priv, struct grant_map *map)
|
||||||
if (!map)
|
if (!map)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!atomic_dec_and_test(&map->users))
|
if (!refcount_dec_and_test(&map->users))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
atomic_sub(map->count, &pages_mapped);
|
atomic_sub(map->count, &pages_mapped);
|
||||||
|
@ -400,7 +401,7 @@ static void gntdev_vma_open(struct vm_area_struct *vma)
|
||||||
struct grant_map *map = vma->vm_private_data;
|
struct grant_map *map = vma->vm_private_data;
|
||||||
|
|
||||||
pr_debug("gntdev_vma_open %p\n", vma);
|
pr_debug("gntdev_vma_open %p\n", vma);
|
||||||
atomic_inc(&map->users);
|
refcount_inc(&map->users);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gntdev_vma_close(struct vm_area_struct *vma)
|
static void gntdev_vma_close(struct vm_area_struct *vma)
|
||||||
|
@ -1004,7 +1005,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
|
||||||
goto unlock_out;
|
goto unlock_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_inc(&map->users);
|
refcount_inc(&map->users);
|
||||||
|
|
||||||
vma->vm_ops = &gntdev_vmops;
|
vma->vm_ops = &gntdev_vmops;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue