qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] f27206: hw/audio/hda: free timer on exit


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] f27206: hw/audio/hda: free timer on exit
Date: Mon, 14 Oct 2024 09:11:10 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: f27206ceedbe2efae37c8d143c5eb2db05251508
      
https://github.com/qemu/qemu/commit/f27206ceedbe2efae37c8d143c5eb2db05251508
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/audio/hda-codec.c

  Log Message:
  -----------
  hw/audio/hda: free timer on exit

Fixes: 280c1e1cd ("audio/hda: create millisecond timers that handle IO")

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-2-marcandre.lureau@redhat.com>


  Commit: 6d6e23361fc732e4fe36a8bc5873b85f264ed53a
      
https://github.com/qemu/qemu/commit/6d6e23361fc732e4fe36a8bc5873b85f264ed53a
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/audio/hda-codec.c

  Log Message:
  -----------
  hw/audio/hda: fix memory leak on audio setup

When SET_STREAM_FORMAT is called, we should clear the existing setup.

Factor out common function to close a stream.

Direct leak of 144 byte(s) in 3 object(s) allocated from:
    #0 0x7f91d38f7350 in calloc (/lib64/libasan.so.8+0xf7350) (BuildId: 
a4ad7eb954b390cf00f07fa10952988a41d9fc7a)
    #1 0x7f91d2ab7871 in g_malloc0 (/lib64/libglib-2.0.so.0+0x64871) (BuildId: 
36b60dbd02e796145a982d0151ce37202ec05649)
    #2 0x562fa2f447ee in timer_new_full 
/home/elmarco/src/qemu/include/qemu/timer.h:538
    #3 0x562fa2f4486f in timer_new 
/home/elmarco/src/qemu/include/qemu/timer.h:559
    #4 0x562fa2f448a9 in timer_new_ns 
/home/elmarco/src/qemu/include/qemu/timer.h:577
    #5 0x562fa2f47955 in hda_audio_setup ../hw/audio/hda-codec.c:490
    #6 0x562fa2f4897e in hda_audio_command ../hw/audio/hda-codec.c:605

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-3-marcandre.lureau@redhat.com>


  Commit: 244d52ff736fefc3dd364ed091720aa896af306d
      
https://github.com/qemu/qemu/commit/244d52ff736fefc3dd364ed091720aa896af306d
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c

  Log Message:
  -----------
  ui/dbus: fix leak on message filtering

A filter function that wants to drop a message should return NULL, in
which case it must also unref the message itself.

Fixes: fa88b85de ("ui/dbus: filter out pending messages when scanout")

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-4-marcandre.lureau@redhat.com>


  Commit: 330ef31deb2e5461cff907488b710f5bd9cd2327
      
https://github.com/qemu/qemu/commit/330ef31deb2e5461cff907488b710f5bd9cd2327
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/display/virtio-gpu.c
    M include/ui/qemu-pixman.h
    M ui/console.c
    M ui/qemu-pixman.c

  Log Message:
  -----------
  ui/win32: fix potential use-after-free with dbus shared memory

DisplaySurface may be free before the pixman image is freed, since the
image is refcounted and used by different objects, including pending
dbus messages.

Furthermore, setting the destroy function in
create_displaysurface_from() isn't appropriate, as it may not be used,
and may be overriden as in ramfb.

Set the destroy function when the shared handle is set, use the HANDLE
directly for destroy data, using a single common helper
qemu_pixman_win32_image_destroy().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-5-marcandre.lureau@redhat.com>


  Commit: cf59889781297a5618f1735a5f31402caa806b42
      
https://github.com/qemu/qemu/commit/cf59889781297a5618f1735a5f31402caa806b42
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c

  Log Message:
  -----------
  ui/dbus: fix filtering all update messages

Filtering pending messages when a new scanout is given shouldn't discard
pending cursor changes, for example.

Since filtering happens in a different thread, use atomic set/get.

