svn commit: r186433 - head/sys/dev/agp
Ganbold
ganbold at micom.mng.net
Wed Dec 24 02:12:10 UTC 2008
Konstantin Belousov wrote:
> Author: kib
> Date: Tue Dec 23 16:04:33 2008
> New Revision: 186433
> URL: http://svn.freebsd.org/changeset/base/186433
>
> Log:
> Clear busy state on the pages which are after the one that failed the bind
> attempt.
>
> Reported and tested by: ganbold
> Reviewed by: rnoland
> MFC after: 2 weeks
>
> Modified:
> head/sys/dev/agp/agp.c
>
> Modified: head/sys/dev/agp/agp.c
> ==============================================================================
> --- head/sys/dev/agp/agp.c Tue Dec 23 15:47:31 2008 (r186432)
> +++ head/sys/dev/agp/agp.c Tue Dec 23 16:04:33 2008 (r186433)
> @@ -564,6 +564,7 @@ agp_generic_bind_memory(device_t dev, st
> device_printf(dev, "memory already bound\n");
> error = EINVAL;
> VM_OBJECT_LOCK(mem->am_obj);
> + i = 0;
> goto bad;
> }
>
> @@ -592,7 +593,6 @@ agp_generic_bind_memory(device_t dev, st
> * Bail out. Reverse all the mappings
> * and unwire the pages.
> */
> - vm_page_wakeup(m);
> for (k = 0; k < i + j; k += AGP_PAGE_SIZE)
> AGP_UNBIND_PAGE(dev, offset + k);
> goto bad;
> @@ -622,8 +622,10 @@ agp_generic_bind_memory(device_t dev, st
> bad:
> mtx_unlock(&sc->as_lock);
> VM_OBJECT_LOCK_ASSERT(mem->am_obj, MA_OWNED);
> - for (i = 0; i < mem->am_size; i += PAGE_SIZE) {
> - m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(i));
> + for (k = 0; k < mem->am_size; k += PAGE_SIZE) {
> + m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(k));
> + if (k >= i)
> + vm_page_wakeup(m);
> vm_page_lock_queues();
> vm_page_unwire(m, 0);
> vm_page_unlock_queues();
> _______________________________________________
> svn-src-all at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
>
>
>
>
Thanks a lot.
Ganbold
--
Some books are to be tasted, others to be swallowed, and some few to be
chewed and digested. -- Francis Bacon [As anyone who has ever owned a
puppy already knows. Ed.]
More information about the svn-src-all
mailing list