1. 09 10月, 2012 1 次提交
  2. 30 10月, 2011 1 次提交
  3. 23 5月, 2011 1 次提交
    • M
      [S390] refactor page table functions for better pgste support · b2fa47e6
      Martin Schwidefsky 提交于
      Rework the architecture page table functions to access the bits in the
      page table extension array (pgste). There are a number of changes:
      1) Fix missing pgste update if the attach_count for the mm is <= 1.
      2) For every operation that affects the invalid bit in the pte or the
         rcp byte in the pgste the pcl lock needs to be acquired. The function
         pgste_get_lock gets the pcl lock and returns the current pgste value
         for a pte pointer. The function pgste_set_unlock stores the pgste
         and releases the lock. Between these two calls the bits in the pgste
         can be shuffled.
      3) Define two software bits in the pte _PAGE_SWR and _PAGE_SWC to avoid
         calling SetPageDirty and SetPageReferenced from pgtable.h. If the
         host reference backup bit or the host change backup bit has been
         set the dirty/referenced state is transfered to the pte. The common
         code will pick up the state from the pte.
      4) Add ptep_modify_prot_start and ptep_modify_prot_commit for mprotect.
      5) Remove pgd_populate_kernel, pud_populate_kernel, pmd_populate_kernel
         pgd_clear_kernel, pud_clear_kernel, pmd_clear_kernel and ptep_invalidate.
      6) Rename kvm_s390_test_and_clear_page_dirty to
         ptep_test_and_clear_user_dirty and add ptep_test_and_clear_user_young.
      7) Define mm_exclusive() and mm_has_pgste() helper to improve readability.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b2fa47e6
  4. 19 5月, 2011 1 次提交
    • J
      module: undo module RONX protection correctly. · 448694a1
      Jan Glauber 提交于
      While debugging I stumbled over two problems in the code that protects module
      pages.
      
      First issue is that disabling the protection before freeing init or unload of
      a module is not symmetric with the enablement. For instance, if pages are set
      to RO the page range from module_core to module_core + core_ro_size is
      protected. If a module is unloaded the page range from module_core to
      module_core + core_size is set back to RW.
      So pages that were not set to RO are also changed to RW.
      This is not critical but IMHO it should be symmetric.
      
      Second issue is that while set_memory_rw & set_memory_ro are used for
      RO/RW changes only set_memory_nx is involved for NX/X. One would await that
      the inverse function is called when the NX protection should be removed,
      which is not the case here, unless I'm missing something.
      Signed-off-by: NJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      448694a1
  5. 20 4月, 2011 1 次提交
  6. 16 3月, 2011 1 次提交