Fixes: fa88b85dea ("ui/dbus: filter out pending messages when scanout")

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-6-marcandre.lureau@redhat.com>


  Commit: 6b9524dfa550e4ce66451e3bdfbe61f2a683fddc
      
https://github.com/qemu/qemu/commit/6b9524dfa550e4ce66451e3bdfbe61f2a683fddc
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c

  Log Message:
  -----------
  ui/dbus: discard display messages on disable

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-7-marcandre.lureau@redhat.com>


  Commit: dcf62fb6ce8f56709d74c9b79c15478b9f3ff266
      
https://github.com/qemu/qemu/commit/dcf62fb6ce8f56709d74c9b79c15478b9f3ff266
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c

  Log Message:
  -----------
  ui/dbus: discard pending CursorDefine on new one

Similar to scanout updates, let's discard pending cursor changes.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-8-marcandre.lureau@redhat.com>


  Commit: c90204b65400d77a918844889ad6789858406203
      
https://github.com/qemu/qemu/commit/c90204b65400d77a918844889ad6789858406203
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M util/memfd.c

  Log Message:
  -----------
  util/memfd: report potential errors on free

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-9-marcandre.lureau@redhat.com>


  Commit: 1bfb726112ea4fda07c988f08df32d1eebb9abec
      
https://github.com/qemu/qemu/commit/1bfb726112ea4fda07c988f08df32d1eebb9abec
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/display/virtio-gpu.c
    M include/ui/qemu-pixman.h
    M ui/console.c
    M ui/qemu-pixman.c

  Log Message:
  -----------
  ui/pixman: generalize shared_image_destroy

Learn to free memfd-allocated shared memory.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-10-marcandre.lureau@redhat.com>


  Commit: 2448ff392c46aec2835f5eb6214e73438bbecda5
      
https://github.com/qemu/qemu/commit/2448ff392c46aec2835f5eb6214e73438bbecda5
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-console.c

  Log Message:
  -----------
  ui/dbus: do not limit to one listener per connection / bus name

This is an arbitrary limitation that doesn't concern QEMU directly and
may make some use cases unnecessarily more complicated.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-11-marcandre.lureau@redhat.com>


  Commit: 28a3ca04782c5b72b85e197ccfab287a66ce76cb
      
https://github.com/qemu/qemu/commit/28a3ca04782c5b72b85e197ccfab287a66ce76cb
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c
    M ui/trace-events

  Log Message:
  -----------
  ui/dbus: add trace for can_share_map

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-12-marcandre.lureau@redhat.com>


  Commit: ec818df0005d1598d249f0cfea557226b6ad89a6
      
https://github.com/qemu/qemu/commit/ec818df0005d1598d249f0cfea557226b6ad89a6
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M include/ui/surface.h
    M ui/console.c

  Log Message:
  -----------
  ui/surface: allocate shared memory on !win32

Use qemu_memfd_alloc() to allocate the display surface memory, which
will fallback on tmpfile/mmap() on systems without memfd, and allow to
share the display with other processes.

This is similar to how display memory is allocated on win32 since commit
09b4c198 ("console/win32: allocate shareable display surface").

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-13-marcandre.lureau@redhat.com>


  Commit: c118c8eb3e63c02421e8a02e82ffab6fa8369301
      
https://github.com/qemu/qemu/commit/c118c8eb3e63c02421e8a02e82ffab6fa8369301
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M meson.build

  Log Message:
  -----------
  meson: find_program('gdbus-codegen') directly

gio.pc variable is a bit bogus in context of cross-compilation, since it
contains an absolute path, relative to the sysroot directory. On Fedora, it ends
up as:
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/usr/bin/gdbus-codegen
path which does not exist because it is not shipped by Fedora mingw
packages.

Instead, we can rely on meson find_program() behaviour to do a better
job based on its search order and capabilities.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-14-marcandre.lureau@redhat.com>


  Commit: 3a9d38d31ea7bf99c62c8d97433baa85b3bdd5c9
      
