qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/3] usb patch queue
@ 2012-10-11 11:40 Gerd Hoffmann
  2012-10-12 16:17 ` Anthony Liguori
  0 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2012-10-11 11:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

  Hi,

Pretty small this time with just a few bugfixes.

please pull,
  Gerd

The following changes since commit b4ae3cfa57b8c1bdbbd7b7d420971e9171203ade:

  ssi: Add slave autoconnect helper (2012-10-10 11:13:32 +1000)

are available in the git repository at:
  git://git.kraxel.org/qemu usb.67

Hans de Goede (3):
      usb-redir: Change usbredir_open_chardev into usbredir_create_parser
      usb-redir: Don't make migration fail in none seamless case
      uhci: Raise interrupt when requested even for non active tds

 hw/usb/hcd-uhci.c |   10 +++++++++-
 hw/usb/redirect.c |   24 ++++++++++++++----------
 2 files changed, 23 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] usb patch queue
  2012-10-11 11:40 Gerd Hoffmann
@ 2012-10-12 16:17 ` Anthony Liguori
  0 siblings, 0 replies; 11+ messages in thread
From: Anthony Liguori @ 2012-10-12 16:17 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel

Gerd Hoffmann <kraxel@redhat.com> writes:

>   Hi,
>
> Pretty small this time with just a few bugfixes.
>
> please pull,
>   Gerd
>

Pulled. Thanks.

Regards,

Anthony Liguori

> The following changes since commit b4ae3cfa57b8c1bdbbd7b7d420971e9171203ade:
>
>   ssi: Add slave autoconnect helper (2012-10-10 11:13:32 +1000)
>
> are available in the git repository at:
>   git://git.kraxel.org/qemu usb.67
>
> Hans de Goede (3):
>       usb-redir: Change usbredir_open_chardev into usbredir_create_parser
>       usb-redir: Don't make migration fail in none seamless case
>       uhci: Raise interrupt when requested even for non active tds
>
>  hw/usb/hcd-uhci.c |   10 +++++++++-
>  hw/usb/redirect.c |   24 ++++++++++++++----------
>  2 files changed, 23 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 0/3] usb patch queue
@ 2015-10-20  7:25 Gerd Hoffmann
  2015-10-20 10:45 ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2015-10-20  7:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

  Hi,

Here is the usb patch queue with some small tweaks.

please pull,
  Gerd

The following changes since commit 26c7be842637ee65a79cd77f96a99c23ddcd90ad:

  Merge remote-tracking branch 'remotes/sstabellini/tags/2015-10-19-tag' into staging (2015-10-19 12:13:27 +0100)

are available in the git repository at:


  git://git.kraxel.org/qemu tags/pull-usb-20151020-1

for you to fetch changes up to 37bc43f7fbfb38003550b327002e59d21b80a3e4:

  usb-audio: increate default buffer size (2015-10-20 09:15:23 +0200)

----------------------------------------------------------------
usb: misc small tweaks.

----------------------------------------------------------------
Gerd Hoffmann (3):
      usb-host: add wakeup call for iso xfers
      usb: print device id in "info usb" monitor command
      usb-audio: increate default buffer size

 hw/usb/bus.c         | 9 ++++++---
 hw/usb/dev-audio.c   | 2 +-
 hw/usb/host-libusb.c | 1 +
 3 files changed, 8 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] usb patch queue
  2015-10-20  7:25 Gerd Hoffmann
@ 2015-10-20 10:45 ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2015-10-20 10:45 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: QEMU Developers

On 20 October 2015 at 08:25, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   Hi,
>
> Here is the usb patch queue with some small tweaks.
>
> please pull,
>   Gerd
>
> The following changes since commit 26c7be842637ee65a79cd77f96a99c23ddcd90ad:
>
>   Merge remote-tracking branch 'remotes/sstabellini/tags/2015-10-19-tag' into staging (2015-10-19 12:13:27 +0100)
>
> are available in the git repository at:
>
>
>   git://git.kraxel.org/qemu tags/pull-usb-20151020-1
>
> for you to fetch changes up to 37bc43f7fbfb38003550b327002e59d21b80a3e4:
>
>   usb-audio: increate default buffer size (2015-10-20 09:15:23 +0200)
>
> ----------------------------------------------------------------
> usb: misc small tweaks.

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 0/3] usb patch queue
@ 2016-05-11 11:19 Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 1/3] usb:xhci: no DMA on HC reset Gerd Hoffmann
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2016-05-11 11:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

  Hi,

