From: Paolo Bonzini <pbonzini@redhat.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: Paul Brook <paul@codesourcery.com>, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 4/4] require #define NEED_GLOBAL_ENV for files that need the global register variable
Date: Thu, 08 Jul 2010 18:39:30 +0200 [thread overview]
Message-ID: <4C35FF42.8030809@redhat.com> (raw)
In-Reply-To: <AANLkTimXt2hLiVRTxnAXbhSRjxx4MD0-uMglOzVB4a7u@mail.gmail.com>
On 07/03/2010 09:23 AM, Blue Swirl wrote:
> On Fri, Jul 2, 2010 at 9:50 AM, Paolo Bonzini<pbonzini@redhat.com> wrote:
>> The *global* env is still unavailable (i.e. no difference WRT poisoning), by
>> virtue of being defined in exec.h which is not available unless -DNEED_CPU_H
>> is defined.
>>
>> So:
>>
>> | before | after
>> ------------+---------------------------------+--------------------------
>> NEED_CPU_H | env not poisoned, global env | same
>> | available iff exec.h included |
>> ------------+---------------------------------+--------------------------
>> !NEED_CPU_H | env poisoned; CPUState | env not poisoned;
>> | not available, so exec.h cannot | exec.h requires cpu.h
>> | be included | so it cannot be included
>
> But why would it be necessary to unpoison 'env' for the lower right
> case? Poisoning protects against accidents (in addition to exec.h
> thing) and there are no downsides.
Because double protection is useless. Two warnings may be better than
one, but we're talking about compilation errors and two errors do not
achieve anything more than one error. Plus, the policy for code using
the global `env' is clear and is not going to change, and including
exec.h outside cpu-exec.c/op_helper.c would be spotted instantly during
code review.
And the downside, of course, is that you're holding up a patch to
improve QEMU's type-safety.
If you want to poison env on all files that do not include exec.h that's
another story. I think it's a good idea, but it's not what the current
code does. So my pending patches would not make anything worse compared
to the status quo, and it's something that can be done after my existing
patches go in.
Besides, I'm on vacation and I try to enjoy nature more than hacking for
these three weeks. :) So if you want me to rebase/resend, that's half
hour work and I'll do it gladly, otherwise I'll pass the ball.
Paolo
next prev parent reply other threads:[~2010-07-08 16:39 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5692464.1280361277887491249.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com>
2010-06-30 8:56 ` [Qemu-devel] Re: [PATCH 4/4] require #define NEED_GLOBAL_ENV for files that need the global register variable Paolo Bonzini
2010-07-01 19:42 ` Blue Swirl
2010-07-02 9:50 ` Paolo Bonzini
2010-07-03 7:23 ` Blue Swirl
2010-07-08 16:39 ` Paolo Bonzini [this message]
2010-06-28 17:17 [Qemu-devel] [PATCH 0/4] introduce NEED_GLOBAL_ENV Paolo Bonzini
2010-06-28 17:17 ` [Qemu-devel] [PATCH 4/4] require #define NEED_GLOBAL_ENV for files that need the global register variable Paolo Bonzini
2010-06-28 20:29 ` Paul Brook
2010-06-29 7:44 ` [Qemu-devel] " Paolo Bonzini
2010-06-29 11:30 ` Paul Brook
2010-06-29 13:51 ` Paolo Bonzini
2010-06-29 14:24 ` Paolo Bonzini
2010-06-29 15:28 ` Paul Brook
2010-06-29 15:40 ` Paolo Bonzini
2010-06-30 0:34 ` Paul Brook
2010-06-29 18:22 ` Blue Swirl
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=4C35FF42.8030809@redhat.com \
--to=pbonzini@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=paul@codesourcery.com \
--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).