From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwZgY-0002O3-No for qemu-devel@nongnu.org; Wed, 11 Nov 2015 12:59:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwZgV-0005WN-F0 for qemu-devel@nongnu.org; Wed, 11 Nov 2015 12:59:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51853) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwZgV-0005WD-5h for qemu-devel@nongnu.org; Wed, 11 Nov 2015 12:59:51 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 978D9469 for ; Wed, 11 Nov 2015 17:59:50 +0000 (UTC) From: Markus Armbruster Date: Wed, 11 Nov 2015 18:59:48 +0100 Message-Id: <1447264788-28034-2-git-send-email-armbru@redhat.com> In-Reply-To: <1447264788-28034-1-git-send-email-armbru@redhat.com> References: <1447264788-28034-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL v2 1/1] error: More error_setg() usage List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org From: Eric Blake A few uses of error_set(ERROR_CLASS_GENERIC_ERROR) were missed in c6bd8c706, or have snuck in since. Nuke them. Signed-off-by: Eric Blake Message-Id: <1447224690-9743-19-git-send-email-eblake@redhat.com> Acked-by: Andreas F=C3=A4rber [Indentation tidied up, commit message tweaked] Signed-off-by: Markus Armbruster --- block.c | 3 +-- docs/writing-qmp-commands.txt | 20 +++++++++----------- hw/i386/pc.c | 6 +++--- hw/net/rocker/rocker.c | 6 ++---- hw/net/rocker/rocker_of_dpa.c | 12 ++++-------- qom/object.c | 4 ++-- 6 files changed, 21 insertions(+), 30 deletions(-) diff --git a/block.c b/block.c index e9f40dc..53a978a 100644 --- a/block.c +++ b/block.c @@ -1795,8 +1795,7 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_sta= te, BlockReopenQueue *queue, =20 ret =3D bdrv_flush(reopen_state->bs); if (ret) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, "Error (%s) flushing = drive", - strerror(-ret)); + error_setg_errno(errp, -ret, "Error flushing drive"); goto error; } =20 diff --git a/docs/writing-qmp-commands.txt b/docs/writing-qmp-commands.tx= t index 8647cac..59aa77a 100644 --- a/docs/writing-qmp-commands.txt +++ b/docs/writing-qmp-commands.txt @@ -210,7 +210,7 @@ if you don't see these strings, then something went w= rong. =3D=3D=3D Errors =3D=3D=3D =20 QMP commands should use the error interface exported by the error.h head= er -file. Basically, errors are set by calling the error_set() function. +file. Basically, most errors are set by calling the error_setg() functio= n. =20 Let's say we don't accept the string "message" to contain the word "love= ". If it does contain it, we want the "hello-world" command to return an error= : @@ -219,8 +219,7 @@ void qmp_hello_world(bool has_message, const char *me= ssage, Error **errp) { if (has_message) { if (strstr(message, "love")) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "the word 'love' is not allowed"); + error_setg(errp, "the word 'love' is not allowed"); return; } printf("%s\n", message); @@ -229,10 +228,8 @@ void qmp_hello_world(bool has_message, const char *m= essage, Error **errp) } } =20 -The first argument to the error_set() function is the Error pointer to p= ointer, -which is passed to all QMP functions. The second argument is a ErrorClas= s -value, which should be ERROR_CLASS_GENERIC_ERROR most of the time (more -details about error classes are given below). The third argument is a hu= man +The first argument to the error_setg() function is the Error pointer +to pointer, which is passed to all QMP functions. The next argument is a= human description of the error, this is a free-form printf-like string. =20 Let's test the example above. Build qemu, run it as defined in the "Test= ing" @@ -249,8 +246,9 @@ The QMP server's response should be: } } =20 -As a general rule, all QMP errors should use ERROR_CLASS_GENERIC_ERROR. = There -are two exceptions to this rule: +As a general rule, all QMP errors should use ERROR_CLASS_GENERIC_ERROR +(done by default when using error_setg()). There are two exceptions to +this rule: =20 1. A non-generic ErrorClass value exists* for the failure you want to r= eport (eg. DeviceNotFound) @@ -259,8 +257,8 @@ are two exceptions to this rule: want to report, hence you have to add a new ErrorClass value so that= they can check for it =20 -If the failure you want to report doesn't fall in one of the two cases a= bove, -just report ERROR_CLASS_GENERIC_ERROR. +If the failure you want to report falls into one of the two cases above, +use error_set() with a second argument of an ErrorClass value. =20 * All existing ErrorClass values are defined in the qapi-schema.json fi= le =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 0cb8afd..5e20e07 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1795,9 +1795,9 @@ static void pc_machine_set_max_ram_below_4g(Object = *obj, Visitor *v, return; } if (value > (1ULL << 32)) { - error_set(&error, ERROR_CLASS_GENERIC_ERROR, - "Machine option 'max-ram-below-4g=3D%"PRIu64 - "' expects size less than or equal to 4G", value); + error_setg(&error, + "Machine option 'max-ram-below-4g=3D%"PRIu64 + "' expects size less than or equal to 4G", value); error_propagate(errp, error); return; } diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index bb6fdc3..c57f1a6 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -101,8 +101,7 @@ RockerSwitch *qmp_query_rocker(const char *name, Erro= r **errp) =20 r =3D rocker_find(name); if (!r) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s not found", name); + error_setg(errp, "rocker %s not found", name); return NULL; } =20 @@ -122,8 +121,7 @@ RockerPortList *qmp_query_rocker_ports(const char *na= me, Error **errp) =20 r =3D rocker_find(name); if (!r) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s not found", name); + error_setg(errp, "rocker %s not found", name); return NULL; } =20 diff --git a/hw/net/rocker/rocker_of_dpa.c b/hw/net/rocker/rocker_of_dpa.= c index 1ad2791..3cf1d61 100644 --- a/hw/net/rocker/rocker_of_dpa.c +++ b/hw/net/rocker/rocker_of_dpa.c @@ -2462,15 +2462,13 @@ RockerOfDpaFlowList *qmp_query_rocker_of_dpa_flow= s(const char *name, =20 r =3D rocker_find(name); if (!r) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s not found", name); + error_setg(errp, "rocker %s not found", name); return NULL; } =20 w =3D rocker_get_world(r, ROCKER_WORLD_TYPE_OF_DPA); if (!w) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s doesn't have OF-DPA world", name); + error_setg(errp, "rocker %s doesn't have OF-DPA world", name); return NULL; } =20 @@ -2597,15 +2595,13 @@ RockerOfDpaGroupList *qmp_query_rocker_of_dpa_gro= ups(const char *name, =20 r =3D rocker_find(name); if (!r) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s not found", name); + error_setg(errp, "rocker %s not found", name); return NULL; } =20 w =3D rocker_get_world(r, ROCKER_WORLD_TYPE_OF_DPA); if (!w) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "rocker %s doesn't have OF-DPA world", name); + error_setg(errp, "rocker %s doesn't have OF-DPA world", name); return NULL; } =20 diff --git a/qom/object.c b/qom/object.c index fc6e161..c0decb6 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1330,8 +1330,8 @@ static Object *object_resolve_link(Object *obj, con= st char *name, target =3D object_resolve_path_type(path, target_type, &ambiguous); =20 if (ambiguous) { - error_set(errp, ERROR_CLASS_GENERIC_ERROR, - "Path '%s' does not uniquely identify an object", path= ); + error_setg(errp, "Path '%s' does not uniquely identify an object= ", + path); } else if (!target) { target =3D object_resolve_path(path, &ambiguous); if (target || ambiguous) { --=20 2.4.3