[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 4/5] char: Explain qmp_chardev_add()'s unusual error
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 4/5] char: Explain qmp_chardev_add()'s unusual error handling |
Date: |
Wed, 21 May 2014 12:45:14 +0200 |
From: Markus Armbruster <address@hidden>
Character backend open hasn't been fully converted to the Error API.
Some opens fail without setting an error. qmp_chardev_add() needs to
detect when that happens, and set a generic error. Explain that in a
comment, and inline error_is_set() for clarity.
Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
qemu-char.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/qemu-char.c b/qemu-char.c
index 5a7975f..17b476e 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3798,7 +3798,13 @@ ChardevReturn *qmp_chardev_add(const char *id,
ChardevBackend *backend,
break;
}
- if (chr == NULL && !error_is_set(errp)) {
+ /*
+ * Character backend open hasn't been fully converted to the Error
+ * API. Some opens fail without setting an error. Set a generic
+ * error then.
+ * TODO full conversion to Error API
+ */
+ if (chr == NULL && errp && !*errp) {
error_setg(errp, "Failed to create chardev");
}
if (chr) {
--
1.8.3.1
- [Qemu-devel] [PULL 0/5] purge error_is_set(), Gerd Hoffmann, 2014/05/21
- [Qemu-devel] [PULL 5/5] error: error_is_set() is finally unused; remove, Gerd Hoffmann, 2014/05/21
- [Qemu-devel] [PULL 4/5] char: Explain qmp_chardev_add()'s unusual error handling,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 1/5] qemu-socket: Clean up inet_connect_opts(), Gerd Hoffmann, 2014/05/21
- [Qemu-devel] [PULL 2/5] char: Use return values instead of error_is_set(errp), Gerd Hoffmann, 2014/05/21
- [Qemu-devel] [PULL 3/5] char: Clean up fragile use of error_is_set(), Gerd Hoffmann, 2014/05/21
- Re: [Qemu-devel] [PULL 0/5] purge error_is_set(), Peter Maydell, 2014/05/22