Three fixes accumulated during the freeze.

please pull,
  Gerd

The following changes since commit 860a3b34854d8abe9af9f1eb584691de926ce897:

  Update version for v2.6.0-rc5 release (2016-05-09 14:08:12 +0100)

are available in the git repository at:

  git://git.kraxel.org/qemu tags/pull-usb-20160511-1

for you to fetch changes up to a277c3e094d5e9f653ccc861f59e07c94c7fe6c7:

  usb: Support compilation without poll.h (2016-05-11 10:37:39 +0200)

----------------------------------------------------------------
usb: misc fixes

----------------------------------------------------------------
Isaac Lozano (1):
      usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain

Roman Kagan (1):
      usb:xhci: no DMA on HC reset

Stefan Weil (1):
      usb: Support compilation without poll.h

 hw/usb/dev-mtp.c     |  4 ++--
 hw/usb/hcd-xhci.c    |  5 ++++-
 hw/usb/host-libusb.c | 13 ++++++++++++-
 3 files changed, 18 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 1/3] usb:xhci: no DMA on HC reset
  2016-05-11 11:19 [Qemu-devel] [PULL 0/3] usb patch queue Gerd Hoffmann
@ 2016-05-11 11:19 ` Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 2/3] usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain Gerd Hoffmann
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2016-05-11 11:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Roman Kagan, qemu-stable, Gerd Hoffmann

From: Roman Kagan <rkagan@virtuozzo.com>

This patch is a rough fix to a memory corruption we are observing when
running VMs with xhci USB controller and OVMF firmware.

Specifically, on the following call chain

xhci_reset
  xhci_disable_slot
    xhci_disable_ep
      xhci_set_ep_state

QEMU overwrites guest memory using stale guest addresses.

This doesn't happen when the guest (firmware) driver sets up xhci for
the first time as there are no slots configured yet.  However when the
firmware hands over the control to the OS some slots and endpoints are
already set up with their context in the guest RAM.  Now the OS' driver
resets the controller again and xhci_set_ep_state then reads and writes
that memory which is now owned by the OS.

As a quick fix, skip calling xhci_set_ep_state in xhci_disable_ep if the
device context base address array pointer is zero (indicating we're in
the HC reset and no DMA is possible).

Cc: qemu-stable@nongnu.org
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Message-id: 1462384435-1034-1-git-send-email-rkagan@virtuozzo.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/hcd-xhci.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index bcde8a2..43ba615 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -1531,7 +1531,10 @@ static TRBCCode xhci_disable_ep(XHCIState *xhci, unsigned int slotid,
         usb_packet_cleanup(&epctx->transfers[i].packet);
     }
 
-    xhci_set_ep_state(xhci, epctx, NULL, EP_DISABLED);
+    /* only touch guest RAM if we're not resetting the HC */
+    if (xhci->dcbaap_low || xhci->dcbaap_high) {
+        xhci_set_ep_state(xhci, epctx, NULL, EP_DISABLED);
+    }
 
     timer_free(epctx->kick_timer);
     g_free(epctx);
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 2/3] usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain
  2016-05-11 11:19 [Qemu-devel] [PULL 0/3] usb patch queue Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 1/3] usb:xhci: no DMA on HC reset Gerd Hoffmann
@ 2016-05-11 11:19 ` Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 3/3] usb: Support compilation without poll.h Gerd Hoffmann
  2016-05-12 14:06 ` [Qemu-devel] [PULL 0/3] usb patch queue Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2016-05-11 11:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Isaac Lozano, Gerd Hoffmann

From: Isaac Lozano <109lozanoi@gmail.com>

If an application uses libmtp on the guest system,
it will complain with the warning message:
LIBMTP WARNING: VendorExtensionID: ffffffff
LIBMTP WARNING: VendorExtensionDesc: (null)
LIBMTP WARNING: this typically means the device is PTP (i.e. a camera) but
not a MTP device at all. Trying to continue anyway.

This is because libmtp expects a MTP Vendor Extension ID of 0x00000006 and a
MTP Version of 0x0064. These numbers are taken from Microsoft's MTP Vendor
Extension Identification Message page and are what most physical devices
show.

Signed-off-by: Isaac Lozano <109lozanoi@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 1460892593-5908-1-git-send-email-109lozanoi@gmail.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/dev-mtp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c
index bda84a6..1be85ae 100644
--- a/hw/usb/dev-mtp.c
+++ b/hw/usb/dev-mtp.c
@@ -788,8 +788,8 @@ static MTPData *usb_mtp_get_device_info(MTPState *s, MTPControl *c)
     trace_usb_mtp_op_get_device_info(s->dev.addr);
 
     usb_mtp_add_u16(d, 100);
-    usb_mtp_add_u32(d, 0xffffffff);
-    usb_mtp_add_u16(d, 0x0101);
+    usb_mtp_add_u32(d, 0x00000006);
+    usb_mtp_add_u16(d, 0x0064);
     usb_mtp_add_wstr(d, L"");
     usb_mtp_add_u16(d, 0x0000);
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 3/3] usb: Support compilation without poll.h
  2016-05-11 11:19 [Qemu-devel] [PULL 0/3] usb patch queue Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 1/3] usb:xhci: no DMA on HC reset Gerd Hoffmann
  2016-05-11 11:19 ` [Qemu-devel] [PULL 2/3] usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain Gerd Hoffmann
