Commit 3894c787 authored by Markus Armbruster's avatar Markus Armbruster Committed by Gerd Hoffmann
Browse files

char: Explain qmp_chardev_add()'s unusual error handling



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: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 0aff637e
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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) {