aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-07-13 16:58:44 +0100
committerPeter Maydell <peter.maydell@linaro.org>2020-07-13 16:58:44 +0100
commit20c1df5476e1e9b5d3f5b94f9f3ce01d21f14c46 (patch)
treefadb1ea5e817287cd872b18ea0e597ece952dc00
parent5c65b1f135ff09d24827fa3a17e56a4f8a032cd5 (diff)
parent631009e775a91018a62e2670b4473e99916f858f (diff)
Merge remote-tracking branch 'remotes/kraxel/tags/fixes-20200713-pull-request' into staging
bugfixes for audio, usb, ui and docs. # gpg: Signature made Mon 13 Jul 2020 15:10:35 BST # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/fixes-20200713-pull-request: usb: fix usb-host build on windows. ui: fix vc_chr_write call in text_console_do_init docs/qdev-device-use: Clean up the sentences related to -usbdevice ossaudio: fix out of bounds write Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--audio/ossaudio.c1
-rw-r--r--docs/qdev-device-use.txt28
-rw-r--r--hw/usb/host-libusb.c4
-rw-r--r--ui/console.c8
4 files changed, 10 insertions, 31 deletions
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index f88d076ec2..a7dcaa31ad 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -691,6 +691,7 @@ static size_t oss_read(HWVoiceIn *hw, void *buf, size_t len)
len, dst);
break;
}
+ break;
}
pos += nread;
diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
index 4bbbcf561f..f8d0d2fe29 100644
--- a/docs/qdev-device-use.txt
+++ b/docs/qdev-device-use.txt
@@ -125,12 +125,7 @@ The -device argument differs in detail for each type of drive:
* if=pflash, if=mtd, if=sd, if=xen are not yet available with -device
-For USB devices, the old way is actually different:
-
- -usbdevice disk:format=FMT:FILENAME
-
-Provides much less control than -drive's OPTS... The new way fixes
-that:
+For USB storage devices, you can use something like:
-device usb-storage,drive=DRIVE-ID,removable=RMB
@@ -177,8 +172,6 @@ The appropriate DEVNAME depends on the machine type. For type "pc":
This lets you control I/O ports and IRQs.
-* -usbdevice serial::chardev becomes -device usb-serial,chardev=dev.
-
* -usbdevice braille doesn't support LEGACY-CHARDEV syntax. It always
uses "braille". With -device, this useful default is gone, so you
have to use something like
@@ -238,10 +231,6 @@ The old way to define the guest part looks like this:
-net nic,netdev=NET-ID,macaddr=MACADDR,model=MODEL,name=ID,addr=STR,vectors=V
-Except for USB it looks like this:
-
- -usbdevice net:netdev=NET-ID,macaddr=MACADDR,name=ID
-
The new way is -device:
-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS...
@@ -336,12 +325,7 @@ The new way is -device DEVNAME,DEV-OPTS... Details depend on DRIVER:
* mouse -device usb-mouse
* tablet -device usb-tablet
* wacom-tablet -device usb-wacom-tablet
-* host:... See "Host Device Assignment"
-* disk:... See "Block Devices"
-* serial:... See "Character Devices"
* braille See "Character Devices"
-* net:... See "Network Devices"
-* bt:... not yet available with -device
=== Watchdog Devices ===
@@ -358,17 +342,11 @@ and host USB devices. PCI devices can only be assigned with -device:
-device vfio-pci,host=ADDR,id=ID
-The old way to assign a host USB device is
-
- -usbdevice host:auto:BUS.ADDR:VID:PRID
-
-where any of BUS, ADDR, VID, PRID can be the wildcard *.
-
-The new way is
+To assign a host USB device use:
-device usb-host,hostbus=BUS,hostaddr=ADDR,vendorid=VID,productid=PRID
-Omitted options match anything, just like the old way's wildcard.
+Omitted options match anything.
=== Default Devices ===
diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
index ad7ed8fb0c..c474551d84 100644
--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -907,7 +907,7 @@ static int usb_host_open(USBHostDevice *s, libusb_device *dev, int hostfd)
goto fail;
}
} else {
-#if LIBUSB_API_VERSION >= 0x01000107
+#if LIBUSB_API_VERSION >= 0x01000107 && !defined(CONFIG_WIN32)
trace_usb_host_open_hostfd(hostfd);
rc = libusb_wrap_sys_device(ctx, hostfd, &s->dh);
@@ -1107,7 +1107,7 @@ static void usb_host_realize(USBDevice *udev, Error **errp)
QTAILQ_INIT(&s->isorings);
s->hostfd = -1;
-#if LIBUSB_API_VERSION >= 0x01000107
+#if LIBUSB_API_VERSION >= 0x01000107 && !defined(CONFIG_WIN32)
if (s->hostdevice) {
int fd;
s->needs_autoscan = false;
diff --git a/ui/console.c b/ui/console.c
index 08f75c9bf6..0579be792f 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -2184,12 +2184,12 @@ static void text_console_do_init(Chardev *chr, DisplayState *ds)
text_console_resize(s);
if (chr->label) {
- char msg[128];
- int len;
+ char *msg;
s->t_attrib.bgcol = QEMU_COLOR_BLUE;
- len = snprintf(msg, sizeof(msg), "%s console\r\n", chr->label);
- vc_chr_write(chr, (uint8_t *)msg, len);
+ msg = g_strdup_printf("%s console\r\n", chr->label);
+ vc_chr_write(chr, (uint8_t *)msg, strlen(msg));
+ g_free(msg);
s->t_attrib = s->t_attrib_default;
}