From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmQss-0000NS-8P for qemu-devel@nongnu.org; Mon, 19 May 2014 12:58:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmQsi-0002Ol-Oz for qemu-devel@nongnu.org; Mon, 19 May 2014 12:57:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:21131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmQsi-0002OF-HA for qemu-devel@nongnu.org; Mon, 19 May 2014 12:57:44 -0400 From: Markus Armbruster Date: Mon, 19 May 2014 18:57:36 +0200 Message-Id: <1400518658-2515-4-git-send-email-armbru@redhat.com> In-Reply-To: <1400518658-2515-1-git-send-email-armbru@redhat.com> References: <1400518658-2515-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH v2 3/5] char: Explain qmp_chardev_add()'s unusual error handling List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com, kraxel@redhat.com, aliguori@amazon.com 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 --- 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.9.0