qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jocelyn Mayer <l_indien@magic.fr>
To: qemu-devel@nongnu.org
Subject: Re: [Fwd: [Qemu-devel] RFC: linux user problems]
Date: Wed, 19 Sep 2007 11:23:03 +0200	[thread overview]
Message-ID: <1190193783.12194.4.camel@jma4.dev.netgem.com> (raw)
In-Reply-To: <20070919090752.GN9972@networkno.de>

On Wed, 2007-09-19 at 10:07 +0100, Thiemo Seufer wrote:
> J. Mayer wrote:
> > Following my previous message, I did a patch that makes syscalls take
> > target_long/target_ulong argument and return target_long value instead
> > of long/unsigned long.
> > I also included the #ifdef protection for do_socketcall and do_ipc to
> > avoid compilation warnings.
> > And I also converted the fd given to do_ioctl to be an int.
> > 
> > In addition to my previous remarks, I noticed some other things while
> > reading the code:
> > - the do_msgctl function seems very strange to me. It looks like half of
> > the code is missing in the switch...
> > - do_ipc directly uses pointers from the emulated environment without
> > using lock_user related functions like it seems to be done everywhere
> > else.
> > - there are at least two problems in IPCOP_shmat:
> >  * the returned address could not fit in the target address space when
> > emulating a 32 bits
> >   target on a 64 bits host
> > * the returned address is always casted into a 32 bits value. I changed
> > this to be target_ulong.
> > - I also noticed some suspicious warnings (cast between pointer and
> > integer of different size) that may hide other problems:
> > * target_to_host_cmsg:567
> > * host_to_target_cmsg:612
> > * do_ipc:1609
> > * do_ipc: 1621
> > * do_ipc: 1645
> > * do_ipc: 1655
> > * do_ipc: 1677 (multiple times)
> > * do_ipc: 1687
> > * do_ipc: 1711
> > * do_syscall:2686
> > * do_syscall: 3903
> > * do_syscall: 4671
> > 
> > May someone take a look at my patch and say if it seems reasonable to
> > include this in the repository ?
> 
> Looks reasonable, but introduces new compiler warnings
> (on a ppc32/Linux host):
> 
> Most (all?) targets show:
> 
> /home/ths/qemu/qemu-work/linux-user/syscall.c: In function do_ipc':
> /home/ths/qemu/qemu-work/linux-user/syscall.c:1612: warning: long int format, target_long arg (arg 2)

My fault, I did only compile on x86_64, forgot to check in 32 bits mode,
and did not see this warning (I may have missed it...), sorry.

> 
> There's also one instance of:
> 
> /home/ths/qemu/qemu-work/linux-user/syscall.c: At top level:
> /home/ths/qemu/qemu-work/linux-user/syscall.c:1258: warning: 'shm_regions' defined but not used
> 
> which looks like a missing #ifdef TARGET_NR_ipc.

I will check more closely as there are also a lot of inline functions
(then not generating compilation warnings) that are used only from
do_ipc. Putting them in the #ifdef TARGET_NR_ipc may show other unused
variables or functions.

Thanks for the report.

      reply	other threads:[~2007-09-19  9:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-18 23:28 [Fwd: [Qemu-devel] RFC: linux user problems] J. Mayer
2007-09-19  9:07 ` Thiemo Seufer
2007-09-19  9:23   ` Jocelyn Mayer [this message]

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=1190193783.12194.4.camel@jma4.dev.netgem.com \
    --to=l_indien@magic.fr \
    --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).