qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

  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).