From nobody Fri Nov 7 19:58:19 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=126.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1548687240008766.74929655785; Mon, 28 Jan 2019 06:54:00 -0800 (PST) Received: from localhost ([127.0.0.1]:60992 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go7p1-0004Yf-Bz for importer@patchew.org; Mon, 28 Jan 2019 09:23:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40209) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go7hb-0007SD-OV for qemu-devel@nongnu.org; Mon, 28 Jan 2019 09:16:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1go7hY-0007FP-OK for qemu-devel@nongnu.org; Mon, 28 Jan 2019 09:15:55 -0500 Received: from m15-113.126.com ([220.181.15.113]:49510) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go7hT-00075K-4v for qemu-devel@nongnu.org; Mon, 28 Jan 2019 09:15:49 -0500 Received: from localhost.bytedance.net (unknown [220.243.134.156]) by smtp3 (Coremail) with SMTP id DcmowAC3b2NsDk9cbAzfBQ--.20895S8; Mon, 28 Jan 2019 22:15:11 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=tPLGv2NaGPYPL035Tp D0GXNURkRJL2UOc7qJspCMBMw=; b=CZ3kup/8CDtzfJffwM10wE9d/PtUAqtHdb t8oOLFwytT3/pUwlJC2WAhdLF3/MCOK9Rgoq8TumxN8EF3NzOS2pK5eO4nc2KZqx O6RNum4YKabJhYXwqZnYoIQ/tWRY6cjP3gBpJBvCnN85BMzgGBA3ze7qpTgbPN+3 Tq3RqU2bw= From: Fei Li To: qemu-devel@nongnu.org, shirley17fei@gmail.com Date: Mon, 28 Jan 2019 22:14:49 +0800 Message-Id: <20190128141506.12731-7-lifei1214@126.com> X-Mailer: git-send-email 2.17.2 (Apple Git-113) In-Reply-To: <20190128141506.12731-1-lifei1214@126.com> References: <20190128141506.12731-1-lifei1214@126.com> X-CM-TRANSID: DcmowAC3b2NsDk9cbAzfBQ--.20895S8 X-Coremail-Antispam: 1Uf129KBjvJXoW7AFyDWr4xGrW8GF4DuF4Uurg_yoW8XrWkpr yUury3Jrs3Zr1avaya93Z2vFW5Gws2ga4UG397Jw1UAws8Wr13ZrWSka4rurW7AFyYqry5 ZFW5KF95WFW2qFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j6hFcUUUUU= X-Originating-IP: [220.243.134.156] X-CM-SenderInfo: 5olivxarsrkqqrswhudrp/1tbiFg9KIVpD8PyLlAAAs4 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 220.181.15.113 Subject: [Qemu-devel] [PATCH for-4.0 06/11] qemu_thread: supplement error handling for emulated_realize X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster , Peter Xu , "Dr . David Alan Gilbert" , Fei Li , Gerd Hoffmann , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fei Li Utilize the existed errp to propagate the error and do the corresponding cleanup to replace the temporary &error_abort. Cc: Markus Armbruster Cc: Gerd Hoffmann Signed-off-by: Fei Li --- hw/usb/ccid-card-emulated.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c index 0b170f6328..19b4b9a8fa 100644 --- a/hw/usb/ccid-card-emulated.c +++ b/hw/usb/ccid-card-emulated.c @@ -544,11 +544,16 @@ static void emulated_realize(CCIDCardState *base, Err= or **errp) error_setg(errp, "%s: failed to initialize vcard", TYPE_EMULATED_C= CID); goto out2; } - /* TODO: let the further caller handle the error instead of abort() he= re */ - qemu_thread_create(&card->event_thread_id, "ccid/event", event_thread, - card, QEMU_THREAD_JOINABLE, &error_abort); - qemu_thread_create(&card->apdu_thread_id, "ccid/apdu", handle_apdu_thr= ead, - card, QEMU_THREAD_JOINABLE, &error_abort); + if (qemu_thread_create(&card->event_thread_id, "ccid/event", event_thr= ead, + card, QEMU_THREAD_JOINABLE, errp) < 0) { + goto out2; + } + if (qemu_thread_create(&card->apdu_thread_id, "ccid/apdu", + handle_apdu_thread, card, + QEMU_THREAD_JOINABLE, errp) < 0) { + qemu_thread_join(&card->event_thread_id); + goto out2; + } =20 return; =20 --=20 2.17.2 (Apple Git-113)