Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Feb 2010 00:54:37 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/powerpc/aim mmu_oea64.c src/sys/powerpc/include pte.h
Message-ID:  <201002240054.o1O0suWe076194@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
nwhitehorn    2010-02-24 00:54:37 UTC

  FreeBSD src repository

  Modified files:
    sys/powerpc/aim      mmu_oea64.c 
    sys/powerpc/include  pte.h 
  Log:
  SVN rev 204268 on 2010-02-24 00:54:37Z by nwhitehorn
  
  Close a race involving the OEA64 scratchpage. When the scratch page's
  physical address is changed, there is a brief window during which its PTE
  is invalid. Since moea64_set_scratchpage_pa() does not and cannot hold
  the page table lock, it was possible for another CPU to insert a new PTE
  into the scratch page's PTEG slot during this interval, corrupting both
  mappings.
  
  Solve this by creating a new flag, LPTE_LOCKED, such that
  moea64_pte_insert will avoid claiming locked PTEG slots even if they
  are invalid. This change also incorporates some additional paranoia
  added to solve things I thought might be this bug.
  
  Reported by:    linimon
  
  Revision  Changes    Path
  1.14      +14 -10    src/sys/powerpc/aim/mmu_oea64.c
  1.10      +1 -0      src/sys/powerpc/include/pte.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002240054.o1O0suWe076194>