vmm devmem_mmap_single: Bump object reference under memsegs lock.
Reported by: markj Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D37273
This commit is contained in:
parent
67b69e76e8
commit
223de44c93
@ -1262,15 +1262,13 @@ devmem_mmap_single(struct cdev *cdev, vm_ooffset_t *offset, vm_size_t len,
|
|||||||
KASSERT(error == 0 && !sysmem && *objp != NULL,
|
KASSERT(error == 0 && !sysmem && *objp != NULL,
|
||||||
("%s: invalid devmem segment %d", __func__, dsc->segid));
|
("%s: invalid devmem segment %d", __func__, dsc->segid));
|
||||||
|
|
||||||
|
if (seglen >= last)
|
||||||
|
vm_object_reference(*objp);
|
||||||
|
else
|
||||||
|
error = EINVAL;
|
||||||
|
|
||||||
vm_unlock_memsegs(dsc->sc->vm);
|
vm_unlock_memsegs(dsc->sc->vm);
|
||||||
|
return (error);
|
||||||
if (seglen >= last) {
|
|
||||||
vm_object_reference(*objp);
|
|
||||||
return (0);
|
|
||||||
} else {
|
|
||||||
return (EINVAL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct cdevsw devmemsw = {
|
static struct cdevsw devmemsw = {
|
||||||
|
Loading…
Reference in New Issue
Block a user