qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/4] blockdev: Fix 'change' for slot devices
@ 2016-01-12 15:47 Max Reitz
  2016-01-12 15:47 ` [Qemu-devel] [PATCH 1/4] block: Add blk_dev_has_tray() Max Reitz
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Max Reitz @ 2016-01-12 15:47 UTC (permalink / raw)
  To: qemu-block
  Cc: Kevin Wolf, Peter Maydell, Markus Armbruster, qemu-devel,
	Max Reitz, John Snow

The series "BlockBackend and media" intended all block devices with
removable media to implement a tray model; if the devices does not have
a tray, it should emulate one.

While this may make sense from a technical perspective (blockdev-*-tray
are guest device controlling operations, invoking
blk_dev_change_media_cb(); blockdev-*-medium are operations concerning
the block layer, controlling the BB-BDS link), it is (probably)
unintuitive to users, and it requires said implementation of an emulated
tray for each of the slot devices (floppy disk drives and SD card
readers).

We can get rid of those virtual trays by special-casing tray-less
devices in blockdev-*-tray (those operations are no-ops there) and in
blockdev-*-medium (those operations then have to invoke
blk_dev_change_media_cb()). With this change, changing the medium
inserted into a slot device will no longer emit TRAY_MOVED events (which
seems like a bugfix to me, because slot devices actually do not have
trays).


Patches 1 and 2 are CC'd to qemu-stable because they fix 'change' for SD
card readers. Patch 3 does not fix it for floppy disk drives, it just
changes the behavior when used on them (no TRAY_MOVED events, no
tray_open status, and blockdev-{open,close}-tray are optional), which is
why it is not CC'd to qemu-stable; and patch 4 is more of a change in
behavior than a stable-worthy fix.


Max Reitz (4):
  block: Add blk_dev_has_tray()
  blockdev: Fix 'change' for slot devices
  Revert "hw/block/fdc: Implement tray status"
  block/qapi: Emit tray_open only if there is a tray

 block/block-backend.c      |  10 +++-
 block/qapi.c               |   2 +-
 blockdev.c                 |  27 ++++++++++-
 hw/block/fdc.c             |  20 ++------
 include/block/block_int.h  |   1 +
 qapi/block-core.json       |   3 +-
 tests/fdc-test.c           |   2 -
 tests/qemu-iotests/067.out |   4 --
 tests/qemu-iotests/118     | 117 ++++++++++++++-------------------------------
 9 files changed, 77 insertions(+), 109 deletions(-)

-- 
2.7.0

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

end of thread, other threads:[~2016-01-18 10:52 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-12 15:47 [Qemu-devel] [PATCH 0/4] blockdev: Fix 'change' for slot devices Max Reitz
2016-01-12 15:47 ` [Qemu-devel] [PATCH 1/4] block: Add blk_dev_has_tray() Max Reitz
2016-01-15 16:57   ` Eric Blake
2016-01-18 10:23   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2016-01-12 15:47 ` [Qemu-devel] [PATCH 2/4] blockdev: Fix 'change' for slot devices Max Reitz
2016-01-15 17:08   ` Eric Blake
2016-01-18 10:49   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2016-01-12 15:47 ` [Qemu-devel] [PATCH 3/4] Revert "hw/block/fdc: Implement tray status" Max Reitz
2016-01-15 17:11   ` Eric Blake
2016-01-12 15:47 ` [Qemu-devel] [PATCH 4/4] block/qapi: Emit tray_open only if there is a tray Max Reitz
2016-01-15 17:11   ` Eric Blake
2016-01-18 10:52   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2016-01-15 16:10 ` [Qemu-devel] [PATCH 0/4] blockdev: Fix 'change' for slot devices Peter Maydell
2016-01-15 16:24   ` Peter Maydell

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