diff options
author | alc <alc@FreeBSD.org> | 2002-12-23 21:47:46 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-12-23 21:47:46 +0000 |
commit | ee4b836c80ec9bbd8b3e0620d4443e02cf7ca100 (patch) | |
tree | d5e901243dd54779598bd8da42f338cba4428984 /sys/dev | |
parent | fedfaf9f8b1045aeb82f674a281267ce7853224b (diff) | |
download | FreeBSD-src-ee4b836c80ec9bbd8b3e0620d4443e02cf7ca100.zip FreeBSD-src-ee4b836c80ec9bbd8b3e0620d4443e02cf7ca100.tar.gz |
- Hold the page queues lock around vm_page_wakeup().
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/agp/agp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c index 0a073ea..2281334 100644 --- a/sys/dev/agp/agp.c +++ b/sys/dev/agp/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(); } /* |