qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] cbf358: linux-user: define correct fcntl() va


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] cbf358: linux-user: define correct fcntl() values for spar...
Date: Tue, 15 May 2018 03:08:43 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: cbf358a667eaac4d305b43a47effd483021f38d7
      
https://github.com/qemu/qemu/commit/cbf358a667eaac4d305b43a47effd483021f38d7
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user: define correct fcntl() values for sparc

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: d3c6e8e98c00a801620ed7de7642c3bb957e15c6
      
https://github.com/qemu/qemu/commit/d3c6e8e98c00a801620ed7de7642c3bb957e15c6
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user: fix flock/flock64 padding

include/uapi/asm-generic/fcntl.h insert a padding macro at
the end of the structures flock and flock64.

This macro is defined to "short __unused;" on sparc,
and "long pad[4]" on mips.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: 534cdbf56c2a72952ffde9a258160f5586cea886
      
https://github.com/qemu/qemu/commit/534cdbf56c2a72952ffde9a258160f5586cea886
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    M linux-user/sparc/syscall_nr.h
    M linux-user/sparc64/syscall_nr.h

  Log Message:
  -----------
  linux-user: update sparc/syscall_nr.h to linux header 4.16

And kill sys_aplib, add sys_sync_file_range:
on sparc, since linux 2.6.17, aplib syscall has been replaced
 by sync_file_range syscall.
