1 | The following changes since commit 60205b71421cbc529ca60b12c79e0eeace007319: | 1 | The following changes since commit 4907644841e3200aea6475c0f72d3d987e9f3d93: |
---|---|---|---|
2 | 2 | ||
3 | Merge tag 'pull-aspeed-20220801' of https://github.com/legoater/qemu into staging (2022-08-01 13:55:11 -0700) | 3 | Merge tag 'mem-2023-09-19' of https://github.com/davidhildenbrand/qemu into staging (2023-09-19 13:22:19 -0400) |
4 | 4 | ||
5 | are available in the Git repository at: | 5 | are available in the Git repository at: |
6 | 6 | ||
7 | git://repo.or.cz/qemu/kevin.git tags/for-upstream | 7 | https://repo.or.cz/qemu/kevin.git tags/for-upstream |
8 | 8 | ||
9 | for you to fetch changes up to 21b1d974595b3986c68fe80a1f7e9b87886d4bae: | 9 | for you to fetch changes up to c428b392590df6364a025d5841e3e8a589ebfd4a: |
10 | 10 | ||
11 | main loop: add missing documentation links to GS/IO macros (2022-08-02 12:02:17 +0200) | 11 | block: mark aio_poll as non-coroutine (2023-09-20 17:46:16 +0200) |
12 | 12 | ||
13 | ---------------------------------------------------------------- | 13 | ---------------------------------------------------------------- |
14 | Block layer patches | 14 | Block layer patches |
15 | 15 | ||
16 | - libvduse: Coverity fixes | 16 | - Graph locking part 4 (node management) |
17 | - hd-geometry: Fix ignored bios-chs-trans setting | 17 | - qemu-img map: report compressed data blocks |
18 | - io_uring: Fix compiler warning (missing #include) | 18 | - block-backend: process I/O in the current AioContext |
19 | - main loop: add missing documentation links to GS/IO macros | ||
20 | - qemu-iotests: Discard stderr when probing devices | ||
21 | 19 | ||
22 | ---------------------------------------------------------------- | 20 | ---------------------------------------------------------------- |
23 | Cole Robinson (1): | 21 | Andrey Drobyshev via (2): |
24 | qemu-iotests: Discard stderr when probing devices | 22 | block: add BDRV_BLOCK_COMPRESSED flag for bdrv_block_status() |
23 | qemu-img: map: report compressed data blocks | ||
25 | 24 | ||
26 | Emanuele Giuseppe Esposito (1): | 25 | Kevin Wolf (21): |
27 | main loop: add missing documentation links to GS/IO macros | 26 | block: Remove unused BlockReopenQueueEntry.perms_checked |
27 | preallocate: Factor out preallocate_truncate_to_real_size() | ||
28 | preallocate: Don't poll during permission updates | ||
29 | block: Take AioContext lock for bdrv_append() more consistently | ||
30 | block: Introduce bdrv_schedule_unref() | ||
31 | block-coroutine-wrapper: Add no_co_wrapper_bdrv_wrlock functions | ||
32 | block-coroutine-wrapper: Allow arbitrary parameter names | ||
33 | block: Mark bdrv_replace_child_noperm() GRAPH_WRLOCK | ||
34 | block: Mark bdrv_replace_child_tran() GRAPH_WRLOCK | ||
35 | block: Mark bdrv_attach_child_common() GRAPH_WRLOCK | ||
36 | block: Call transaction callbacks with lock held | ||
37 | block: Mark bdrv_attach_child() GRAPH_WRLOCK | ||
38 | block: Mark bdrv_parent_perms_conflict() and callers GRAPH_RDLOCK | ||
39 | block: Mark bdrv_get_cumulative_perm() and callers GRAPH_RDLOCK | ||
40 | block: Mark bdrv_child_perm() GRAPH_RDLOCK | ||
41 | block: Mark bdrv_parent_cb_change_media() GRAPH_RDLOCK | ||
42 | block: Take graph rdlock in bdrv_drop_intermediate() | ||
43 | block: Take graph rdlock in bdrv_change_aio_context() | ||
44 | block: Mark bdrv_root_unref_child() GRAPH_WRLOCK | ||
45 | block: Mark bdrv_unref_child() GRAPH_WRLOCK | ||
46 | block: Mark bdrv_add/del_child() and caller GRAPH_WRLOCK | ||
28 | 47 | ||
29 | Jinhao Fan (1): | 48 | Paolo Bonzini (1): |
30 | block/io_uring: add missing include file | 49 | block: mark aio_poll as non-coroutine |
31 | 50 | ||
32 | Lev Kujawski (1): | 51 | Stefan Hajnoczi (4): |
33 | hw/block/hd-geometry: Do not override specified bios-chs-trans | 52 | block: remove AIOCBInfo->get_aio_context() |
53 | test-bdrv-drain: avoid race with BH in IOThread drain test | ||
54 | block-backend: process I/O in the current AioContext | ||
55 | block-backend: process zoned requests in the current AioContext | ||
34 | 56 | ||
35 | Xie Yongji (3): | 57 | qapi/block-core.json | 6 +- |
36 | libvduse: Fix the incorrect function name | 58 | include/block/aio.h | 3 +- |
37 | libvduse: Replace strcpy() with strncpy() | 59 | include/block/block-common.h | 7 + |
38 | libvduse: Pass positive value to strerror() | 60 | include/block/block-global-state.h | 32 +- |
39 | 61 | include/block/block-io.h | 1 - | |
40 | include/qemu/main-loop.h | 18 +++++++++++++++--- | 62 | include/block/block_int-common.h | 34 +- |
41 | block/io_uring.c | 1 + | 63 | include/block/block_int-global-state.h | 14 +- |
42 | hw/block/hd-geometry.c | 7 ++++++- | 64 | include/sysemu/block-backend-global-state.h | 4 +- |
43 | subprojects/libvduse/libvduse.c | 13 +++++++------ | 65 | block.c | 348 +++++++--- |
44 | tests/qemu-iotests/common.rc | 4 ++-- | 66 | block/blklogwrites.c | 4 + |
45 | 5 files changed, 31 insertions(+), 12 deletions(-) | 67 | block/blkverify.c | 2 + |
68 | block/block-backend.c | 64 +- | ||
69 | block/copy-before-write.c | 10 +- | ||
70 | block/crypto.c | 6 +- | ||
71 | block/graph-lock.c | 26 +- | ||
72 | block/io.c | 23 +- | ||
73 | block/mirror.c | 8 + | ||
74 | block/preallocate.c | 133 ++-- | ||
75 | block/qcow.c | 5 +- | ||
76 | block/qcow2.c | 7 +- | ||
77 | block/quorum.c | 23 +- | ||
78 | block/replication.c | 9 + | ||
79 | block/snapshot.c | 2 + | ||
80 | block/stream.c | 20 +- | ||
81 | block/vmdk.c | 15 + | ||
82 | blockdev.c | 23 +- | ||
83 | blockjob.c | 2 + | ||
84 | hw/nvme/ctrl.c | 7 - | ||
85 | qemu-img.c | 8 +- | ||
86 | softmmu/dma-helpers.c | 8 - | ||
87 | tests/unit/test-bdrv-drain.c | 31 +- | ||
88 | tests/unit/test-bdrv-graph-mod.c | 20 + | ||
89 | tests/unit/test-block-iothread.c | 3 + | ||
90 | util/thread-pool.c | 8 - | ||
91 | scripts/block-coroutine-wrapper.py | 18 +- | ||
92 | tests/qemu-iotests/051.pc.out | 6 +- | ||
93 | tests/qemu-iotests/122.out | 84 +-- | ||
94 | tests/qemu-iotests/146.out | 780 +++++++++++------------ | ||
95 | tests/qemu-iotests/154.out | 194 +++--- | ||
96 | tests/qemu-iotests/179.out | 178 +++--- | ||
97 | tests/qemu-iotests/209.out | 4 +- | ||
98 | tests/qemu-iotests/221.out | 16 +- | ||
99 | tests/qemu-iotests/223.out | 60 +- | ||
100 | tests/qemu-iotests/241.out | 10 +- | ||
101 | tests/qemu-iotests/244.out | 24 +- | ||
102 | tests/qemu-iotests/252.out | 10 +- | ||
103 | tests/qemu-iotests/253.out | 20 +- | ||
104 | tests/qemu-iotests/274.out | 48 +- | ||
105 | tests/qemu-iotests/tests/nbd-qemu-allocation.out | 16 +- | ||
106 | tests/qemu-iotests/tests/qemu-img-bitmaps.out | 24 +- | ||
107 | 50 files changed, 1375 insertions(+), 1033 deletions(-) | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Jinhao Fan <fanjinhao21s@ict.ac.cn> | ||
2 | 1 | ||
3 | The commit "Use io_uring_register_ring_fd() to skip fd operations" uses | ||
4 | warn_report but did not include the header file "qemu/error-report.h". | ||
5 | This causes "error: implicit declaration of function ‘warn_report’". | ||
6 | Include this header file. | ||
7 | |||
8 | Fixes: e2848bc574 ("Use io_uring_register_ring_fd() to skip fd operations") | ||
9 | Signed-off-by: Jinhao Fan <fanjinhao21s@ict.ac.cn> | ||
10 | Message-Id: <20220721065645.577404-1-fanjinhao21s@ict.ac.cn> | ||
11 | Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> | ||
12 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
13 | --- | ||
14 | block/io_uring.c | 1 + | ||
15 | 1 file changed, 1 insertion(+) | ||
16 | |||
17 | diff --git a/block/io_uring.c b/block/io_uring.c | ||
18 | index XXXXXXX..XXXXXXX 100644 | ||
19 | --- a/block/io_uring.c | ||
20 | +++ b/block/io_uring.c | ||
21 | @@ -XXX,XX +XXX,XX @@ | ||
22 | #include "qemu/osdep.h" | ||
23 | #include <liburing.h> | ||
24 | #include "block/aio.h" | ||
25 | +#include "qemu/error-report.h" | ||
26 | #include "qemu/queue.h" | ||
27 | #include "block/block.h" | ||
28 | #include "block/raw-aio.h" | ||
29 | -- | ||
30 | 2.35.3 | ||
31 | |||
32 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Xie Yongji <xieyongji@bytedance.com> | ||
2 | 1 | ||
3 | In vduse_name_is_valid(), we actually check whether | ||
4 | the name is invalid or not. So let's change the | ||
5 | function name to vduse_name_is_invalid() to match | ||
6 | the behavior. | ||
7 | |||
8 | Signed-off-by: Xie Yongji <xieyongji@bytedance.com> | ||
9 | Reviewed-by: Markus Armbruster <armbru@redhat.com> | ||
10 | Message-Id: <20220706095624.328-2-xieyongji@bytedance.com> | ||
11 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
12 | --- | ||
13 | subprojects/libvduse/libvduse.c | 6 +++--- | ||
14 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
15 | |||
16 | diff --git a/subprojects/libvduse/libvduse.c b/subprojects/libvduse/libvduse.c | ||
17 | index XXXXXXX..XXXXXXX 100644 | ||
18 | --- a/subprojects/libvduse/libvduse.c | ||
19 | +++ b/subprojects/libvduse/libvduse.c | ||
20 | @@ -XXX,XX +XXX,XX @@ static int vduse_dev_init(VduseDev *dev, const char *name, | ||
21 | return 0; | ||
22 | } | ||
23 | |||
24 | -static inline bool vduse_name_is_valid(const char *name) | ||
25 | +static inline bool vduse_name_is_invalid(const char *name) | ||
26 | { | ||
27 | return strlen(name) >= VDUSE_NAME_MAX || strstr(name, ".."); | ||
28 | } | ||
29 | @@ -XXX,XX +XXX,XX @@ VduseDev *vduse_dev_create_by_name(const char *name, uint16_t num_queues, | ||
30 | VduseDev *dev; | ||
31 | int ret; | ||
32 | |||
33 | - if (!name || vduse_name_is_valid(name) || !ops || | ||
34 | + if (!name || vduse_name_is_invalid(name) || !ops || | ||
35 | !ops->enable_queue || !ops->disable_queue) { | ||
36 | fprintf(stderr, "Invalid parameter for vduse\n"); | ||
37 | return NULL; | ||
38 | @@ -XXX,XX +XXX,XX @@ VduseDev *vduse_dev_create(const char *name, uint32_t device_id, | ||
39 | struct vduse_dev_config *dev_config; | ||
40 | size_t size = offsetof(struct vduse_dev_config, config); | ||
41 | |||
42 | - if (!name || vduse_name_is_valid(name) || | ||
43 | + if (!name || vduse_name_is_invalid(name) || | ||
44 | !has_feature(features, VIRTIO_F_VERSION_1) || !config || | ||
45 | !config_size || !ops || !ops->enable_queue || !ops->disable_queue) { | ||
46 | fprintf(stderr, "Invalid parameter for vduse\n"); | ||
47 | -- | ||
48 | 2.35.3 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Xie Yongji <xieyongji@bytedance.com> | ||
2 | 1 | ||
3 | Coverity reported a string overflow issue since we copied | ||
4 | "name" to "dev_config->name" without checking the length. | ||
5 | This should be a false positive since we already checked | ||
6 | the length of "name" in vduse_name_is_invalid(). But anyway, | ||
7 | let's replace strcpy() with strncpy() (as a general library, | ||
8 | we'd like to minimize dependencies on other libraries, so we | ||
9 | didn't use g_strlcpy() here) to fix the coverity complaint. | ||
10 | |||
11 | Fixes: Coverity CID 1490224 | ||
12 | Signed-off-by: Xie Yongji <xieyongji@bytedance.com> | ||
13 | Reviewed-by: Markus Armbruster <armbru@redhat.com> | ||
14 | Message-Id: <20220706095624.328-3-xieyongji@bytedance.com> | ||
15 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
16 | --- | ||
17 | subprojects/libvduse/libvduse.c | 3 ++- | ||
18 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/subprojects/libvduse/libvduse.c b/subprojects/libvduse/libvduse.c | ||
21 | index XXXXXXX..XXXXXXX 100644 | ||
22 | --- a/subprojects/libvduse/libvduse.c | ||
23 | +++ b/subprojects/libvduse/libvduse.c | ||
24 | @@ -XXX,XX +XXX,XX @@ VduseDev *vduse_dev_create(const char *name, uint32_t device_id, | ||
25 | goto err_dev; | ||
26 | } | ||
27 | |||
28 | - strcpy(dev_config->name, name); | ||
29 | + strncpy(dev_config->name, name, VDUSE_NAME_MAX); | ||
30 | + dev_config->name[VDUSE_NAME_MAX - 1] = '\0'; | ||
31 | dev_config->device_id = device_id; | ||
32 | dev_config->vendor_id = vendor_id; | ||
33 | dev_config->features = features; | ||
34 | -- | ||
35 | 2.35.3 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Xie Yongji <xieyongji@bytedance.com> | ||
2 | 1 | ||
3 | The value passed to strerror() should be positive. | ||
4 | So let's fix it. | ||
5 | |||
6 | Fixes: Coverity CID 1490226, 1490223 | ||
7 | Signed-off-by: Xie Yongji <xieyongji@bytedance.com> | ||
8 | Reviewed-by: Richard Henderson <richard.henderson@linaro.org> | ||
9 | Reviewed-by: Markus Armbruster <armbru@redhat.com> | ||
10 | Message-Id: <20220706095624.328-4-xieyongji@bytedance.com> | ||
11 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
12 | --- | ||
13 | subprojects/libvduse/libvduse.c | 4 ++-- | ||
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
15 | |||
16 | diff --git a/subprojects/libvduse/libvduse.c b/subprojects/libvduse/libvduse.c | ||
17 | index XXXXXXX..XXXXXXX 100644 | ||
18 | --- a/subprojects/libvduse/libvduse.c | ||
19 | +++ b/subprojects/libvduse/libvduse.c | ||
20 | @@ -XXX,XX +XXX,XX @@ VduseDev *vduse_dev_create_by_name(const char *name, uint16_t num_queues, | ||
21 | ret = vduse_dev_init(dev, name, num_queues, ops, priv); | ||
22 | if (ret < 0) { | ||
23 | fprintf(stderr, "Failed to init vduse device %s: %s\n", | ||
24 | - name, strerror(ret)); | ||
25 | + name, strerror(-ret)); | ||
26 | free(dev); | ||
27 | return NULL; | ||
28 | } | ||
29 | @@ -XXX,XX +XXX,XX @@ VduseDev *vduse_dev_create(const char *name, uint32_t device_id, | ||
30 | ret = vduse_dev_init(dev, name, num_queues, ops, priv); | ||
31 | if (ret < 0) { | ||
32 | fprintf(stderr, "Failed to init vduse device %s: %s\n", | ||
33 | - name, strerror(ret)); | ||
34 | + name, strerror(-ret)); | ||
35 | goto err; | ||
36 | } | ||
37 | |||
38 | -- | ||
39 | 2.35.3 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Lev Kujawski <lkujaw@member.fsf.org> | ||
2 | 1 | ||
3 | For small disk images (<4 GiB), QEMU and SeaBIOS default to the | ||
4 | LARGE/ECHS disk translation method, but it is not uncommon for other | ||
5 | BIOS software to use LBA in these cases as well. Some operating | ||
6 | system boot loaders (e.g., NT 4) do not handle LARGE translations | ||
7 | outside of fixed configurations. See, e.g., Q154052: | ||
8 | |||
9 | "When starting an x86 based computer, Ntdetect.com retrieves and | ||
10 | stores Interrupt 13 information. . . If the disk controller is using a | ||
11 | 32 sector/64 head translation scheme, this boundary will be 1 GB. If | ||
12 | the controller uses 63 sector/255 head translation [AUTHOR: i.e., | ||
13 | LBA], the limit will be 4 GB." | ||
14 | |||
15 | To accommodate these situations, hd_geometry_guess() now follows the | ||
16 | disk translation specified by the user even when the ATA disk geometry | ||
17 | is guessed. | ||
18 | |||
19 | hd_geometry_guess(): | ||
20 | * Only set the disk translation when translation is AUTO. | ||
21 | * Show the soon-to-be active translation (*ptrans) in the trace rather | ||
22 | than what was guessed. | ||
23 | |||
24 | Resolves: https://gitlab.com/qemu-project/qemu/-/issues/56 | ||
25 | Buglink: https://bugs.launchpad.net/qemu/+bug/1745312 | ||
26 | |||
27 | Signed-off-by: Lev Kujawski <lkujaw@member.fsf.org> | ||
28 | Message-Id: <20220707204045.999544-1-lkujaw@member.fsf.org> | ||
29 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
30 | --- | ||
31 | hw/block/hd-geometry.c | 7 ++++++- | ||
32 | 1 file changed, 6 insertions(+), 1 deletion(-) | ||
33 | |||
34 | diff --git a/hw/block/hd-geometry.c b/hw/block/hd-geometry.c | ||
35 | index XXXXXXX..XXXXXXX 100644 | ||
36 | --- a/hw/block/hd-geometry.c | ||
37 | +++ b/hw/block/hd-geometry.c | ||
38 | @@ -XXX,XX +XXX,XX @@ void hd_geometry_guess(BlockBackend *blk, | ||
39 | translation = BIOS_ATA_TRANSLATION_NONE; | ||
40 | } | ||
41 | if (ptrans) { | ||
42 | - *ptrans = translation; | ||
43 | + if (*ptrans == BIOS_ATA_TRANSLATION_AUTO) { | ||
44 | + *ptrans = translation; | ||
45 | + } else { | ||
46 | + /* Defer to the translation specified by the user. */ | ||
47 | + translation = *ptrans; | ||
48 | + } | ||
49 | } | ||
50 | trace_hd_geometry_guess(blk, *pcyls, *pheads, *psecs, translation); | ||
51 | } | ||
52 | -- | ||
53 | 2.35.3 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Cole Robinson <crobinso@redhat.com> | ||
2 | 1 | ||
3 | qemu-iotests fails in the following setup: | ||
4 | |||
5 | ./configure --enable-modules --enable-smartcard \ | ||
6 | --target-list=x86_64-softmmu,s390x-softmmu | ||
7 | make | ||
8 | cd build | ||
9 | QEMU_PROG=`pwd`/s390x-softmmu/qemu-system-s390x \ | ||
10 | ../tests/check-block.sh qcow2 | ||
11 | ... | ||
12 | --- /home/crobinso/src/qemu/tests/qemu-iotests/127.out | ||
13 | +++ /home/crobinso/src/qemu/build/tests/qemu-iotests/scratch/127.out.bad | ||
14 | @@ -1,4 +1,18 @@ | ||
15 | QA output created by 127 | ||
16 | +Failed to open module: /home/crobinso/src/qemu/build/hw-usb-smartcard.so: undefined symbol: ccid_card_ccid_attach | ||
17 | ... | ||
18 | --- /home/crobinso/src/qemu/tests/qemu-iotests/267.out | ||
19 | +++ /home/crobinso/src/qemu/build/tests/qemu-iotests/scratch/267.out.bad | ||
20 | @@ -1,4 +1,11 @@ | ||
21 | QA output created by 267 | ||
22 | +Failed to open module: /home/crobinso/src/qemu/build/hw-usb-smartcard.so: undefined symbol: ccid_card_ccid_attach | ||
23 | |||
24 | The stderr spew is its own known issue, but seems like iotests should | ||
25 | be discarding stderr in this case. | ||
26 | |||
27 | Signed-off-by: Cole Robinson <crobinso@redhat.com> | ||
28 | Reviewed-by: Thomas Huth <thuth@redhat.com> | ||
29 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
30 | --- | ||
31 | tests/qemu-iotests/common.rc | 4 ++-- | ||
32 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
33 | |||
34 | diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc | ||
35 | index XXXXXXX..XXXXXXX 100644 | ||
36 | --- a/tests/qemu-iotests/common.rc | ||
37 | +++ b/tests/qemu-iotests/common.rc | ||
38 | @@ -XXX,XX +XXX,XX @@ _require_large_file() | ||
39 | # | ||
40 | _require_devices() | ||
41 | { | ||
42 | - available=$($QEMU -M none -device help | \ | ||
43 | + available=$($QEMU -M none -device help 2> /dev/null | \ | ||
44 | grep ^name | sed -e 's/^name "//' -e 's/".*$//') | ||
45 | for device | ||
46 | do | ||
47 | @@ -XXX,XX +XXX,XX @@ _require_devices() | ||
48 | |||
49 | _require_one_device_of() | ||
50 | { | ||
51 | - available=$($QEMU -M none -device help | \ | ||
52 | + available=$($QEMU -M none -device help 2> /dev/null | \ | ||
53 | grep ^name | sed -e 's/^name "//' -e 's/".*$//') | ||
54 | for device | ||
55 | do | ||
56 | -- | ||
57 | 2.35.3 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||
2 | 1 | ||
3 | If we go directly to GLOBAL_STATE_CODE, IO_CODE or IO_OR_GS_CODE | ||
4 | definition, we just find that they "mark and check that the function | ||
5 | is part of the {category} API". | ||
6 | However, ther is no definition on what {category} API is, they are | ||
7 | in include/block/block-*.h | ||
8 | Therefore, add a comment that refers to such documentation. | ||
9 | |||
10 | Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||
11 | Message-Id: <20220609122206.1016936-1-eesposit@redhat.com> | ||
12 | Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> | ||
13 | Signed-off-by: Kevin Wolf <kwolf@redhat.com> | ||
14 | --- | ||
15 | include/qemu/main-loop.h | 18 +++++++++++++++--- | ||
16 | 1 file changed, 15 insertions(+), 3 deletions(-) | ||
17 | |||
18 | diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h | ||
19 | index XXXXXXX..XXXXXXX 100644 | ||
20 | --- a/include/qemu/main-loop.h | ||
21 | +++ b/include/qemu/main-loop.h | ||
22 | @@ -XXX,XX +XXX,XX @@ bool qemu_mutex_iothread_locked(void); | ||
23 | */ | ||
24 | bool qemu_in_main_thread(void); | ||
25 | |||
26 | -/* Mark and check that the function is part of the global state API. */ | ||
27 | +/* | ||
28 | + * Mark and check that the function is part of the Global State API. | ||
29 | + * Please refer to include/block/block-global-state.h for more | ||
30 | + * information about GS API. | ||
31 | + */ | ||
32 | #ifdef CONFIG_COCOA | ||
33 | /* | ||
34 | * When using the Cocoa UI, addRemovableDevicesMenuItems() is called from | ||
35 | @@ -XXX,XX +XXX,XX @@ bool qemu_in_main_thread(void); | ||
36 | } while (0) | ||
37 | #endif /* CONFIG_COCOA */ | ||
38 | |||
39 | -/* Mark and check that the function is part of the I/O API. */ | ||
40 | +/* | ||
41 | + * Mark and check that the function is part of the I/O API. | ||
42 | + * Please refer to include/block/block-io.h for more | ||
43 | + * information about IO API. | ||
44 | + */ | ||
45 | #define IO_CODE() \ | ||
46 | do { \ | ||
47 | /* nop */ \ | ||
48 | } while (0) | ||
49 | |||
50 | -/* Mark and check that the function is part of the "I/O OR GS" API. */ | ||
51 | +/* | ||
52 | + * Mark and check that the function is part of the "I/O OR GS" API. | ||
53 | + * Please refer to include/block/block-io.h for more | ||
54 | + * information about "IO or GS" API. | ||
55 | + */ | ||
56 | #define IO_OR_GS_CODE() \ | ||
57 | do { \ | ||
58 | /* nop */ \ | ||
59 | -- | ||
60 | 2.35.3 | diff view generated by jsdifflib |