Philippe Mathieu-Daudé <phi...@linaro.org> writes: > Both cryptodev_backend_set_throttle() and CryptoDevBackendClass::init() > can set their Error** argument. Do not ignore them, return early on > failure.
Let's mention why we need to: "Without that, running into another failure trips error_setv()'s assertion." > Use the ERRP_GUARD() macro as suggested in commit ae7c80a7bd > ("error: New macro ERRP_GUARD()"). > > Cc: qemu-sta...@nongnu.org > Fixes: e7a775fd9f ("cryptodev: Account statistics") > Fixes: 2580b452ff ("cryptodev: support QoS") > Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> > --- > backends/cryptodev.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/backends/cryptodev.c b/backends/cryptodev.c > index e5006bd215..fff89fd62a 100644 > --- a/backends/cryptodev.c > +++ b/backends/cryptodev.c > @@ -398,6 +398,7 @@ static void cryptodev_backend_set_ops(Object *obj, > Visitor *v, > static void > cryptodev_backend_complete(UserCreatable *uc, Error **errp) > { > + ERRP_GUARD(); > CryptoDevBackend *backend = CRYPTODEV_BACKEND(uc); > CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_GET_CLASS(uc); > uint32_t services; > @@ -406,11 +407,20 @@ cryptodev_backend_complete(UserCreatable *uc, Error > **errp) > QTAILQ_INIT(&backend->opinfos); > value = backend->tc.buckets[THROTTLE_OPS_TOTAL].avg; > cryptodev_backend_set_throttle(backend, THROTTLE_OPS_TOTAL, value, errp); > + if (*errp) { > + return; > + } > value = backend->tc.buckets[THROTTLE_BPS_TOTAL].avg; > cryptodev_backend_set_throttle(backend, THROTTLE_BPS_TOTAL, value, errp); > + if (*errp) { > + return; > + } > > if (bc->init) { > bc->init(backend, errp); > + if (*errp) { > + return; > + } > } > > services = backend->conf.crypto_services; Preferably with the commit message improved: Reviewed-by: Markus Armbruster <arm...@redhat.com>