diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2017-12-05 15:38:54 +0100 |
---|---|---|
committer | Boris Ostrovsky <boris.ostrovsky@oracle.com> | 2017-12-06 15:44:49 +0100 |
commit | 1ab134ca3151c55b6fc606857e71d9adb4c355d1 (patch) | |
tree | 4bea89c63575dae543fdca0f8043ef6cc50b017f /drivers/xen/pvcalls-front.c | |
parent | xen/pvcalls: check for xenbus_read() errors (diff) | |
download | linux-1ab134ca3151c55b6fc606857e71d9adb4c355d1.tar.xz linux-1ab134ca3151c55b6fc606857e71d9adb4c355d1.zip |
xen/pvcalls: Fix a check in pvcalls_front_remove()
bedata->ref can't be less than zero because it's unsigned. This affects
certain error paths in probe. We first set ->ref = -1 and then we set
it to a valid value later.
Fixes: 219681909913 ("xen/pvcalls: connect to the backend")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Diffstat (limited to 'drivers/xen/pvcalls-front.c')
-rw-r--r-- | drivers/xen/pvcalls-front.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c index afa3f1b5d807..d1e1d8d2b9d5 100644 --- a/drivers/xen/pvcalls-front.c +++ b/drivers/xen/pvcalls-front.c @@ -1103,7 +1103,7 @@ static int pvcalls_front_remove(struct xenbus_device *dev) kfree(map); } } - if (bedata->ref >= 0) + if (bedata->ref != -1) gnttab_end_foreign_access(bedata->ref, 0, 0); kfree(bedata->ring.sring); kfree(bedata); |