@ 2016-05-11 11:19 ` Gerd Hoffmann
  2016-05-12 14:06 ` [Qemu-devel] [PULL 0/3] usb patch queue Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2016-05-11 11:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Weil, Gerd Hoffmann

From: Stefan Weil <sw@weilnetz.de>

This is a hack to support compilation with Mingw-w64 which provides
a libusb-1.0 package, but no poll.h.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Message-id: 1458630800-10088-1-git-send-email-sw@weilnetz.de
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/host-libusb.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
index 6458a94..8b774f4 100644
--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -34,7 +34,9 @@
  */
 
 #include "qemu/osdep.h"
+#ifndef CONFIG_WIN32
 #include <poll.h>
+#endif
 #include <libusb.h>
 
 #include "qapi/error.h"
@@ -204,6 +206,8 @@ static const char *err_names[] = {
 static libusb_context *ctx;
 static uint32_t loglevel;
 
+#ifndef CONFIG_WIN32
+
 static void usb_host_handle_fd(void *opaque)
 {
     struct timeval tv = { 0, 0 };
@@ -223,9 +227,13 @@ static void usb_host_del_fd(int fd, void *user_data)
     qemu_set_fd_handler(fd, NULL, NULL, NULL);
 }
 
+#endif /* !CONFIG_WIN32 */
+
 static int usb_host_init(void)
 {
+#ifndef CONFIG_WIN32
     const struct libusb_pollfd **poll;
+#endif
     int i, rc;
 
     if (ctx) {
@@ -236,7 +244,9 @@ static int usb_host_init(void)
         return -1;
     }
     libusb_set_debug(ctx, loglevel);
-
+#ifdef CONFIG_WIN32
+    /* FIXME: add support for Windows. */
+#else
     libusb_set_pollfd_notifiers(ctx, usb_host_add_fd,
                                 usb_host_del_fd,
                                 ctx);
@@ -247,6 +257,7 @@ static int usb_host_init(void)
         }
     }
     free(poll);
+#endif
     return 0;
 }
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] usb patch queue
  2016-05-11 11:19 [Qemu-devel] [PULL 0/3] usb patch queue Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2016-05-11 11:19 ` [Qemu-devel] [PULL 3/3] usb: Support compilation without poll.h Gerd Hoffmann
@ 2016-05-12 14:06 ` Peter Maydell
  3 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2016-05-12 14:06 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: QEMU Developers

On 11 May 2016 at 12:19, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   Hi,
>
> Three fixes accumulated during the freeze.
>
> please pull,
>   Gerd
>
> The following changes since commit 860a3b34854d8abe9af9f1eb584691de926ce897:
>
>   Update version for v2.6.0-rc5 release (2016-05-09 14:08:12 +0100)
>
> are available in the git repository at:
>
>   git://git.kraxel.org/qemu tags/pull-usb-20160511-1
>
> for you to fetch changes up to a277c3e094d5e9f653ccc861f59e07c94c7fe6c7:
>
>   usb: Support compilation without poll.h (2016-05-11 10:37:39 +0200)
>
> ----------------------------------------------------------------
> usb: misc fixes
>
> ----------------------------------------------------------------
> Isaac Lozano (1):
>       usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain
>
> Roman Kagan (1):
>       usb:xhci: no DMA on HC reset
>
> Stefan Weil (1):
>       usb: Support compilation without poll.h

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PULL 0/3] usb patch queue
@ 2017-02-23 15:40 Gerd Hoffmann
  2017-02-24 13:55 ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2017-02-23 15:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

  Hi,