https://github.com/qemu/qemu/commit/3a9d38d31ea7bf99c62c8d97433baa85b3bdd5c9
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-display1.xml

  Log Message:
  -----------
  ui/dbus: make Listener.Win32.Map win32-specific

There are no types specific to Windows, so the code compiles on other
platforms, but its useless on !Windows.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-15-marcandre.lureau@redhat.com>


  Commit: 4de1797ff6ceb7387cdb967ec1fa0128624ff405
      
https://github.com/qemu/qemu/commit/4de1797ff6ceb7387cdb967ec1fa0128624ff405
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-display1.xml

  Log Message:
  -----------
  ui/dbus: add Listener.Unix.Map interface XML

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-16-marcandre.lureau@redhat.com>


  Commit: 48b7ef0f0fc3c3033797b67d1554987a516488f9
      
https://github.com/qemu/qemu/commit/48b7ef0f0fc3c3033797b67d1554987a516488f9
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M ui/dbus-listener.c

  Log Message:
  -----------
  ui/dbus: implement Unix.Map

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-17-marcandre.lureau@redhat.com>


  Commit: 5f899c34af1dbb0f621287faf9bcfb60fa237543
      
https://github.com/qemu/qemu/commit/5f899c34af1dbb0f621287faf9bcfb60fa237543
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/display/virtio-gpu.c
    M include/hw/virtio/virtio-gpu.h

  Log Message:
  -----------
  virtio-gpu: allocate shareable 2d resources on !win32

