xemu/hw/usb
Kevin Wolf 86b1cf3227 block: Separate blk_is_writable() and blk_supports_write_perm()
Currently, blk_is_read_only() tells whether a given BlockBackend can
only be used in read-only mode because its root node is read-only. Some
callers actually try to answer a slightly different question: Is the
BlockBackend configured to be writable, by taking write permissions on
the root node?

This can differ, for example, for CD-ROM devices which don't take write
permissions, but may be backed by a writable image file. scsi-cd allows
write requests to the drive if blk_is_read_only() returns false.
However, the write request will immediately run into an assertion
failure because the write permission is missing.

This patch introduces separate functions for both questions.
blk_supports_write_perm() answers the question whether the block
node/image file can support writable devices, whereas blk_is_writable()
tells whether the BlockBackend is currently configured to be writable.

All calls of blk_is_read_only() are converted to one of the two new
functions.

Fixes: https://bugs.launchpad.net/bugs/1906693
Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210118123448.307825-2-kwolf@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2021-01-27 20:45:20 +01:00
..
bus.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
ccid-card-emulated.c
ccid-card-passthru.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
ccid.h
chipidea.c
combined-packet.c
core.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
desc-msos.c
desc.c
desc.h
dev-audio.c
dev-hid.c
dev-hub.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
dev-mtp.c
dev-network.c
dev-serial.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
dev-smartcard-reader.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
dev-storage.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
dev-uas.c hw/usb/dev-uas: Report command additional adb length as unsupported 2021-01-22 14:51:35 +01:00
dev-wacom.c
hcd-dwc2.c
hcd-dwc2.h
hcd-dwc3.c usb: Add DWC3 model 2020-12-15 12:04:30 +00:00
hcd-ehci-pci.c
hcd-ehci-sysbus.c hw/arm/npcm7xx: Add EHCI and OHCI controllers 2020-10-27 11:10:21 +00:00
hcd-ehci.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
hcd-ehci.h hw/arm/npcm7xx: Add EHCI and OHCI controllers 2020-10-27 11:10:21 +00:00
hcd-musb.c
hcd-ohci-pci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-ohci.c usb: Fix Lesser GPL version number 2020-11-15 16:40:48 +01:00
hcd-ohci.h
hcd-uhci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-xhci-nec.c usb: Fix Lesser GPL version number 2020-11-15 16:40:48 +01:00
hcd-xhci-pci.c hw/usb: Convert to qdev_realize() 2021-01-22 14:51:35 +01:00
hcd-xhci-pci.h usb: Fix Lesser GPL version number 2020-11-15 16:40:48 +01:00
hcd-xhci-sysbus.c hw/usb: Convert to qdev_realize() 2021-01-22 14:51:35 +01:00
hcd-xhci-sysbus.h
hcd-xhci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-xhci.h hw/usb/hcd-xhci: Fix extraneous format-truncation error on 32-bit hosts 2021-01-22 14:51:35 +01:00
host-libusb.c usb-host: map LIBUSB_SPEED_SUPER_PLUS to USB_SPEED_SUPER 2021-01-22 14:51:35 +01:00
host-stub.c
host.h
imx-usb-phy.c
Kconfig usb: xlnx-usb-subsystem: Add xilinx usb subsystem 2020-12-15 12:04:30 +00:00
libhw.c
meson.build usb: add pcap support. 2021-01-22 14:51:35 +01:00
pcap.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
quirks-ftdi-ids.h
quirks-pl2303-ids.h
quirks.c
quirks.h
redirect.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
trace-events usb-storage: switch trace events 2020-11-16 09:11:21 +01:00
trace.h
tusb6010.c
u2f-emulated.c
u2f-passthru.c
u2f.c
u2f.h
xen-usb.c
xlnx-usb-subsystem.c usb: xlnx-usb-subsystem: Add xilinx usb subsystem 2020-12-15 12:04:30 +00:00
xlnx-versal-usb2-ctrl-regs.c usb: Add versal-usb2-ctrl-regs module 2020-12-15 12:04:30 +00:00