usb patch queue, with cleanups and a ohci fix.

please pull,
  Gerd

The following changes since commit 796b288f7be875045670f963ce99991b3c8e96ac:

  Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2017-02-21 15:48:22 +0000)

are available in the git repository at:


  git://git.kraxel.org/qemu tags/pull-usb-20170223-1

for you to fetch changes up to 4f72b8d2a6f5777fa1af2cf5184843e4cb06f182:

  xhci: properties cleanup (2017-02-23 16:18:03 +0100)

----------------------------------------------------------------
usb: ohci bugfix, switch core to unrealize, xhci property cleanup

----------------------------------------------------------------
Gerd Hoffmann (1):
      xhci: properties cleanup

Li Qiang (1):
      usb: ohci: fix error return code in servicing td

Marc-André Lureau (1):
      usb: replace handle_destroy with unrealize

 hw/usb/bus.c                  |  9 +++++----
 hw/usb/dev-audio.c            |  4 ++--
 hw/usb/dev-bluetooth.c        |  4 ++--
 hw/usb/dev-hid.c              |  4 ++--
 hw/usb/dev-hub.c              |  4 ++--
 hw/usb/dev-network.c          |  4 ++--
 hw/usb/dev-smartcard-reader.c |  4 ++--
 hw/usb/dev-uas.c              |  4 ++--
 hw/usb/dev-wacom.c            |  4 ++--
 hw/usb/hcd-ohci.c             |  2 +-
 hw/usb/hcd-xhci.c             | 29 ++++++++++++++++++++++++++---
 hw/usb/host-libusb.c          |  4 ++--
 hw/usb/redirect.c             |  4 ++--
 include/hw/usb.h              |  5 -----
 14 files changed, 52 insertions(+), 33 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] usb patch queue
  2017-02-23 15:40 Gerd Hoffmann
@ 2017-02-24 13:55 ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2017-02-24 13:55 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: QEMU Developers

On 23 February 2017 at 15:40, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   Hi,
>
> usb patch queue, with cleanups and a ohci fix.
>
> please pull,
>   Gerd
>
> The following changes since commit 796b288f7be875045670f963ce99991b3c8e96ac:
>
>   Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2017-02-21 15:48:22 +0000)
>
> are available in the git repository at:
>
>
>   git://git.kraxel.org/qemu tags/pull-usb-20170223-1
>
> for you to fetch changes up to 4f72b8d2a6f5777fa1af2cf5184843e4cb06f182:
>
>   xhci: properties cleanup (2017-02-23 16:18:03 +0100)
>
> ----------------------------------------------------------------
> usb: ohci bugfix, switch core to unrealize, xhci property cleanup
>
> ----------------------------------------------------------------
> Gerd Hoffmann (1):
>       xhci: properties cleanup
>
> Li Qiang (1):
>       usb: ohci: fix error return code in servicing td
>
> Marc-André Lureau (1):
>       usb: replace handle_destroy with unrealize

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-02-24 13:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-11 11:19 [Qemu-devel] [PULL 0/3] usb patch queue Gerd Hoffmann
2016-05-11 11:19 ` [Qemu-devel] [PULL 1/3] usb:xhci: no DMA on HC reset Gerd Hoffmann
2016-05-11 11:19 ` [Qemu-devel] [PULL 2/3] usb-mtp: fix usb_mtp_get_device_info so that libmtp on the guest doesn't complain Gerd Hoffmann
2016-05-11 11:19 ` [Qemu-devel] [PULL 3/3] usb: Support compilation without poll.h Gerd Hoffmann
2016-05-12 14:06 ` [Qemu-devel] [PULL 0/3] usb patch queue Peter Maydell
  -- strict thread matches above, loose matches on Subject: below --
2017-02-23 15:40 Gerd Hoffmann
2017-02-24 13:55 ` Peter Maydell
2015-10-20  7:25 Gerd Hoffmann
2015-10-20 10:45 ` Peter Maydell
2012-10-11 11:40 Gerd Hoffmann
2012-10-12 16:17 ` Anthony Liguori

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