qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 3ffee3: vmxnet3: fix NICState cleanup


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 3ffee3: vmxnet3: fix NICState cleanup
Date: Mon, 10 Jun 2013 10:30:10 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 3ffee3cd5fb29de2115bdcbde0a02f47ce69a24c
      
https://github.com/qemu/qemu/commit/3ffee3cd5fb29de2115bdcbde0a02f47ce69a24c
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-06-05 (Wed, 05 Jun 2013)

  Changed paths:
    M hw/net/vmxnet3.c

  Log Message:
  -----------
  vmxnet3: fix NICState cleanup

Use qemu_del_nic() instead of qemu_del_net_client() to correctly free
the entire NICState.

Cc: address@hidden
Reported-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: c87826a878be05208c3906eb9d5e1f37cff5e98e
      
https://github.com/qemu/qemu/commit/c87826a878be05208c3906eb9d5e1f37cff5e98e
  Author: Jason Wang <address@hidden>
  Date:   2013-06-07 (Fri, 07 Jun 2013)

  Changed paths:
    M net/tap.c

  Log Message:
  -----------
  tap: fix NULL dereference when passing invalid parameters to tap

This patch forbid the following invalid parameters to tap:

1) fd and vhostfds were specified but vhostfd were not specified
2) vhostfds were specified but fds were not specified
3) fds and vhostfd were specified

For 1 and 2, net_init_tap_one() will still pass NULL as vhostfdname to
monitor_handle_fd_param(), which may crash the qemu.

Also remove the unnecessary has_fd check.

Cc: Paolo Bonzini <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Cc: Laszlo Ersek <address@hidden>
Cc: address@hidden
Signed-off-by: Jason Wang <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7810d29198790a805936e7a2f44c055184a56b0a
      
https://github.com/qemu/qemu/commit/7810d29198790a805936e7a2f44c055184a56b0a
  Author: Luiz Capitulino <address@hidden>
  Date:   2013-06-07 (Fri, 07 Jun 2013)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: new maintainers for qapi-schema.json

I'm facing two problems lately wrt QMP patch review: increasingly
lack of bandwidth and lack of background in so many different areas
that are getting new QMP commands almost every week.

In order to help me mitigate this problem, I'm adding Eric and Markus
(besides me) as maintainers of the qapi-schema.json file.

Markus has been an old timer reviewer. Eric is being the most active
and prolific reviewer of QMP patches for some time now.

I believe Markus and Eric will keep doing their work as before, but
starting now I'll require the ACK of at least one of them before
appling a patch/series that touches the qapi-schema.json file.

Signed-off-by: Luiz Capitulino <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Acked-by: Markus Armbruster <address@hidden>


  Commit: 8899b4ae2d792967b7655d3081fb2994426e4658
      
https://github.com/qemu/qemu/commit/8899b4ae2d792967b7655d3081fb2994426e4658
  Author: Luiz Capitulino <address@hidden>
  Date:   2013-06-07 (Fri, 07 Jun 2013)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: split Monitor (QMP/HMP) entry

This entry doesn't reflect reality for a few years now. This commit
splits it into Human Monitor (HMP), QAPI and QMP. Markus is dropped
as a maintainer.

This is what we have been for the last few years. Also, it's going
to help me to offload some of this work to someone else in the near
future.

Signed-off-by: Luiz Capitulino <address@hidden>
Acked-by: Markus Armbruster <address@hidden>


  Commit: 9914fbedf21f1ffd45af67c8f3fe8a2e8f7e7785
      
https://github.com/qemu/qemu/commit/9914fbedf21f1ffd45af67c8f3fe8a2e8f7e7785
  Author: Marcelo Tosatti <address@hidden>
  Date:   2013-06-07 (Fri, 07 Jun 2013)

  Changed paths:
    M QMP/qmp-events.txt

  Log Message:
  -----------
  correct RTC_CHANGE_EVENT description (v2)

Fix RTC_CHANGE event description to match implementation.

Signed-off-by: Marcelo Tosatti <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>


  Commit: 26ac7a31fbf5522d2ca3f0e2e5b5c8e915701f66
      
https://github.com/qemu/qemu/commit/26ac7a31fbf5522d2ca3f0e2e5b5c8e915701f66
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: fix for commit 87f25c12bfeaaa0c41fb857713bbc7e8a9b757dc

This commit used the wrong check to prevent an assertion failure.
After this commit, you need to start a guest in the monitor, you
cannot use anymore the "c" command in the debugger.  This is
undesirable.  The commit's aim was to prevent a restart
after a KVM internal error or something like that; use
runstate_needs_reset() for that.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Luiz Capitulino <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: bc7d0e66741724216cc104034838eb34f0e94b8d
      
https://github.com/qemu/qemu/commit/bc7d0e66741724216cc104034838eb34f0e94b8d
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M gdbstub.c
    M vl.c

  Log Message:
  -----------
  gdbstub: let the debugger resume from guest panicked state

While in general we forbid a "continue" from the guest panicked
state, it makes sense to have an exception for that when continuing
in the debugger.  Perhaps the guest entered that state due to a bug,
for example, and we want to continue no matter what.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Luiz Capitulino <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 4039736e6f7867a4f937145afec7ab56531c0be4
      
