summaryrefslogtreecommitdiffstats
path: root/sys/pci/agp.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-12-23 21:47:46 +0000
committeralc <alc@FreeBSD.org>2002-12-23 21:47:46 +0000
commitee4b836c80ec9bbd8b3e0620d4443e02cf7ca100 (patch)
treed5e901243dd54779598bd8da42f338cba4428984 /sys/pci/agp.c
parentfedfaf9f8b1045aeb82f674a281267ce7853224b (diff)
downloadFreeBSD-src-ee4b836c80ec9bbd8b3e0620d4443e02cf7ca100.zip
FreeBSD-src-ee4b836c80ec9bbd8b3e0620d4443e02cf7ca100.tar.gz
- Hold the page queues lock around vm_page_wakeup().
Diffstat (limited to 'sys/pci/agp.c')
-rw-r--r--sys/pci/agp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/pci/agp.c b/sys/pci/agp.c
index 0a073ea..2281334 100644
--- a/sys/pci/agp.c
+++ b/sys/pci/agp.c
@@ -443,7 +443,9 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
* Bail out. Reverse all the mappings
* and unwire the pages.
*/
+ vm_page_lock_queues();
vm_page_wakeup(m);
+ vm_page_unlock_queues();
for (k = 0; k < i + j; k += AGP_PAGE_SIZE)
AGP_UNBIND_PAGE(dev, offset + k);
for (k = 0; k <= i; k += PAGE_SIZE) {
@@ -457,7 +459,9 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
return error;
}
}
+ vm_page_lock_queues();
vm_page_wakeup(m);
+ vm_page_unlock_queues();
}
/*
OpenPOWER on IntegriCloud