summaryrefslogtreecommitdiffstats
path: root/sys/dev/agp
diff options
context:
space:
mode:
authormux <mux@FreeBSD.org>2004-05-22 00:44:08 +0000
committermux <mux@FreeBSD.org>2004-05-22 00:44:08 +0000
commitba12e172bb7bfddb08099508e528526a9df20475 (patch)
tree59af537f377d086f32a7b973cc7666f8d8991c1c /sys/dev/agp
parent50df38a36ce748c6ef04c6530db03837f6f8aa7e (diff)
downloadFreeBSD-src-ba12e172bb7bfddb08099508e528526a9df20475.zip
FreeBSD-src-ba12e172bb7bfddb08099508e528526a9df20475.tar.gz
Plug three lock leaks.
Diffstat (limited to 'sys/dev/agp')
-rw-r--r--sys/dev/agp/agp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c
index f507aa6..03d5937 100644
--- a/sys/dev/agp/agp.c
+++ b/sys/dev/agp/agp.c
@@ -493,6 +493,7 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
if (mem->am_is_bound) {
device_printf(dev, "memory already bound\n");
+ lockmgr(&sc->as_lock, LK_RELEASE, 0, curthread);
return EINVAL;
}
@@ -501,6 +502,7 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
|| offset + mem->am_size > AGP_GET_APERTURE(dev)) {
device_printf(dev, "binding memory at bad offset %#x\n",
(int) offset);
+ lockmgr(&sc->as_lock, LK_RELEASE, 0, curthread);
return EINVAL;
}
@@ -596,6 +598,7 @@ agp_generic_unbind_memory(device_t dev, struct agp_memory *mem)
if (!mem->am_is_bound) {
device_printf(dev, "memory is not bound\n");
+ lockmgr(&sc->as_lock, LK_RELEASE, 0, curthread);
return EINVAL;
}
OpenPOWER on IntegriCloud