qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Fix and cleanup IPCOP_msg* ipc calls handling
Date: Mon, 13 Oct 2008 22:52:44 +0200	[thread overview]
Message-ID: <20081013205244.GA18008@volta.aurel32.net> (raw)
In-Reply-To: <20081013184804.GA21226@localhost.localdomain>

On Mon, Oct 13, 2008 at 09:48:09PM +0300, Kirill A. Shutemov wrote:
> On Mon, Oct 13, 2008 at 05:53:11PM +0200, Aurelien Jarno wrote:
> > On Mon, Oct 13, 2008 at 01:10:30PM +0300, Kirill A. Shutemov wrote:
> > > Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
> > > ---
> > >  linux-user/syscall.c |  173 ++++++++++++++++++++++++++++++++++----------------
> > >  1 files changed, 117 insertions(+), 56 deletions(-)
> > 
> > Please find my comments below. In general, please avoid mixing
> > indentation changes with code changes. This only makes the code more
> > difficult to review.
> 
> Ok.
> 
> By the way, what is correct indentation options for qemu? I configure my vim 
> with softwidth=4 and set expandtab. Is it correct?

I don't really think there is a standard, it seems to vary from file to
file. What I do care about is that lines of the patch actually have a code
change, not only an indentation change. Otherwise it is difficult to
read.

> > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> > > index 40e985a..7e67093 100644
> > > --- a/linux-user/syscall.c
> > > +++ b/linux-user/syscall.c
> > > @@ -1611,7 +1611,6 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
> > >  }
> > >  #endif
> > >  
> > > -#ifdef TARGET_NR_ipc
> > >  #define N_SHM_REGIONS	32
> > >  
> > >  static struct shm_region {
> > > @@ -1845,20 +1844,26 @@ static inline abi_long do_semctl(int first, int second, int third,
> > >  
> > >  struct target_msqid_ds
> > >  {
> > > -  struct target_ipc_perm msg_perm;
> > > -  abi_ulong msg_stime;
> > > -  abi_ulong __unused1;
> > > -  abi_ulong msg_rtime;
> > > -  abi_ulong __unused2;
> > > -  abi_ulong msg_ctime;
> > > -  abi_ulong __unused3;
> > > -  abi_ulong __msg_cbytes;
> > > -  abi_ulong msg_qnum;
> > > -  abi_ulong msg_qbytes;
> > > -  abi_ulong msg_lspid;
> > > -  abi_ulong msg_lrpid;
> > > -  abi_ulong __unused4;
> > > -  abi_ulong __unused5;
> > > +    struct target_ipc_perm msg_perm;
> > > +    abi_ulong msg_stime;
> > > +#if TARGET_ABI_BITS == 32
> > > +    abi_ulong __unused1;
> > > +#endif
> > > +    abi_ulong msg_rtime;
> > > +#if TARGET_ABI_BITS == 32
> > > +    abi_ulong __unused2;
> > > +#endif
> > > +    abi_ulong msg_ctime;
> > > +#if TARGET_ABI_BITS == 32
> > > +    abi_ulong __unused3;
> > > +#endif
> > 
> > Could you explain me why those __unused* are only present with
> > TARGET_ABI_BITS?
> 
> They needed to align following filds to 64-bit on 32-bit hosts. Since on
> 64-bit hosts sizeof(long) == 8, it's unneeded.
> 
> > This is not consistent with the kernel interface
> > defined in the glibc.
> 
> Really? 
>
> glibc 2.5.1, /usr/include/bits/msq.h:

This is not the right file to look at, as it may, and actually depends
on your architecture. You have to look at the source in the glibc.

On my side I was looking at sysdeps/unix/sysv/linux/bits/msq.h, which
doesn't have those #ifdef. It is overrided by architectures specific
versions.

But at the end you are lucky, if you look at all the different msq.h
files, your patch is correct.

> > > +    abi_ulong __msg_cbytes;
> > > +    abi_ulong msg_qnum;
> > > +    abi_ulong msg_qbytes;
> > > +    abi_ulong msg_lspid;
> > > +    abi_ulong msg_lrpid;
> > > +    abi_ulong __unused4;
> > > +    abi_ulong __unused5;
> > >  };
> 
> <skip/>  
> 
> > > +static inline abi_long do_msgctl(int msgid, int cmd, abi_long ptr)
> > >  {
> > >      struct msqid_ds dsarg;
> > > -    int cmd = second&0xff;
> > > -    abi_long ret = 0;
> > > -    switch( cmd ) {
> > > +    struct msginfo msginfo;
> > > +    abi_long ret = -TARGET_EINVAL;
> > > +
> > > +    cmd &= 0xff;
> > > +
> > > +    switch (cmd) {
> > >      case IPC_STAT:
> > >      case IPC_SET:
> > > -        target_to_host_msqid_ds(&dsarg,ptr);
> > > -        ret = get_errno(msgctl(first, cmd, &dsarg));
> > > -        host_to_target_msqid_ds(ptr,&dsarg);
> > > -    default:
> > > -        ret = get_errno(msgctl(first, cmd, &dsarg));
> > 
> > 	How is default handled now?
> 
> Since we handle all valid cmd, we just return -TARGET_EINVAL.

ok.

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

  reply	other threads:[~2008-10-13 20:52 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-13 10:10 [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
2008-10-13 10:10 ` [Qemu-devel] [PATCH] Fix getdents* syscalls Kirill A. Shutemov
2008-10-13 10:10   ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_msg* ipc calls handling Kirill A. Shutemov
2008-10-13 10:10     ` [Qemu-devel] [PATCH] Implement msg* syscalls Kirill A. Shutemov
2008-10-13 10:10       ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_sem* ipc calls handling Kirill A. Shutemov
2008-10-13 10:10         ` [Qemu-devel] [PATCH] Implement sem* syscalls Kirill A. Shutemov
2008-10-13 10:10           ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_shm* ipc calls handling Kirill A. Shutemov
2008-10-13 10:10             ` [Qemu-devel] [PATCH] Implement shm* syscalls Kirill A. Shutemov
2008-10-13 10:10               ` [Qemu-devel] [PATCH] Fix fstatat64()/newfstatat() syscall implementation Kirill A. Shutemov
2008-10-13 10:10                 ` [Qemu-devel] [PATCH] Introduce --enable-binfmt-misc configure option Kirill A. Shutemov
2008-10-13 10:10                   ` [Qemu-devel] [PATCH] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets Kirill A. Shutemov
2008-10-13 10:10                     ` [Qemu-devel] [PATCH] mremap(): handle MREMAP_FIXED and MREMAP_MAYMOVE correctly Kirill A. Shutemov
2008-10-13 10:10                       ` [Qemu-devel] [PATCH] shmat(): use mmap_find_vma to find free memory area Kirill A. Shutemov
2008-10-17  6:34                         ` [Qemu-devel] [PATCH] mmap: add check if requested memory area fits target address space Kirill A. Shutemov
2008-10-17  6:34                           ` [Qemu-devel] [PATCH] linux-user, x86: use target_mmap() to allocate idt, gdt and ldt tables Kirill A. Shutemov
2008-11-01  9:33                             ` [Qemu-devel] " Jan Kiszka
2008-11-01 10:27                               ` Kirill A. Shutemov
2008-11-01 10:54                                 ` Jan Kiszka
2008-11-01 11:12                                   ` Kirill A. Shutemov
2008-11-01 11:16                                     ` Kirill A. Shutemov
2008-11-02 19:36                                       ` Jan Kiszka
2008-11-01 11:34                               ` Laurent Desnogues
2008-11-01 10:06                             ` [Qemu-devel] [PATCH, v2] " Kirill A. Shutemov
2008-10-27 13:08                           ` [Qemu-devel] [PATCH] mmap: add check if requested memory area fits target address space andrzej zaborowski
2008-10-27 15:48                             ` Kirill A. Shutemov
2008-10-27 15:55                               ` Andreas Schwab
2008-10-27 17:32                                 ` Kirill A. Shutemov
2008-10-27 19:37                               ` andrzej zaborowski
2008-10-27 20:06                                 ` Kirill A. Shutemov
2008-11-10  3:30                                   ` andrzej zaborowski
2008-11-10  5:55                                     ` Kirill A. Shutemov
2008-11-10 12:45                                       ` andrzej zaborowski
2008-10-27 17:48                           ` [Qemu-devel] [PATCH, v2] " Kirill A. Shutemov
2008-11-10  7:11                             ` [Qemu-devel] [PATCH, v3] " Kirill A. Shutemov
2008-11-10  7:09                         ` [Qemu-devel] [PATCH, v3] shmat(): use mmap_find_vma to find free memory area Kirill A. Shutemov
2008-10-14  4:04                       ` [Qemu-devel] [PATCH] mremap(): handle MREMAP_FIXED and MREMAP_MAYMOVE correctly Vince Weaver
2008-10-14  5:22                         ` Kirill A. Shutemov
2008-10-26 16:14                     ` [Qemu-devel] [PATCH] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets Vince Weaver
2008-10-27 17:49                     ` [Qemu-devel] [PATCH, v2] " Kirill A. Shutemov
2008-11-01 16:51                       ` Jamie Lokier
2008-11-01 16:55                         ` Kirill A. Shutemov
2008-11-10  3:54                           ` andrzej zaborowski
2008-11-10  6:07                             ` Kirill A. Shutemov
2008-11-10  8:02                             ` Jamie Lokier
2008-11-10 12:55                               ` andrzej zaborowski
2008-11-10 14:38                                 ` Kirill A. Shutemov
2008-11-11  0:53                                   ` Jamie Lokier
2008-11-14 12:23                                     ` Kirill A. Shutemov
2008-11-14 12:51                                       ` Paul Brook
2008-11-14 13:08                                         ` Jamie Lokier
2008-11-14 13:51                                           ` Kirill A. Shutemov
2008-11-10  7:07                       ` [Qemu-devel] [PATCH, v3] " Kirill A. Shutemov
2008-11-14 13:57                         ` [Qemu-devel] [PATCH, v4] " Kirill A. Shutemov
2008-11-01 10:10                   ` [Qemu-devel] [PATCH, v2] Introduce --enable-binfmt-misc configure option Kirill A. Shutemov
2008-11-10 13:03                     ` andrzej zaborowski
2008-10-16 20:55               ` [Qemu-devel] [PATCH] Implement shm* syscalls + Implement sem* syscalls Martin Mohring
2008-10-17  4:09                 ` Kirill A. Shutemov
2008-10-17  8:27                   ` Martin Mohring
2008-10-17 10:12                     ` Kirill A. Shutemov
2008-11-01  9:56                 ` Aurelien Jarno
2008-11-01 10:08                   ` Kirill A. Shutemov
2008-10-24  7:24         ` [Qemu-devel] Re: [PATCH] Fix and cleanup IPCOP_sem* ipc calls handling Kirill A. Shutemov
2008-10-13 21:09       ` [Qemu-devel] [PATCH] Implement msg* syscalls Aurelien Jarno
2008-10-13 15:53     ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_msg* ipc calls handling Aurelien Jarno
2008-10-13 18:48       ` Kirill A. Shutemov
2008-10-13 20:52         ` Aurelien Jarno [this message]
2008-10-13 21:09     ` Aurelien Jarno
2008-10-13 12:48   ` [Qemu-devel] [PATCH] Fix getdents* syscalls Aurelien Jarno
2008-10-13 12:59     ` Kirill A. Shutemov
2008-10-13 13:10       ` Aurelien Jarno
  -- strict thread matches above, loose matches on Subject: below --
2008-10-08 18:54 [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
2008-10-08 18:54 ` [Qemu-devel] [PATCH] Fix getdents* syscalls Kirill A. Shutemov
2008-10-08 18:54   ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_msg* ipc calls handling Kirill A. Shutemov
2008-10-01 13:56 [Qemu-devel] [PATCH] Add fadvise64 stubs Kirill A. Shutemov
2008-10-01 13:56 ` [Qemu-devel] [PATCH] Add mincore syscall Kirill A. Shutemov
2008-10-01 13:56   ` [Qemu-devel] [PATCH] Add readahead syscall Kirill A. Shutemov
2008-10-01 13:56     ` [Qemu-devel] [PATCH] Add inotify syscall family Kirill A. Shutemov
2008-10-01 13:56       ` [Qemu-devel] [PATCH] Fix getdents* syscalls Kirill A. Shutemov
2008-10-01 13:56         ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_msg* ipc calls handling Kirill A. Shutemov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081013205244.GA18008@volta.aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).