From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51537) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wn41j-0003Zp-6Y for qemu-devel@nongnu.org; Wed, 21 May 2014 06:45:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wn41c-0002WJ-TP for qemu-devel@nongnu.org; Wed, 21 May 2014 06:45:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:65122) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wn41c-0002Vp-Lm for qemu-devel@nongnu.org; Wed, 21 May 2014 06:45:32 -0400 From: Gerd Hoffmann Date: Wed, 21 May 2014 12:45:14 +0200 Message-Id: <1400669115-17663-5-git-send-email-kraxel@redhat.com> In-Reply-To: <1400669115-17663-1-git-send-email-kraxel@redhat.com> References: <1400669115-17663-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PULL 4/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: Markus Armbruster , Anthony Liguori , Gerd Hoffmann From: Markus Armbruster 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 Signed-off-by: Gerd Hoffmann --- 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