1. 05 5月, 2007 1 次提交
  2. 27 4月, 2007 2 次提交
  3. 06 3月, 2007 1 次提交
    • G
      [S390] Fixed handling of access register mode faults. · 482b05dd
      Gerald Schaefer 提交于
      Replaced check_user_space() + __check_access_register with the new
      check_space(). The old functions made wrong assumptions about kernel
      and user space when the kernel and user address spaces are switched
      (kernel in home space, user in primary/secondary space).
      Secondly the user process can switch to the accress register mode if
      it is running in primary or secondary mode. In addition it can load
      an arbitrary value to the access registers. If any other value than
      0 for primary space or 1 for secondary space is loaded and memory
      is accessed using the base register related to the access register,
      the program should be terminated with a SIGSEGV. To achieve that the
      DUALD pointer in the DUCT and the PSALD pointer in the PASTE need
      to point to an array of 8 invalid access-list entries to get a
      ALEN-translation exception if an invalid alet is used.
      Signed-off-by: NGerald Schaefer <geraldsc@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      482b05dd
  4. 12 2月, 2007 1 次提交
  5. 06 2月, 2007 2 次提交
    • G
      [S390] noexec protection · c1821c2e
      Gerald Schaefer 提交于
      This provides a noexec protection on s390 hardware. Our hardware does
      not have any bits left in the pte for a hw noexec bit, so this is a
      different approach using shadow page tables and a special addressing
      mode that allows separate address spaces for code and data.
      
      As a special feature of our "secondary-space" addressing mode, separate
      page tables can be specified for the translation of data addresses
      (storage operands) and instruction addresses. The shadow page table is
      used for the instruction addresses and the standard page table for the
      data addresses.
      The shadow page table is linked to the standard page table by a pointer
      in page->lru.next of the struct page corresponding to the page that
      contains the standard page table (since page->private is not really
      private with the pte_lock and the page table pages are not in the LRU
      list).
      Depending on the software bits of a pte, it is either inserted into
      both page tables or just into the standard (data) page table. Pages of
      a vma that does not have the VM_EXEC bit set get mapped only in the
      data address space. Any try to execute code on such a page will cause a
      page translation exception. The standard reaction to this is a SIGSEGV
      with two exceptions: the two system call opcodes 0x0a77 (sys_sigreturn)
      and 0x0aad (sys_rt_sigreturn) are allowed. They are stored by the
      kernel to the signal stack frame. Unfortunately, the signal return
      mechanism cannot be modified to use an SA_RESTORER because the
      exception unwinding code depends on the system call opcode stored
      behind the signal stack frame.
      
      This feature requires that user space is executed in secondary-space
      mode and the kernel in home-space mode, which means that the addressing
      modes need to be switched and that the noexec protection only works
      for user space.
      After switching the addressing modes, we cannot use the mvcp/mvcs
      instructions anymore to copy between kernel and user space. A new
      mvcos instruction has been added to the z9 EC/BC hardware which allows
      to copy between arbitrary address spaces, but on older hardware the
      page tables need to be walked manually.
      Signed-off-by: NGerald Schaefer <geraldsc@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c1821c2e
    • H
  6. 04 12月, 2006 1 次提交
  7. 06 10月, 2006 1 次提交
  8. 30 9月, 2006 1 次提交
  9. 28 9月, 2006 2 次提交
  10. 20 9月, 2006 1 次提交
  11. 12 7月, 2006 1 次提交
  12. 01 7月, 2006 1 次提交
  13. 07 1月, 2006 1 次提交
  14. 09 11月, 2005 1 次提交
  15. 07 11月, 2005 1 次提交
    • M
      [PATCH] s390: remove pagex support · d4b68996
      Martin Schwidefsky 提交于
      Remove pagex pseudo page fault code.  It does not work together with the
      system call speedup that makes the complete system call path enabled for
      interrupts.  To make pagex and the syscall speedup code work together we would
      have to add code to the program check handler to do a critical section cleanup
      like the asynchronous interrupt code.  This would make program checks slower.
      Not what we want.
      
      Newer versions of z/VM have the improved pfault pseudo page fault interface.
      This replaces the old pagex interface and does not have the problem.  So its
      better to just rip out the pagex code.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d4b68996
  16. 05 9月, 2005 1 次提交
    • M
      [PATCH] s390: pfault interrupt race · b6d09449
      Martin Schwidefsky 提交于
      There is a race in pfault_interrupt.  That function gets called two times for
      each pfault notification.  Once with a subcode of 0 to indicate that a real
      page is not available and once with a subcode of 0x80 to indicate that the
      page is present again.
      
      Since the two external interrupts can be delivered on two different cpus the
      order in which the two calls are made is unpredictable.  It is possible that
      the subcode 0x80 interrupt is completed before the subcode 0x00 interrupt has
      done the wake_up() call.
      
      To avoid calling wake_up() on an already removed task structure proper task
      structure reference counting is needed.  Increase the reference counter in the
      subcode 0x00 interrupt before setting pfault_wait to zero and return the
      reference after the wake_up call.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b6d09449
  17. 05 6月, 2005 1 次提交
  18. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4