(289eee6fa78e ["SPARC]: Wire up sys_sync_file_range() into syscall tables.")
The syscall has been removed in linux v2.5.71
(6196166fad "[SPARC64]: Kill sys_aplib.")

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: ae68ad9fee4e51eae26e34b43a9e6999bd1c6819
      
https://github.com/qemu/qemu/commit/ae68ad9fee4e51eae26e34b43a9e6999bd1c6819
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix conversion of flock/flock64 l_type field

As l_type values (F_RDLCK, F_WRLCK, F_UNLCK, F_EXLCK, F_SHLCK)
are not bitmasks, we can't use target_to_host_bitmask() and
host_to_target_bitmask() to convert them.

Introduce target_to_host_flock() and host_to_target_flock()
to convert values between host and target.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: 0562384910bb304b6c811ecac0ad95e699a4c368
      
https://github.com/qemu/qemu/commit/0562384910bb304b6c811ecac0ad95e699a4c368
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    A linux-user/sparc/target_errno.h
    M linux-user/sparc/target_syscall.h
    M linux-user/sparc64/target_syscall.h

  Log Message:
  -----------
  linux-user: add sparc/sparc64 specific errno

Copied from linux/arch/sparc/include/uapi/asm/errno.h

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: 9a93c152fcdb4ab2cd85094487b33578fd693915
      
https://github.com/qemu/qemu/commit/9a93c152fcdb4ab2cd85094487b33578fd693915
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-11 (Fri, 11 May 2018)

  Changed paths:
    M linux-user/sparc/target_syscall.h
    M linux-user/sparc64/target_syscall.h

  Log Message:
  -----------
  linux-user: fix UNAME_MACHINE for sparc/sparc64

"sun4" is not recognized by config.guess.
linux defines sparc and sparc64 in arch/sparc/Makefile.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Max Filippov <address@hidden>
Message-Id: <address@hidden>


  Commit: f606e4d6258fa82c3f6c1cc762ebe483db5f5db6
      
https://github.com/qemu/qemu/commit/f606e4d6258fa82c3f6c1cc762ebe483db5f5db6
  Author: Laurent Vivier <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M include/exec/user/thunk.h

  Log Message:
  -----------
  linux-user: correctly align types in thunking code

This is a follow up
of patch:
   commit c2e3dee6e03527baf8698698cce76b1a3174969a
  Author: Laurent Vivier <address@hidden>
  Date:   Sun Feb 13 23:37:34 2011 +0100
       linux-user: Define target alignment size

In my case m68k aligns "int" on 2 not 4. You can check this with the
following program:

int main(void)
{
  struct rtentry rt;
  printf("rt_pad1 %ld %zd\n", offsetof(struct rtentry, rt_pad1),
          sizeof(rt.rt_pad1));
  printf("rt_dst %ld %zd\n", offsetof(struct rtentry, rt_dst),
          sizeof(rt.rt_dst));
  printf("rt_gateway %ld %zd\n", offsetof(struct rtentry, rt_gateway),
          sizeof(rt.rt_gateway));
  printf("rt_genmask %ld %zd\n", offsetof(struct rtentry, rt_genmask),
          sizeof(rt.rt_genmask));
  printf("rt_flags %ld %zd\n", offsetof(struct rtentry, rt_flags),
          sizeof(rt.rt_flags));
  printf("rt_pad2 %ld %zd\n", offsetof(struct rtentry, rt_pad2),
          sizeof(rt.rt_pad2));
  printf("rt_pad3 %ld %zd\n", offsetof(struct rtentry, rt_pad3),
          sizeof(rt.rt_pad3));
  printf("rt_pad4 %ld %zd\n", offsetof(struct rtentry, rt_pad4),
          sizeof(rt.rt_pad4));
  printf("rt_metric %ld %zd\n", offsetof(struct rtentry, rt_metric),
          sizeof(rt.rt_metric));
  printf("rt_dev %ld %zd\n", offsetof(struct rtentry, rt_dev),
          sizeof(rt.rt_dev));
  printf("rt_mtu %ld %zd\n", offsetof(struct rtentry, rt_mtu),
          sizeof(rt.rt_mtu));
  printf("rt_window %ld %zd\n", offsetof(struct rtentry, rt_window),
          sizeof(rt.rt_window));
  printf("rt_irtt %ld %zd\n", offsetof(struct rtentry, rt_irtt),
          sizeof(rt.rt_irtt));
}

And result is :

i386

rt_pad1 0 4
rt_dst 4 16
rt_gateway 20 16
rt_genmask 36 16
rt_flags 52 2
rt_pad2 54 2
rt_pad3 56 4
rt_pad4 62 2
rt_metric 64 2
rt_dev 68 4
rt_mtu 72 4
rt_window 76 4
rt_irtt 80 2

m68k

rt_pad1 0 4
rt_dst 4 16
rt_gateway 20 16
rt_genmask 36 16
rt_flags 52 2
rt_pad2 54 2
rt_pad3 56 4
rt_pad4 62 2
rt_metric 64 2
rt_dev 66 4
rt_mtu 70 4
rt_window 74 4
rt_irtt 78 2

This affects the "route" command :

WITHOUT this patch:

$ sudo route add -net default gw 10.0.3.1 window 1024 irtt 2 eth0
$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.3.1        0.0.0.0         UG        0 67108866  32768 eth0
10.0.3.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0

WITH this patch:

$ sudo route add -net default gw 10.0.3.1 window 1024 irtt 2 eth0
$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.3.1        0.0.0.0         UG        0 1024       2 eth0
10.0.3.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Message-Id: <address@hidden>


  Commit: f39ddb3a08df2d2573d6aff062190f093912f9ef
      
https://github.com/qemu/qemu/commit/f39ddb3a08df2d2573d6aff062190f093912f9ef
  Author: Peter Maydell <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M include/exec/user/thunk.h
    M linux-user/sparc/syscall_nr.h
    A linux-user/sparc/target_errno.h
    M linux-user/sparc/target_syscall.h
    M linux-user/sparc64/syscall_nr.h
    M linux-user/sparc64/target_syscall.h
    M linux-user/syscall.c
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/vivier2/tags/linux-user-for-2.13-pull-request' into staging

# gpg: Signature made Mon 14 May 2018 19:15:02 BST
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier (Red Hat) <address@hidden>"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier2/tags/linux-user-for-2.13-pull-request:
  linux-user: correctly align types in thunking code
  linux-user: fix UNAME_MACHINE for sparc/sparc64
  linux-user: add sparc/sparc64 specific errno
  linux-user: fix conversion of flock/flock64 l_type field
  linux-user: update sparc/syscall_nr.h to linux header 4.16
  linux-user: fix flock/flock64 padding
  linux-user: define correct fcntl() values for sparc

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/c691c8761616...f39ddb3a08df
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]