All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <mlureau@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Jason Wang" <jasowang@redhat.com>,
	qemu-devel@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] net: cleanup before character devices
Date: Mon, 11 Jul 2016 08:51:39 -0400 (EDT)	[thread overview]
Message-ID: <1535901265.3647445.1468241499079.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <69e54b53-afa4-c0e7-73b7-8d6e74ac864e@redhat.com>

Hi

----- Original Message -----
> 
> 
> On 11/07/2016 13:23, Jason Wang wrote:
> > 
> > 
> > On 2016年07月11日 17:18, Paolo Bonzini wrote:
> >>
> >> On 11/07/2016 11:06, Jason Wang wrote:
> >>>
> >>> On 2016年07月08日 23:27, Paolo Bonzini wrote:
> >>>> Otherwise, vhost-user causes a use-after-free.
> >>>>
> >>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> >>>> ---
> >>>>    vl.c | 6 +++---
> >>>>    1 file changed, 3 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/vl.c b/vl.c
> >>>> index d0b9ff9..005162d 100644
> >>>> --- a/vl.c
> >>>> +++ b/vl.c
> >>>> @@ -4327,9 +4327,6 @@ int main(int argc, char **argv, char **envp)
> >>>>            qemu_opts_del(icount_opts);
> >>>>        }
> >>>>    -    /* clean up network at qemu process termination */
> >>>> -    atexit(&net_cleanup);
> >>>> -
> >>>>        if (default_net) {
> >>>>            QemuOptsList *net = qemu_find_opts("net");
> >>>>            qemu_opts_set(net, NULL, "type", "nic", &error_abort);
> >>>> @@ -4596,6 +4593,9 @@ int main(int argc, char **argv, char **envp)
> >>>>    #ifdef CONFIG_TPM
> >>>>        tpm_cleanup();
> >>>>    #endif
> >>>> +
> >>>> +    /* vhost-user must be cleaned up before chardevs.  */
> >>>> +    net_cleanup();
> >>>>        qemu_chr_cleanup();
> >>>>          return 0;
> >>> Patch does not seems to be applied on master. Which tree is this patch
> >>> based?
> >> It's applied on top of Marc-André's character device cleanup series.
> > 
> > Ok, but looks like the issue we tried to solve with commit
> > f30dbae63a46f23116715dff8d130c7d01ff02be will appear again?
> 
> You're right. :/
> 
> Marc-André, I think a possible solution is this:
> 
> 1) add a Notifier to struct TAPState and register it with
> qemu_add_exit_notifier.  The notifier, when called, invokes the down_script.
> 
> 2) in tap_cleanup, invoke the down_script and unregister the notifier
> with qemu_remove_exit_notifier.
> 
> Can you implement this?

What if we register an exit notifier right before leaving main() ? (qemu_add_exit_notifier(&chr_cleanup_notifier))

So that qemu_chr_cleanup() is only invoked at the last time when doing main() exit?

  reply	other threads:[~2016-07-11 12:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-08 15:27 [Qemu-devel] [PATCH] net: cleanup before character devices Paolo Bonzini
2016-07-08 15:42 ` Marc-André Lureau
2016-07-08 15:43   ` Paolo Bonzini
2016-07-11  9:06 ` Jason Wang
2016-07-11  9:18   ` Paolo Bonzini
2016-07-11 11:23     ` Jason Wang
2016-07-11 11:29       ` Paolo Bonzini
2016-07-11 12:51         ` Marc-André Lureau [this message]
2016-07-11 13:02           ` Paolo Bonzini

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=1535901265.3647445.1468241499079.JavaMail.zimbra@redhat.com \
    --to=mlureau@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.