From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY5T-00043Q-Pl for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:04:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlY5S-0006xy-S3 for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:04:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47777) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY5S-0006xt-Kp for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:04:02 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 4142DBB96F for ; Mon, 12 Oct 2015 08:04:02 +0000 (UTC) From: Paolo Bonzini Date: Mon, 12 Oct 2015 10:03:24 +0200 Message-Id: <1444637004-20195-22-git-send-email-pbonzini@redhat.com> In-Reply-To: <1444637004-20195-1-git-send-email-pbonzini@redhat.com> References: <1444637004-20195-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 21/21] qemu-char: cleanup after completed conversion to cd->create List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com All backends now return errors through Error*, so the "Failed to create chardev" placeholder error can only be reached if the backend is not available (and only from the chardev-add QMP command; instead, the -chardev command line option fails earlier). Signed-off-by: Paolo Bonzini --- qemu-char.c | 80 ++++--------------------------------------------------------- 1 file changed, 4 insertions(+), 76 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index e0faeb7..8d48e35 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -4308,7 +4308,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, for (i = backends; i; i = i->next) { cd = i->data; - if (cd->kind == backend->kind && cd->create) { + if (cd->kind == backend->kind) { chr = cd->create(id, backend, ret, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -4319,81 +4319,9 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, } if (chr == NULL) { - switch (backend->kind) { - case CHARDEV_BACKEND_KIND_FILE: - abort(); - break; - case CHARDEV_BACKEND_KIND_SERIAL: - abort(); - break; - case CHARDEV_BACKEND_KIND_PARALLEL: - abort(); - break; - case CHARDEV_BACKEND_KIND_PIPE: - abort(); - break; - case CHARDEV_BACKEND_KIND_SOCKET: - abort(); - break; - case CHARDEV_BACKEND_KIND_UDP: - abort(); - break; - case CHARDEV_BACKEND_KIND_PTY: - abort(); - break; - case CHARDEV_BACKEND_KIND_NULL: - abort(); - break; - case CHARDEV_BACKEND_KIND_MUX: - abort(); - break; - case CHARDEV_BACKEND_KIND_MSMOUSE: - abort(); - break; - case CHARDEV_BACKEND_KIND_BRAILLE: - abort(); - break; - case CHARDEV_BACKEND_KIND_TESTDEV: - abort(); - break; - case CHARDEV_BACKEND_KIND_STDIO: - abort(); - break; - case CHARDEV_BACKEND_KIND_CONSOLE: - abort(); - break; - case CHARDEV_BACKEND_KIND_SPICEVMC: - abort(); - break; - case CHARDEV_BACKEND_KIND_SPICEPORT: - abort(); - break; - case CHARDEV_BACKEND_KIND_VC: - abort(); - break; - case CHARDEV_BACKEND_KIND_RINGBUF: - case CHARDEV_BACKEND_KIND_MEMORY: - abort(); - break; - default: - error_setg(errp, "unknown chardev backend (%d)", backend->kind); - goto out_error; - } - - /* - * 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) { - if (local_err) { - error_propagate(errp, local_err); - } else { - error_setg(errp, "Failed to create chardev"); - } - goto out_error; - } + assert(!i); + error_setg(errp, "chardev backend not available"); + goto out_error; } chr->label = g_strdup(id); -- 2.5.0