https://github.com/qemu/qemu/commit/4039736e6f7867a4f937145afec7ab56531c0be4
  Author: Peter Maydell <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M fpu/softfloat-macros.h

  Log Message:
  -----------
  softfloat: Fix shift128Right for shift counts 64..127

shift128Right would give the wrong result for a shift count
between 64 and 127. This was never noticed because all of
our uses of this function are guaranteed not to use shift
counts in this range.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: f7da9c17c114417911ac2008d0401084a5030391
      
https://github.com/qemu/qemu/commit/f7da9c17c114417911ac2008d0401084a5030391
  Author: Anthony Liguori <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M Makefile
    A pc-bios/qemu_logo_no_text.svg
    M ui/gtk.c

  Log Message:
  -----------
  gtk: use better icon

The current icon looks pretty terrible rendered in Gnome.  This
switches to a transparent SVG which looks much nicer.

Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 97f31cbc71fc13b3091893313a555c3cf1ecb798
      
https://github.com/qemu/qemu/commit/97f31cbc71fc13b3091893313a555c3cf1ecb798
  Author: Anthony Liguori <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M hw/net/vmxnet3.c
    M net/tap.c

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/net' into staging

# By Jason Wang (1) and Stefan Hajnoczi (1)
# Via Stefan Hajnoczi
* stefanha/net:
  tap: fix NULL dereference when passing invalid parameters to tap
  vmxnet3: fix NICState cleanup

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: b62cd318daaa3d94c150d87dc2c8466b9463cef5
      
https://github.com/qemu/qemu/commit/b62cd318daaa3d94c150d87dc2c8466b9463cef5
  Author: Anthony Liguori <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M MAINTAINERS
    M QMP/qmp-events.txt

  Log Message:
  -----------
  Merge remote-tracking branch 'luiz/queue/qmp' into staging

# By Luiz Capitulino (2) and Marcelo Tosatti (1)
# Via Luiz Capitulino
* luiz/queue/qmp:
  correct RTC_CHANGE_EVENT description (v2)
  MAINTAINERS: split Monitor (QMP/HMP) entry
  MAINTAINERS: new maintainers for qapi-schema.json

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: bd5c51ee6c4f1c79cae5ad2516d711a27b4ea8ec
      
https://github.com/qemu/qemu/commit/bd5c51ee6c4f1c79cae5ad2516d711a27b4ea8ec
  Author: Michael Roth <address@hidden>
  Date:   2013-06-10 (Mon, 10 Jun 2013)

  Changed paths:
    M backends/baum.c
    M backends/msmouse.c
    M include/sysemu/char.h
    M qemu-char.c
    M spice-qemu-char.c
    M ui/console.c
    M ui/gtk.c

  Log Message:
  -----------
  qemu-char: don't issue CHR_EVENT_OPEN in a BH

When CHR_EVENT_OPENED was initially added, it was CHR_EVENT_RESET,
and it was issued as a bottom-half:

86e94dea5b740dad65446c857f6959eae43e0ba6

Which we basically used to print out a greeting/prompt for the
monitor.

AFAICT the only reason this was ever done in a BH was because in
some cases we'd modify the chr_write handler for a new chardev
backend *after* the site where we issued the reset (see:
86e94d:qemu_chr_open_stdio())

At some point this event was renamed to CHR_EVENT_OPENED, and we've
maintained the use of this BH ever since.

However, due to 9f939df955a4152aad69a19a77e0898631bb2c18, we schedule
the BH via g_idle_add(), which is causing events to sometimes be
delivered after we've already begun processing data from backends,
leading to:

 known bugs:

  QMP:
    session negotation resets with OPENED event, in some cases this
    is causing new sessions to get sporadically reset

 potential bugs:

  hw/usb/redirect.c:
    can_read handler checks for dev->parser != NULL, which may be
    true if CLOSED BH has not been executed yet. In the past, OPENED
    quiesced outstanding CLOSED events prior to us reading client
    data. If it's delayed, our check may allow reads to occur even
    though we haven't processed the OPENED event yet, and when we
    do finally get the OPENED event, our state may get reset.

  qtest.c:
    can begin session before OPENED event is processed, leading to
    a spurious reset of the system and irq_levels

  gdbstub.c:
    may start a gdb session prior to the machine being paused

To fix these, let's just drop the BH.

Since the initial reasoning for using it still applies to an extent,
work around that by deferring the delivery of CHR_EVENT_OPENED until
after the chardevs have been fully initialized, toward the end of
qmp_chardev_add() (or some cases, qemu_chr_new_from_opts()). This
defers delivery long enough that we can be assured a CharDriverState
is fully initialized before CHR_EVENT_OPENED is sent.

Also, rather than requiring each chardev to do an explicit open, do it
automatically, and allow the small few who don't desire such behavior to
suppress the OPENED-on-init behavior by setting a 'explicit_be_open'
flag.

We additionally add missing OPENED events for stdio backends on w32,
which were previously not being issued, causing us to not recieve the
banner and initial prompts for qmp/hmp.

Reported-by: Stefan Priebe <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Message-id: address@hidden
Cc: address@hidden
Signed-off-by: Michael Roth <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4f293bd6e537...bd5c51ee6c4f

reply via email to

[Prev in Thread] Current Thread [Next in Thread]