1. 17 10月, 2007 6 次提交
    • J
      uml: floating point signal delivery fixes · a5f6096c
      Jeff Dike 提交于
      Handle floating point state in across signals correctly.  UML/i386 needs to
      know whether the host does PTRACE_[GS]ETFPXREGS, so an arch_init_registers
      hook is added, which on x86_64 does nothing.
      
      UML doesn't save and restore floating point registers on kernel entry and
      exit, so they need to be copied between the host process and the sigcontext.
      save_fpx_registers and restore_fpx_registers are added for this purpose.
      save_fp_registers and restore_fp_registers already exist.
      
      There was a bunch of floating point state conversion code in
      arch/um/sys-i386/ptrace.c which isn't needed there, but is needed in signal.c,
      so it is moved over.
      
      The i386 code now distinguishes between fp and fpx state and handles them
      correctly.  The x86_64 code just needs to copy state as-is between the host
      process and the stack.  There are also some fixes there to pass the correct
      address of the floating point state around.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a5f6096c
    • J
      uml: rename pt_regs general-purpose register file · 18baddda
      Jeff Dike 提交于
      Before the removal of tt mode, access to a register on the skas-mode side of a
      pt_regs struct looked like pt_regs.regs.skas.regs.regs[FOO].  This was bad
      enough, but it became pt_regs.regs.regs.regs[FOO] with the removal of the
      union from the middle.  To get rid of the run of three "regs", the last field
      is renamed to "gp".
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      18baddda
    • J
      uml: style fixes pass 3 · ba180fd4
      Jeff Dike 提交于
      Formatting changes in the files which have been changed in the course
      of folding foo_skas functions into their callers.  These include:
      	copyright updates
      	header file trimming
      	style fixes
      	adding severity to printks
      
      These changes should be entirely non-functional.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ba180fd4
    • J
      uml: remove code made redundant by CHOOSE_MODE removal · 77bf4400
      Jeff Dike 提交于
      This patch makes a number of simplifications enabled by the removal of
      CHOOSE_MODE.  There were lots of functions that looked like
      
      	int foo(args){
      		foo_skas(args);
      	}
      
      The bodies of foo_skas are now folded into foo, and their declarations (and
      sometimes entire header files) are deleted.
      
      In addition, the union uml_pt_regs, which was a union between the tt and skas
      register formats, is now a struct, with the tt-mode arm of the union being
      removed.
      
      It turns out that usr2_handler was unused, so it is gone.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      77bf4400
    • J
      uml: throw out CHOOSE_MODE · 6aa802ce
      Jeff Dike 提交于
      The next stage after removing code which depends on CONFIG_MODE_TT is removing
      the CHOOSE_MODE abstraction, which provided both compile-time and run-time
      branching to either tt-mode or skas-mode code.
      
      This patch removes choose-mode.h and all inclusions of it, and replaces all
      CHOOSE_MODE invocations with the skas branch.  This leaves a number of trivial
      functions which will be dealt with in a later patch.
      
      There are some changes in the uaccess and tls support which go somewhat beyond
      this and eliminate some of the now-redundant functions.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6aa802ce
    • J
      uml: throw out CONFIG_MODE_TT · 42fda663
      Jeff Dike 提交于
      This patchset throws out tt mode, which has been non-functional for a while.
      
      This is done in phases, interspersed with code cleanups on the affected files.
      
      The removal is done as follows:
      	remove all code, config options, and files which depend on
      CONFIG_MODE_TT
      	get rid of the CHOOSE_MODE macro, which decided whether to
      call tt-mode or skas-mode code, and replace invocations with their
      skas portions
      	replace all now-trivial procedures with their skas equivalents
      
      There are now a bunch of now-redundant pieces of data structures, including
      mode-specific pieces of the thread structure, pt_regs, and mm_context.  These
      are all replaced with their skas-specific contents.
      
      As part of the ongoing style compliance project, I made a style pass over all
      files that were changed.  There are three such patches, one for each phase,
      covering the files affected by that phase but no later ones.
      
      I noticed that we weren't freeing the LDT state associated with a process when
      it exited, so that's fixed in one of the later patches.
      
      The last patch is a tidying patch which I've had for a while, but which caused
      inexplicable crashes under tt mode.  Since that is no longer a problem, this
      can now go in.
      
      This patch:
      
      Start getting rid of tt mode support.
      
      This patch throws out CONFIG_MODE_TT and all config options, code, and files
      which depend on it.
      
      CONFIG_MODE_SKAS is gone and everything that depends on it is included
      unconditionally.
      
      The few changed lines are in re-written Kconfig help, lines which needed
      something skas-related removed from them, and a few more which weren't
      strictly deletions.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      42fda663
  2. 08 5月, 2007 2 次提交
  3. 31 1月, 2007 1 次提交
  4. 06 6月, 2006 1 次提交
  5. 11 4月, 2006 1 次提交
  6. 28 3月, 2006 1 次提交
    • J
      [PATCH] uml: fix segfault on signal delivery · 98c18238
      Jeff Dike 提交于
      This fixes a process segfault where a signal was being delivered such that a
      new stack page needed to be allocated to hold the signal frame.  This was
      tripping some logic in the page fault handler which wouldn't allocate the page
      if the faulting address was more that 32 bytes lower than the current stack
      pointer.  Since a signal frame is greater than 32 bytes, this exercised that
      case.
      
      It's fixed by updating the SP in the pt_regs before starting to copy the
      signal frame.  Since those are the registers that will be copied on to the
      stack, we have to be careful to put the original SP, not the new one which
      points to the signal frame, on the stack.
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      98c18238
  7. 05 9月, 2005 1 次提交
  8. 15 7月, 2005 1 次提交
    • P
      [PATCH] uml: fix lvalue for gcc4 · bcb01b8a
      Paolo 'Blaisorblade' Giarrusso 提交于
            Russell King <rmk+lkml@arm.linux.org.uk>
      
      This construct is refused by GCC 4, so here's the (corrected) fix.  Thanks to
      Russell for noticing a stupid mistake I did when first sending this.
      
      As he noted, the code is largely suboptimal however it currently works, and
      will be fixed shortly.  Just read the access_ok check on fp which is NULL, or
      the pointer arithmetic below which should be done with a cast to void*:
      
       	frame = (struct rt_sigframe __user *)
       		round_down(stack_top - sizeof(struct rt_sigframe), 16) - 8;
      
      The code shows clearly that has been taken from
      arch/x86_64/kernel/signal.c:setup_rt_frame(), maybe in a bit of a hurry.
      Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bcb01b8a
  9. 07 5月, 2005 1 次提交
  10. 06 5月, 2005 1 次提交
    • B
      [PATCH] uml: S390 preparation, abstract host page fault data · c578455a
      Bodo Stroesser 提交于
      This patch removes the arch-specific fault/trap-infos from thread and
      skas-regs.
      
      It adds a new struct faultinfo, that is arch-specific defined in
      sysdep/faultinfo.h.
      
      The structure is inserted in thread.arch and thread.regs.skas and
      thread.regs.tt
      
      Now, segv and other trap-handlers can copy the contents from regs.X.faultinfo
      to thread.arch.faultinfo with one simple assignment.
      
      Also, the number of macros necessary is reduced to
      
      FAULT_ADDRESS(struct faultinfo)
          extracts the faulting address from faultinfo
      
      FAULT_WRITE(struct faultinfo)
          extracts the "is_write" flag
      
      SEGV_IS_FIXABLE(struct faultinfo)
          is true for the fixable segvs, i.e. (TRAP == 14)
          on i386
      
      UPT_FAULTINFO(regs)
          result is (struct faultinfo *) to the faultinfo
          in regs->skas.faultinfo
      
      GET_FAULTINFO_FROM_SC(struct faultinfo, struct sigcontext *)
          copies the relevant parts of the sigcontext to
          struct faultinfo.
      
      On SIGSEGV, call user_signal() instead of handle_segv(), if the architecture
      provides the information needed in PTRACE_FAULTINFO, or if PTRACE_FAULTINFO is
      missing, because segv-stub will provide the info.
      
      The benefit of the change is, that in case of a non-fixable SIGSEGV, we can
      give user processes a SIGSEGV, instead of possibly looping on pagefault
      handling.
      
      Since handle_segv() sikked arch_fixup() implicitly by passing ip==0 to segv(),
      I changed segv() to call arch_fixup() only, if !is_user.
      Signed-off-by: NBodo Stroesser <bstroesser@fujitsu-siemens.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c578455a
  11. 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