Author: alc
Date: Tue Jun  8 04:48:36 2010
New Revision: 208904
URL: http://svn.freebsd.org/changeset/base/208904

Log:
  MFC r208765
    In the unlikely event that pmap_ts_referenced() demoted five superpage
    mappings to the same underlying physical page, the calling thread would
    be left forever pinned to the same processor.

Modified:
  stable/7/sys/i386/i386/pmap.c

Modified: stable/7/sys/i386/i386/pmap.c
==============================================================================
--- stable/7/sys/i386/i386/pmap.c       Tue Jun  8 04:41:31 2010        
(r208903)
+++ stable/7/sys/i386/i386/pmap.c       Tue Jun  8 04:48:36 2010        
(r208904)
@@ -4408,7 +4408,7 @@ pmap_ts_referenced(vm_page_t m)
                                        rtval++;
                                        if (rtval > 4) {
                                                PMAP_UNLOCK(pmap);
-                                               return (rtval);
+                                               goto out;
                                        }
                                }
                        }
@@ -4437,6 +4437,7 @@ pmap_ts_referenced(vm_page_t m)
                        PMAP_UNLOCK(pmap);
                } while ((pv = pvn) != NULL && pv != pvf);
        }
+out:
        sched_unpin();
        return (rtval);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to