From: Vladimir Sementsov-Ogievskiy Date: Thu, 15 Jan 2026 14:46:04 +0000 (+0300) Subject: chardev/char: qemu_char_open(): add return value X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=518d1458bdb0f83e992057fd1fa39b768c3216ae;p=thirdparty%2Fqemu.git chardev/char: qemu_char_open(): add return value Accordingly with recommendations in include/qapi/error.h accompany errp by boolean return value and get rid of error propagation. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Marc-André Lureau Message-Id: <20260115144606.233252-11-vsementsov@yandex-team.ru> --- diff --git a/chardev/char.c b/chardev/char.c index 3373c9b61f..5d00cac2f3 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -246,7 +246,7 @@ int qemu_chr_add_client(Chardev *s, int fd) CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1; } -static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp) +static bool qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp) { ChardevClass *cc = CHARDEV_GET_CLASS(chr); /* Any ChardevCommon member would work */ @@ -262,13 +262,15 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp) } chr->logfd = qemu_create(common->logfile, flags, 0666, errp); if (chr->logfd < 0) { - return; + return false; } } - if (cc->chr_open) { - cc->chr_open(chr, backend, errp); + if (!cc->chr_open) { + return true; } + + return cc->chr_open(chr, backend, errp); } static void char_init(Object *obj) @@ -1006,7 +1008,6 @@ static Chardev *chardev_new(const char *id, const char *typename, { Object *obj; Chardev *chr = NULL; - Error *local_err = NULL; assert(g_str_has_prefix(typename, "chardev-")); assert(id); @@ -1017,9 +1018,7 @@ static Chardev *chardev_new(const char *id, const char *typename, chr->label = g_strdup(id); chr->gcontext = gcontext; - qemu_char_open(chr, backend, &local_err); - if (local_err) { - error_propagate(errp, local_err); + if (!qemu_char_open(chr, backend, errp)) { object_unref(obj); return NULL; }