31e3caf21b
Merge remote-tracking branch 'remotes/lvivier-gitlab/tags/trivial-branch-for-7.0-pull-request' into staging
...
Trivial branch pull request 20220222
# gpg: Signature made Tue 22 Feb 2022 16:16:01 GMT
# gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
# gpg: issuer "laurent@vivier.eu "
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com >" [full]
# gpg: aka "Laurent Vivier <laurent@vivier.eu >" [full]
# gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com >" [full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C
* remotes/lvivier-gitlab/tags/trivial-branch-for-7.0-pull-request:
hid: Implement support for side and extra buttons
vdpa: Make ncs autofree
qemu-options: fix incorrect description for '-drive index='
hw/nvram: use at24 macro
target/rx: Remove unused ENV_OFFSET definition
target/avr: Correct AVRCPUClass docstring
configure: Disable capstone and slirp in the --without-default-features mode
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2022-02-22 20:17:09 +00:00
1e2d555846
hid: Implement support for side and extra buttons
...
Simply set the respective bits and update the descriptor accordingly.
Signed-off-by: Noah Bergbauer <noah@statshelix.com >
Acked-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <20211126140437.79745-1-noah@statshelix.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-02-22 17:15:36 +01:00
5e78c98b7c
Mark remaining global TypeInfo instances as const
...
More than 1k of TypeInfo instances are already marked as const. Mark the
remaining ones, too.
This commit was created with:
git grep -z -l 'static TypeInfo' -- '*.c' | \
xargs -0 sed -i 's/static TypeInfo/static const TypeInfo/'
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Reviewed-by: Igor Mammedov <imammedo@redhat.com >
Acked-by: Corey Minyard <cminyard@mvista.com >
Message-id: 20220117145805.173070-2-shentey@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2022-02-21 13:30:20 +00:00
1c6c0b9ec1
uas: add missing return
...
Otherwise we run the error handling code even for successful requests.
Fixes: 13b250b12a
("uas: add stream number sanity checks.")
Reported-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20211210080659.2537084-1-kraxel@redhat.com >
2022-01-13 10:58:05 +01:00
7cd2cfa2e6
usb: allow max 8192 bytes for desc
...
A device of USB video class usually uses larger desc structure, so
use larger buffer to avoid failure. (dev-video.c is ready)
This is an unlikely code path:
1, during guest startup, guest tries to probe device.
2, run 'lsusb' command in guest(or other similar commands).
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com >
Message-Id: <20220112015835.900619-1-pizhenwei@bytedance.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2022-01-13 10:22:37 +01:00
5280117b1e
hw/usb/dev-wacom: add missing HID descriptor
...
Linux need to fill up the HID descriptor in order to let the driver be
emulated. The descriptor was downloaded from [1]. The patch was tested
with evtest tool on top of qemu 5.2.0 with linux kernel 4.19.208.
[1] https://github.com/linuxwacom/wacom-hid-descriptors/tree/master/Wacom%20PenPartner
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com >
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com >
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com >
Message-Id: <20220112090125.381364-1-dario.binacchi@amarulasolutions.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2022-01-13 10:22:00 +01:00
398f9a84ac
pci: Let ld*_pci_dma() take MemTxAttrs argument
...
Let devices specify transaction attributes when calling ld*_pci_dma().
Keep the default MEMTXATTRS_UNSPECIFIED in the few callers.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20211223115554.3155328-22-philmd@redhat.com >
2021-12-31 01:05:27 +01:00
cd1db8df74
dma: Let ld*_dma() propagate MemTxResult
...
dma_memory_read() returns a MemTxResult type. Do not discard
it, return it to the caller.
Update the few callers.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20211223115554.3155328-19-philmd@redhat.com >
2021-12-31 01:05:27 +01:00
34cdea1db6
dma: Let ld*_dma() take MemTxAttrs argument
...
Let devices specify transaction attributes when calling ld*_dma().
Keep the default MEMTXATTRS_UNSPECIFIED in the few callers.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20211223115554.3155328-17-philmd@redhat.com >
2021-12-31 01:05:27 +01:00
a1d4b0a305
dma: Let dma_memory_map() take MemTxAttrs argument
...
Let devices specify transaction attributes when calling
dma_memory_map().
Patch created mechanically using spatch with this script:
@@
expression E1, E2, E3, E4;
@@
- dma_memory_map(E1, E2, E3, E4)
+ dma_memory_map(E1, E2, E3, E4, MEMTXATTRS_UNSPECIFIED)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Li Qiang <liq3ea@gmail.com >
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Stefan Hajnoczi <stefanha@redhat.com >
Message-Id: <20211223115554.3155328-7-philmd@redhat.com >
2021-12-30 17:16:32 +01:00
ba06fe8add
dma: Let dma_memory_read/write() take MemTxAttrs argument
...
Let devices specify transaction attributes when calling
dma_memory_read() or dma_memory_write().
Patch created mechanically using spatch with this script:
@@
expression E1, E2, E3, E4;
@@
(
- dma_memory_read(E1, E2, E3, E4)
+ dma_memory_read(E1, E2, E3, E4, MEMTXATTRS_UNSPECIFIED)
|
- dma_memory_write(E1, E2, E3, E4)
+ dma_memory_write(E1, E2, E3, E4, MEMTXATTRS_UNSPECIFIED)
)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Li Qiang <liq3ea@gmail.com >
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Stefan Hajnoczi <stefanha@redhat.com >
Message-Id: <20211223115554.3155328-6-philmd@redhat.com >
2021-12-30 17:16:32 +01:00
23faf5694f
dma: Let dma_memory_rw() take MemTxAttrs argument
...
Let devices specify transaction attributes when calling
dma_memory_rw().
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Li Qiang <liq3ea@gmail.com >
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Stefan Hajnoczi <stefanha@redhat.com >
Message-Id: <20211223115554.3155328-5-philmd@redhat.com >
2021-12-30 17:16:32 +01:00
e86e00a249
Merge remote-tracking branch 'remotes/berrange/tags/hmp-x-qmp-620-pull-request' into staging
...
Initial conversion of HMP debugging commands to QMP
This introduces a new policy that all HMP commands will be converted to
have QMP equivalents, marked unstable if no formal QAPI modelling is
intended to be done.
New unstable commands are added as follows:
- HMP "info roms" => QMP "x-query-roms"
- HMP "info profile" => QMP "x-query-profile"
- HMP "info numa" => QMP "x-query-numa"
- HMP "info usb" => QMP "x-query-usb"
- HMP "info rdma" => QMP "x-query-rdma"
- HMP "info ramblock" => QMP "x-query-ramblock"
- HMP "info irq" => QMP "x-query-irq"
- HMP "info jit" => QMP "x-query-jit"
- HMP "info opcount" => QMP "x-query-opcount"
# gpg: Signature made Tue 02 Nov 2021 01:54:28 PM EDT
# gpg: using RSA key DAF3A6FDB26B62912D0E8E3FBE86EBB415104FDF
# gpg: Good signature from "Daniel P. Berrange <dan@berrange.com >" [full]
# gpg: aka "Daniel P. Berrange <berrange@redhat.com >" [full]
* remotes/berrange/tags/hmp-x-qmp-620-pull-request:
qapi: introduce x-query-opcount QMP command
qapi: introduce x-query-jit QMP command
qapi: introduce x-query-irq QMP command
qapi: introduce x-query-ramblock QMP command
qapi: introduce x-query-rdma QMP command
qapi: introduce x-query-usb QMP command
qapi: introduce x-query-numa QMP command
qapi: introduce x-query-profile QMP command
qapi: introduce x-query-roms QMP command
docs/devel: document expectations for HMP commands in the future
docs/devel: add example of command returning unstructured text
docs/devel: document expectations for QAPI data modelling for QMP
monitor: introduce HumanReadableText and HMP support
docs/devel: update error handling guidance for HMP commands
docs/devel: tweak headings in monitor command docs
docs/devel: rename file for writing monitor commands
monitor: make hmp_handle_error return a boolean
monitor: remove 'info ioapic' HMP command
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-11-03 08:04:32 -04:00
fc30920731
qapi: introduce x-query-usb QMP command
...
This is a counterpart to the HMP "info usb" command. It is being
added with an "x-" prefix because this QMP command is intended as an
adhoc debugging tool and will thus not be modelled in QAPI as fully
structured data, nor will it have long term guaranteed stability.
The existing HMP command is rewritten to call the QMP command.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com >
2021-11-02 15:55:14 +00:00
4f3b0a4d75
hw/usb/vt82c686-uhci-pci: Use ISA instead of PCI interrupts
...
This device is part of a superio/ISA bridge chip and IRQs from it are
routed to an ISA interrupt set by the Interrupt Line PCI config
register. Implement this in a vt82c686-uhci-pci specific irq handler
Using via_isa_set_irq().
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <8d7ed385e33a847d8ddc669163a68b5ca57f82ce.1635161629.git.balaton@eik.bme.hu >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
e4f5b93986
usb/uhci: Replace pci_set_irq with qemu_set_irq
...
Instead of using pci_set_irq, store the irq in the device state and
use it explicitly so variants having different interrupt handling can
use their own.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <b39066e03c8731f4197d50bc79b403f797599999.1635161629.git.balaton@eik.bme.hu >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
ece29df33b
usb/uhci: Disallow user creating a vt82c686-uhci-pci device
...
Because this device only works as part of VIA superio chips set user
creatable to false. Since the class init method is common for UHCI
variants introduce a flag in UHCIInfo for this.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <e6abf1f19ca72bbc2d8a5a6aa941edbf87a9845f.1635161629.git.balaton@eik.bme.hu >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
d3647ef1fd
usb/uhci: Misc clean up
...
Fix a comment for coding style so subsequent patch will not get
checkpatch error and simplify and shorten uhci_update_irq().
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <b68a57dfcf181e73272b4dc951f8cc6e76b0d182.1635161629.git.balaton@eik.bme.hu >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
d637e1dc6d
qbus: Rename qbus_create_inplace() to qbus_init()
...
Rename qbus_create_inplace() to qbus_init(); this is more in line
with our usual naming convention for functions that in-place
initialize objects.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Message-id: 20210923121153.23754-5-peter.maydell@linaro.org
2021-09-30 13:42:10 +01:00
739e95f574
scsi: Replace scsi_bus_new() with scsi_bus_init(), scsi_bus_init_named()
...
The function scsi_bus_new() creates a new SCSI bus; callers can
either pass in a name argument to specify the name of the new bus, or
they can pass in NULL to allow the bus to be given an automatically
generated unique name. Almost all callers want to use the
autogenerated name; the only exception is the virtio-scsi device.
Taking a name argument that should almost always be NULL is an
easy-to-misuse API design -- it encourages callers to think perhaps
they should pass in some standard name like "scsi" or "scsi-bus". We
don't do this anywhere for SCSI, but we do (incorrectly) do it for
other bus types such as i2c.
The function name also implies that it will return a newly allocated
object, when it in fact does in-place allocation. We more commonly
name such functions foo_init(), with foo_new() being the
allocate-and-return variant.
Replace all the scsi_bus_new() callsites with either:
* scsi_bus_init() for the usual case where the caller wants
an autogenerated bus name
* scsi_bus_init_named() for the rare case where the caller
needs to specify the bus name
and document that for the _named() version it's then the caller's
responsibility to think about uniqueness of bus names.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Paolo Bonzini <pbonzini@redhat.com >
Message-id: 20210923121153.23754-2-peter.maydell@linaro.org
2021-09-30 13:42:10 +01:00
ae420c957a
hw/usb: Fix typo in comments and print
...
Fix typo:
*informations ==> information
*enougth ==> enough
*enouth ==> enough
*registy ==> registry
*releated ==> related
*Ouptut ==> Output
*manualy ==> manually
*Attemping ==> Attempting
*contine ==> continue
*tranceiver ==> transceiver
*Tranceiver ==> Transceiver
Signed-off-by: Cai Huoqing <caihuoqing@baidu.com >
Message-Id: <20210730012720.2246-1-caihuoqing@baidu.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-09-01 06:37:13 +02:00
13b250b12a
uas: add stream number sanity checks.
...
The device uses the guest-supplied stream number unchecked, which can
lead to guest-triggered out-of-band access to the UASDevice->data3 and
UASDevice->status3 fields. Add the missing checks.
Fixes: CVE-2021-3713
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reported-by: Chen Zhe <chenzhe@huawei.com >
Reported-by: Tan Jingguo <tanjingguo@huawei.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210818120505.1258262-2-kraxel@redhat.com >
2021-09-01 06:34:00 +02:00
bf7b1eab25
chardev: mark explicitly first argument as poisoned
...
Since commit 9894dc0cdc
"char: convert
from GIOChannel to QIOChannel", the first argument to the watch callback
can actually be a QIOChannel, which is not a GIOChannel (but a QEMU
Object).
Even though we never used that pointer, change the callback type to warn
the users. Possibly a better fix later, we may want to store the
callback and call it from intermediary functions.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com >
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
2021-08-05 16:15:33 +04:00
5e796671e6
usbredir: fix free call
...
data might point into the middle of a larger buffer, there is a separate
free_on_destroy pointer passed into bufp_alloc() to handle that. It is
only used in the normal workflow though, not when dropping packets due
to the queue being full. Fix that.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/491
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com >
Message-Id: <20210722072756.647673-1-kraxel@redhat.com >
2021-07-29 11:18:46 +02:00
663fdc815e
usb-host: wire up timer for windows
...
On windows we can't wait on file descriptors.
Poll libusb using a timer instead.
Fixes long-standing FIXME.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/431
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <20210623085249.1151901-2-kraxel@redhat.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-07-29 11:18:24 +02:00
670b359193
usb: fix usb-host dependency check
...
Fixes: 90540f3289
("configure, meson: convert libusb detection to meson", 2021-06-25)
Reported-by: Programmingkid <programmingkidx@gmail.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <20210721081718.301343-1-kraxel@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-22 14:44:47 +02:00
d1987c8114
Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
...
* More SVM fixes (Lara)
* Module annotation database (Gerd)
* Memory leak fixes (myself)
* Build fixes (myself)
* --with-devices-* support (Alex)
# gpg: Signature made Fri 09 Jul 2021 17:23:52 BST
# gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg: issuer "pbonzini@redhat.com "
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org >" [full]
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com >" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1
# Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83
* remotes/bonzini-gitlab/tags/for-upstream: (48 commits)
meson: Use input/output for entitlements target
configure: allow the selection of alternate config in the build
configs: rename default-configs to configs and reorganise
hw/arm: move CONFIG_V7M out of default-devices
hw/arm: add dependency on OR_IRQ for XLNX_VERSAL
meson: Introduce target-specific Kconfig
meson: switch function tests from compilation to linking
vl: fix leak of qdict_crumple return value
target/i386: fix exceptions for MOV to DR
target/i386: Added DR6 and DR7 consistency checks
target/i386: Added MSRPM and IOPM size check
monitor/tcg: move tcg hmp commands to accel/tcg, register them dynamically
usb: build usb-host as module
monitor/usb: register 'info usbhost' dynamically
usb: drop usb_host_dev_is_scsi_storage hook
monitor: allow register hmp commands
accel: build tcg modular
accel: add tcg module annotations
accel: build qtest modular
accel: add qtest module annotations
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2021-07-11 22:20:51 +01:00
a476123243
misc: Fix "havn't" typo
...
Fix "havn't (make)" -> "haven't (made)" typo.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20210629051400.2573253-1-f4bug@amsat.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-07-09 18:42:46 +02:00
627302afb2
usb: build usb-host as module
...
Drop one more shared library dependency (libusb) from core qemu.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jose R. Ziviani <jziviani@suse.de >
Message-Id: <20210624103836.2382472-34-kraxel@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-09 18:21:33 +02:00
f1a74bf976
monitor/usb: register 'info usbhost' dynamically
...
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jose R. Ziviani <jziviani@suse.de >
Message-Id: <20210624103836.2382472-33-kraxel@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-09 18:21:33 +02:00
b7b2a60b01
usb: drop usb_host_dev_is_scsi_storage hook
...
Introduce an usb device flag instead, set it when usb-host looks at the
device descriptors anyway. Also set it for emulated storage devices,
for consistency. Add an inline helper function to check the flag.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Acked-by: David Gibson <david@gibson.dropbear.id.au >
Reviewed-by: Jose R. Ziviani <jziviani@suse.de >
Message-Id: <20210624103836.2382472-32-kraxel@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-09 18:21:33 +02:00
be4bf77c9c
modules: add ccid module annotations
...
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jose R. Ziviani <jziviani@suse.de >
Message-Id: <20210624103836.2382472-11-kraxel@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-09 18:20:27 +02:00
320f483333
modules: add usb-redir module annotations
...
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jose R. Ziviani <jziviani@suse.de >
Message-Id: <20210624103836.2382472-10-kraxel@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-07-09 18:20:27 +02:00
18f31e60c7
configure, meson: convert libusbredir detection to meson
...
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-06-25 10:54:12 +02:00
5f364c57bb
configure, meson: convert libcacard detection to meson
...
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-06-25 10:54:12 +02:00
90540f3289
configure, meson: convert libusb detection to meson
...
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2021-06-25 10:54:12 +02:00
970bc16f60
usb/dev-mtp: use GDateTime for formatting timestamp for objects
...
The GDateTime APIs provided by GLib avoid portability pitfalls, such
as some platforms where 'struct timeval.tv_sec' field is still 'long'
instead of 'time_t'. When combined with automatic cleanup, GDateTime
often results in simpler code too.
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com >
2021-06-14 13:28:50 +01:00
d0fb9657a3
docs: fix references to docs/devel/tracing.rst
...
Commit e50caf4a5c
("tracing: convert documentation to rST")
converted docs/devel/tracing.txt to docs/devel/tracing.rst.
We still have several references to the old file, so let's fix them
with the following command:
sed -i s/tracing.txt/tracing.rst/ $(git grep -l docs/devel/tracing.txt)
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210517151702.109066-2-sgarzare@redhat.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2021-06-02 06:51:09 +02:00
fc967aad40
hw/usb: hcd-xhci-pci: Fix spec violation of IP flag for MSI/MSI-X
...
Per xHCI spec v1.2 chapter 4.17.5 page 296:
If MSI or MSI-X interrupts are enabled, Interrupt Pending (IP)
shall be cleared automatically when the PCI dword write generated
by the interrupt assertion is complete.
Currently QEMU does not clear the IP flag in the MSI / MSI-X mode.
This causes subsequent spurious interrupt to be delivered to guests.
To solve this, we change the xhci intr_raise() hook routine to have
a bool return value that is passed to its caller (the xhci core),
with true indicating that IP should be self-cleared.
Fixes: 62c6ae04cf
("xhci: Initial xHCI implementation")
Fixes: 4c47f80063
("xhci: add msix support")
Signed-off-by: Ruimei Yan <ruimei.yan@windriver.com >
[bmeng: move IP clear codes from xhci pci to xhci core]
Signed-off-by: Bin Meng <bin.meng@windriver.com >
Message-Id: <20210521024224.2277634-2-bmeng.cn@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-05-28 09:10:20 +02:00
3c6151cd11
hw/usb: hcd-xhci-pci: Raise MSI/MSI-X interrupts only when told to
...
At present MSI / MSI-X interrupts are triggered regardless of the
irq level. We should have checked the level to determine whether
the interrupt needs to be delivered.
The level check logic was present in early versions of the xhci
model, but got dropped later by a rework of interrupt handling
under commit 4c4abe7cc9
("xhci: rework interrupt handling").
Fixes: 4c4abe7cc9
("xhci: rework interrupt handling")
Signed-off-by: Ruimei Yan <ruimei.yan@windriver.com >
Signed-off-by: Bin Meng <bin.meng@windriver.com >
Message-Id: <20210521024224.2277634-1-bmeng.cn@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-05-28 09:10:14 +02:00
9d49bcf699
Drop the deprecated lm32 target
...
Target lm32 was deprecated in commit d849800512
, v5.2.0. See there
for rationale.
Some of its code lives on in device models derived from milkymist
ones: hw/char/digic-uart.c and hw/display/bcm2835_fb.c.
Cc: Michael Walle <michael@walle.cc >
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Message-Id: <20210503084034.3804963-2-armbru@redhat.com >
Acked-by: Michael Walle <michael@walle.cc >
[Trivial conflicts resolved, reST markup fixed]
2021-05-12 18:20:25 +02:00
e4f3ede95c
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20210505-pull-request' into staging
...
usb: fix some memory allocation issues (CVE-2021-3527).
usb: add stubs, allow building without usb subsystem.
# gpg: Signature made Wed 05 May 2021 14:07:02 BST
# gpg: using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138
# 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/usb-20210505-pull-request:
usb: limit combined packets to 1 MiB (CVE-2021-3527)
usb/mtp: avoid dynamic stack allocation
usb/redir: avoid dynamic stack allocation (CVE-2021-3527)
usb/hid: avoid dynamic stack allocation
hw/usb: Do not build USB subsystem if not required
hw/usb/host-stub: Remove unused header
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2021-05-10 19:55:06 +01:00
05a40b172e
usb: limit combined packets to 1 MiB (CVE-2021-3527)
...
usb-host and usb-redirect try to batch bulk transfers by combining many
small usb packets into a single, large transfer request, to reduce the
overhead and improve performance.
This patch adds a size limit of 1 MiB for those combined packets to
restrict the host resources the guest can bind that way.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Message-Id: <20210503132915.2335822-6-kraxel@redhat.com >
2021-05-05 15:06:01 +02:00
06aa50c06c
usb/mtp: avoid dynamic stack allocation
...
Use autofree heap allocation instead.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210503132915.2335822-4-kraxel@redhat.com >
2021-05-04 08:38:40 +02:00
7ec54f9eb6
usb/redir: avoid dynamic stack allocation (CVE-2021-3527)
...
Use autofree heap allocation instead.
Fixes: 4f4321c11f
("usb: use iovecs in USBPacket")
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210503132915.2335822-3-kraxel@redhat.com >
2021-05-04 08:38:34 +02:00
3f67e2e7f1
usb/hid: avoid dynamic stack allocation
...
Use autofree heap allocation instead.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210503132915.2335822-2-kraxel@redhat.com >
2021-05-04 08:38:23 +02:00
9c3c834bdd
hw/usb: Do not build USB subsystem if not required
...
If the Kconfig 'USB' value is not selected, it is pointless to
build the USB core components. Add a stub for the HMP commands
and usbdevice_create() which is called by usb_device_add in
softmmu/vl.c.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210424224110.3442424-3-f4bug@amsat.org >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-05-04 08:38:23 +02:00
1081607bfa
hw/usb/host-stub: Remove unused header
...
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210424224110.3442424-2-f4bug@amsat.org >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2021-05-04 08:38:23 +02:00
19f4ed3652
hw: Do not include qemu/log.h if it is not necessary
...
Many files include qemu/log.h without needing it. Remove the superfluous
include statements.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20210328054833.2351597-1-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:50 +02:00
e924921f5c
hw: Do not include hw/irq.h if it is not necessary
...
Many files include hw/irq.h without needing it. Remove the superfluous
include statements.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20210327050236.2232347-1-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:50 +02:00