Similar to what was done in commit 9462ff46 ("virtio-gpu/win32: allocate
shareable 2d resources/images") for win32, allocate resource memory with
memfd, so the associated display surface memory can be shared with a
different process.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-18-marcandre.lureau@redhat.com>


  Commit: 1ff788db9781615be745671ebdb2eb82c137c5b8
      
https://github.com/qemu/qemu/commit/1ff788db9781615be745671ebdb2eb82c137c5b8
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M hw/display/virtio-gpu.c
    M include/hw/virtio/virtio-gpu.h
    M include/ui/qemu-pixman.h
    M include/ui/surface.h
    M ui/console.c
    M ui/dbus-listener.c
    M ui/qemu-pixman.c

  Log Message:
  -----------
  ui: refactor using a common qemu_pixman_shareable

Use a common shareable type for win32 & unix, and helper functions.
This simplify the code as it avoids a lot of #ifdef'ery.

Note: if it helps review, commits could be reordered to introduce the
common type before introducing shareable memory for unix.

Suggested-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-19-marcandre.lureau@redhat.com>


  Commit: ab10297a4ab1dac64baf04ed66929bef60e67d2e
      
https://github.com/qemu/qemu/commit/ab10297a4ab1dac64baf04ed66929bef60e67d2e
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M tests/qtest/dbus-display-test.c

  Log Message:
  -----------
  tests: add basic -display dbus Map.Unix test

Only check we eventually get a shared memory scanout.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20241008125028.1177932-20-marcandre.lureau@redhat.com>


  Commit: 4cd78a3db2478d3c1527905a26c9d3fbee83ccac
      
https://github.com/qemu/qemu/commit/4cd78a3db2478d3c1527905a26c9d3fbee83ccac
  Author: Michal Privoznik <mprivozn@redhat.com>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M audio/pwaudio.c

  Log Message:
  -----------
  audio/pw: Report more accurate error when connecting to PipeWire fails

According to its man page [1], pw_context_connect() sets errno on
failure:

  Returns a Core on success or NULL with errno set on error.

It may be handy to see errno when figuring out why PipeWire
failed to connect. That leaves us with just one possible path to
reach 'fail_error' label which is then moved to that path and
also its error message is adjusted slightly.

1: 
https://docs.pipewire.org/group__pw__core.html#ga5994e3a54e4ec718094ca02a1234815b

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: 
<3a78811ad5b0e87816b7616ab21d2eeef00b9c52.1726647033.git.mprivozn@redhat.com>


  Commit: 35152940b78e478b97051a799cb6275ced03192e
      
https://github.com/qemu/qemu/commit/35152940b78e478b97051a799cb6275ced03192e
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M audio/pwaudio.c
    M hw/audio/hda-codec.c
    M hw/display/virtio-gpu.c
    M include/hw/virtio/virtio-gpu.h
    M include/ui/qemu-pixman.h
    M include/ui/surface.h
    M meson.build
    M tests/qtest/dbus-display-test.c
    M ui/console.c
    M ui/dbus-console.c
    M ui/dbus-display1.xml
    M ui/dbus-listener.c
    M ui/qemu-pixman.c
    M ui/trace-events
    M util/memfd.c

  Log Message:
  -----------
  Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into 
staging

UI-related fixes & shareable 2d memory with -display dbus

# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmcNHtIcHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5SYTD/9fRNrgnZIvIbIGf0kv
# j3LguzwEsfn8eIUbJEIxtDnoS17zX1t981kP9J9ctUM6wnb0iQNYCXeTrF8Xrq0z
# psiPhHGwPyWMdn9SWRfj597ShPn75z340Qve5GUm7clGu2KILh7TqqACH8LzaX+5
# 6jqoZc3kqD+PYZHnYAi6v1YFfLIYfj0n6EaO/J4RRRZSrknpgct7jpmqL4wVzTIo
# KYlG5afdUUfhmSIv5ZDpuuEJppdG74K2H+hJKDPIOOQ8/i/IU2EQPJ00ppiOPbET
# nA0+piLGtHQwU24u5kDdbDlGL/y1KBKvGclOtzLQxWNStch5A6hqllNsuIg+0dJW
# MRO2WZ8C7P7LD1eGmtYVZF/NzjnlTW/hbM5i0poPqhfcwbVmlIXjDs8GUfMGfINr
# 1MVFGNjxfgadYZ1f6Q/JU/KWPJMR4Ik3C/SmGrRBlfra5YIts0ItDeGgfQIW9JGb
# 1CpOng6/3SvW01B6psrPL+wP+6PsK333KPIA77KafOEMyOyEyuSOUrTShXbyXBHc
# r/nLbWw2lZs4U0kgGRQ21+R3huTyw8LnikYpCnGwTWGCpb9NDFYg7z3CRrZW0hWx
# DIWfN7M6YymeYygPUV9Wjo6i4yq4QqWPp7/QXtkSdX3v44/D7NWytKGST+Hwjkpa
# h6U2vrsLdep2m47bnX/dEEP61g==
# =xdt/
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 14 Oct 2024 14:38:26 BST
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg:                issuer "marcandre.lureau@redhat.com"
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" 
[full]
# gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" 
[full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu:
  audio/pw: Report more accurate error when connecting to PipeWire fails
  tests: add basic -display dbus Map.Unix test
  ui: refactor using a common qemu_pixman_shareable
  virtio-gpu: allocate shareable 2d resources on !win32
  ui/dbus: implement Unix.Map
  ui/dbus: add Listener.Unix.Map interface XML
  ui/dbus: make Listener.Win32.Map win32-specific
  meson: find_program('gdbus-codegen') directly
  ui/surface: allocate shared memory on !win32
  ui/dbus: add trace for can_share_map
  ui/dbus: do not limit to one listener per connection / bus name
  ui/pixman: generalize shared_image_destroy
  util/memfd: report potential errors on free
  ui/dbus: discard pending CursorDefine on new one
  ui/dbus: discard display messages on disable
  ui/dbus: fix filtering all update messages
  ui/win32: fix potential use-after-free with dbus shared memory
  ui/dbus: fix leak on message filtering
  hw/audio/hda: fix memory leak on audio setup
  hw/audio/hda: free timer on exit

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/aa54f5be44be...35152940b78e

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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