1. 22 8月, 2014 4 次提交
    • P
      linux-user: Fix conversion of sigevent argument to timer_create · c065976f
      Peter Maydell 提交于
      There were a number of bugs in the conversion of the sigevent
      argument to timer_create from target to host format:
       * signal number not converted from target to host
       * thread ID not copied across
       * sigev_value not copied across
       * we never unlocked the struct when we were done
      
      Between them, these problems meant that SIGEV_THREAD_ID
      timers (and the glibc-implemented SIGEV_THREAD timers which
      depend on them) didn't work.
      
      Fix these problems and clean up the code a little by pulling
      the struct conversion out into its own function, in line with
      how we convert various other structs. This allows the test
      program in bug LP:1042388 to run.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
      c065976f
    • J
      linux-user: Fix syscall instruction usermode emulation on X86_64 · 47575997
      Jincheng Miao 提交于
      Currently syscall instruction is buggy on user mode X86_64,
      the EIP is updated after do_syscall(), that is too late for
      clone(). Because clone() will create a thread at the env->EIP
      (the address of syscall insn), and then child thread enters
      do_syscall() again, that is not expected. Sometimes it is tragic.
      
      User mode syscall insn emulation is not used MSR, so the
      action should be same to INT 0x80. INT 0x80 will update EIP in
      do_interrupt(), ditto for syscall() for consistency.
      Signed-off-by: NJincheng Miao <jmiao@redhat.com>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
      47575997
    • R
      linux-user: redirect openat calls · 0b2effd7
      Riku Voipio 提交于
      While Mikhail fixed /proc/self/maps, it was noticed openat calls are
      not redirected currently. Some archs don't have open at all, so
      openat needs to be redirected.
      
      Fix this by consolidating open/openat code to do_openat - open
      is implemented using openat(AT_FDCWD, ... ), which according
      to open(2) man page is identical.
      
      Since all targets now have openat, remove the ifdef around sys_openat
      and openat: case in do_syscall.
      
      Cc: Mikhail Ilin <m.ilin@samsung.com>
      Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
      0b2effd7
    • M
      linux-user: /proc/self/maps content · d67f4aaa
      Mikhail Ilyin 提交于
      Build /proc/self/maps doing a match against guest memory translation table.
      Output only that map records which are valid for guest memory layout.
      Signed-off-by: NMikhail Ilyin <m.ilin@samsung.com>
      Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
      d67f4aaa
  2. 21 8月, 2014 2 次提交
  3. 20 8月, 2014 21 次提交
  4. 19 8月, 2014 8 次提交
  5. 18 8月, 2014 5 次提交