Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195229/?format=api
{ "id": 2195229, "url": "http://patchwork.ozlabs.org/api/patches/2195229/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210154801.1662032-3-stefanb@linux.ibm.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260210154801.1662032-3-stefanb@linux.ibm.com>", "list_archive_url": null, "date": "2026-02-10T15:48:00", "name": "[PULL,v1,2/3] tpm_emulator: drop direct use of errno variable", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "6962cf96429733c205917886cdac66888f505e58", "submitter": { "id": 75097, "url": "http://patchwork.ozlabs.org/api/people/75097/?format=api", "name": "Stefan Berger", "email": "stefanb@linux.ibm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210154801.1662032-3-stefanb@linux.ibm.com/mbox/", "series": [ { "id": 491693, "url": "http://patchwork.ozlabs.org/api/series/491693/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491693", "date": "2026-02-10T15:47:59", "name": "[PULL,v1,1/3] tpm_emulator: print error on error-ignore path", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491693/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195229/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195229/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=eHvw7rUc;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f9R1w50bFz1xwN\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 02:53:56 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpq2v-0001aO-5B; Tue, 10 Feb 2026 10:53:03 -0500", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <stefanb@linux.ibm.com>)\n id 1vpq2n-0001X5-1Z\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 10:52:53 -0500", "from mx0b-001b2d01.pphosted.com ([148.163.158.5])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <stefanb@linux.ibm.com>)\n id 1vpq2Z-0003hG-Pa\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 10:52:51 -0500", "from pps.filterd (m0353725.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 61A3jb4p3537614; Tue, 10 Feb 2026 15:48:06 GMT", "from ppma22.wdc07v.mail.ibm.com\n (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4c696v2sa8-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Tue, 10 Feb 2026 15:48:05 +0000 (GMT)", "from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])\n by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 61AE1qZY008400;\n Tue, 10 Feb 2026 15:48:05 GMT", "from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68])\n by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4c6g3ya0u8-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Tue, 10 Feb 2026 15:48:05 +0000", "from smtpav03.wdc07v.mail.ibm.com (smtpav03.wdc07v.mail.ibm.com\n [10.39.53.230])\n by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 61AFm5d35899238\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Tue, 10 Feb 2026 15:48:05 GMT", "from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id DF47C5805A;\n Tue, 10 Feb 2026 15:48:04 +0000 (GMT)", "from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 5693E58054;\n Tue, 10 Feb 2026 15:48:04 +0000 (GMT)", "from sbct-3.pok.ibm.com (unknown [9.47.158.153])\n by smtpav03.wdc07v.mail.ibm.com (Postfix) with ESMTP;\n Tue, 10 Feb 2026 15:48:04 +0000 (GMT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n :content-transfer-encoding:date:from:in-reply-to:message-id\n :mime-version:references:subject:to; s=pp1; bh=7jzwZyY+Z/N8QC5x4\n wP77+MLsBzTXVWktB+4y3hSvYw=; b=eHvw7rUcMaq2CPkoccr87aYOzCWzJHMSr\n UQ3olxThERfE1I0+DnkvYgZHlMTNs0RjXwFWqWROTsxwFgiSHwnViXmc6Bd+kioz\n KB8Ws7QxQkKIK+C+2AD7l7x1tAEwCViqk38GzYNzCPIrBX82P9tnOEPsUnCNBoBP\n 5prTv7AdOyI3EsMtB+3w8qM2wPjMmDJPaLbmiORz1gQ1qrffAPHHai+kRo7z2/Ep\n MmjfD+mmcjzqmK81+mrhOWTXj1TYIg/2/rkLF1jHbeC5XXv5H/XXBHTDgvv0VCwt\n 2w3QiCJQvsbBX5FcIFALJ/tvmi54SJdUw2UHK1+4/a6hFiztJLmeQ==", "From": "Stefan Berger <stefanb@linux.ibm.com>", "To": "qemu-devel@nongnu.org", "Cc": "peter.maydell@linaro.org,\n Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,\n Stefan Berger <stefanb@linux.ibm.com>,\n Markus Armbruster <armbru@redhat.com>", "Subject": "[PULL v1 2/3] tpm_emulator: drop direct use of errno variable", "Date": "Tue, 10 Feb 2026 10:48:00 -0500", "Message-ID": "<20260210154801.1662032-3-stefanb@linux.ibm.com>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20260210154801.1662032-1-stefanb@linux.ibm.com>", "References": "<20260210154801.1662032-1-stefanb@linux.ibm.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-TM-AS-GCONF": "00", "X-Proofpoint-GUID": "AHS-8QehAnS2CozD7nU6TJzF8q7utOgX", "X-Proofpoint-ORIG-GUID": "AHS-8QehAnS2CozD7nU6TJzF8q7utOgX", "X-Authority-Analysis": "v=2.4 cv=JdWxbEKV c=1 sm=1 tr=0 ts=698b5335 cx=c_pps\n a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17\n a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22\n a=GgsMoib0sEa3-_RKJdDe:22 a=6R7veym_AAAA:8 a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8\n a=ek3WFFHKF6qGx2XKqDkA:9 a=ILCOIF4F_8SzUMnO7jNM:22", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMjEwMDEzMiBTYWx0ZWRfX+8fmvESlH3sr\n XPa9lTRAhEDmHaIIQm/ck3kDoZI0FHuAuvqRnu7n6O29m1q82ZWqqnAMdqwA7TBGqyg2ao0wuSq\n BlTYkFY/UVtKUTfZEuODxG1CtoLf7bfOxP9W2V8sVlTCQjQpId0OWg4U16Blv4grvhfmNglqTbV\n AzXUfirVHcsVVrtG5BW7qTn5qMhyQSFX0lRuz5GmUol7uNzFNF45StvaS4laZpYjJGjARaa+rVe\n O9bfXaJnvrNwz1XZHoljLW5ssEEYa2K6I8TLz5VVQSLMhnkLZbdF61Z83tOND2sZ96XQ/E+xL8v\n mastu0XHLJelt7nhtMIHsUKvvlorWMw8CCqAGRiSrK3y3ga/vFsBpGQY1LxNAtpagRX83DAoSqX\n Ak9jPVFJGBWanJitC8zaS3A6az9eRLsasZCdBknxjjrujeB/ffOmf5zfuLqzmqEI2acr3t7yPw+\n CXsbatRu8AVCTVVb5SQ==", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-02-10_01,2026-02-10_02,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0\n lowpriorityscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0\n phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000\n definitions=main-2602100132", "Received-SPF": "pass client-ip=148.163.158.5;\n envelope-from=stefanb@linux.ibm.com;\n helo=mx0b-001b2d01.pphosted.com", "X-Spam_score_int": "-19", "X-Spam_score": "-2.0", "X-Spam_bar": "--", "X-Spam_report": "(-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001,\n RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>\n\nThe code tends to include errno into error messages after\ntpm_util_test_tpmdev() and tpm_emulator_ctrlcmd() calls.\n\nBoth has error paths, where errno is not set, examples:\n\ntpm_emulator_ctrlcmd()\n qemu_chr_fe_write_all()\n qemu_chr_write()\n replay_char_write_event_load()\n ...\n *res = replay_get_dword();\n ...\n\ntpm_util_test_tpmdev()\n tpm_util_test()\n tpm_util_request()\n ...\n if (n != requestlen) {\n return -EFAULT;\n }\n ...\n\nBoth doesn't document that they set errno.\n\nLet's drop these explicit usage of errno. If we need this information,\nit should be added to errp deeper in the stack.\n\nSigned-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>\nReviewed-by: Stefan Berger <stefanb@linux.ibm.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nSigned-off-by: Stefan Berger <stefanb@linux.ibm.com>\n---\n backends/tpm/tpm_emulator.c | 41 +++++++++++++++----------------------\n 1 file changed, 16 insertions(+), 25 deletions(-)", "diff": "diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c\nindex 6d8529da3b..dc84380b13 100644\n--- a/backends/tpm/tpm_emulator.c\n+++ b/backends/tpm/tpm_emulator.c\n@@ -225,7 +225,7 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number,\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_LOCALITY, &loc,\n sizeof(loc), sizeof(loc.u.resp.tpm_result),\n sizeof(loc)) < 0) {\n- error_setg_errno(errp, errno, \"tpm-emulator: could not set locality\");\n+ error_setg(errp, \"tpm-emulator: could not set locality\");\n return -1;\n }\n \n@@ -263,7 +263,7 @@ static int tpm_emulator_probe_caps(TPMEmulator *tpm_emu)\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_GET_CAPABILITY, &cap_n, 0,\n sizeof(cap_n.u.resp.tpm_result),\n sizeof(cap_n)) < 0) {\n- error_report(\"tpm-emulator: probing failed : %s\", strerror(errno));\n+ error_report(\"tpm-emulator: probing failed\");\n return -1;\n }\n \n@@ -314,7 +314,7 @@ static int tpm_emulator_stop_tpm(TPMBackend *tb, Error **errp)\n \n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_STOP, &res, 0,\n sizeof(ptm_res), sizeof(res)) < 0) {\n- error_setg_errno(errp, errno, \"tpm-emulator: Could not stop TPM\");\n+ error_setg(errp, \"tpm-emulator: Could not stop TPM\");\n return -1;\n }\n \n@@ -342,8 +342,7 @@ static int tpm_emulator_lock_storage(TPMEmulator *tpm_emu)\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_LOCK_STORAGE, &pls, sizeof(pls.u.req),\n sizeof(pls.u.resp.tpm_result),\n sizeof(pls.u.resp)) < 0) {\n- error_report(\"tpm-emulator: Could not lock storage within 3 seconds: \"\n- \"%s\", strerror(errno));\n+ error_report(\"tpm-emulator: Could not lock storage within 3 seconds\");\n return -1;\n }\n \n@@ -375,8 +374,7 @@ static int tpm_emulator_set_buffer_size(TPMBackend *tb,\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_BUFFERSIZE, &psbs,\n sizeof(psbs.u.req), sizeof(psbs.u.resp.tpm_result),\n sizeof(psbs.u.resp)) < 0) {\n- error_setg_errno(errp, errno,\n- \"tpm-emulator: Could not set buffer size\");\n+ error_setg(errp, \"tpm-emulator: Could not set buffer size\");\n return -1;\n }\n \n@@ -424,7 +422,7 @@ static int tpm_emulator_startup_tpm_resume(TPMBackend *tb, size_t buffersize,\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_INIT, &init, sizeof(init),\n sizeof(init.u.resp.tpm_result),\n sizeof(init)) < 0) {\n- error_setg_errno(errp, errno, \"tpm-emulator: could not send INIT\");\n+ error_setg(errp, \"tpm-emulator: could not send INIT\");\n goto err_exit;\n }\n \n@@ -479,8 +477,7 @@ static bool tpm_emulator_get_tpm_established_flag(TPMBackend *tb)\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_GET_TPMESTABLISHED, &est, 0,\n sizeof(est) /* always returns resp.bit */,\n sizeof(est)) < 0) {\n- error_report(\"tpm-emulator: Could not get the TPM established flag: %s\",\n- strerror(errno));\n+ error_report(\"tpm-emulator: Could not get the TPM established flag\");\n return false;\n }\n trace_tpm_emulator_get_tpm_established_flag(est.u.resp.bit);\n@@ -508,8 +505,7 @@ static int tpm_emulator_reset_tpm_established_flag(TPMBackend *tb,\n &reset_est, sizeof(reset_est),\n sizeof(reset_est.u.resp.tpm_result),\n sizeof(reset_est)) < 0) {\n- error_report(\"tpm-emulator: Could not reset the establishment bit: %s\",\n- strerror(errno));\n+ error_report(\"tpm-emulator: Could not reset the establishment bit\");\n return -1;\n }\n \n@@ -539,8 +535,7 @@ static void tpm_emulator_cancel_cmd(TPMBackend *tb)\n /* FIXME: make the function non-blocking, or it may block a VCPU */\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_CANCEL_TPM_CMD, &res, 0,\n sizeof(ptm_res), sizeof(res)) < 0) {\n- error_report(\"tpm-emulator: Could not cancel command: %s\",\n- strerror(errno));\n+ error_report(\"tpm-emulator: Could not cancel command\");\n } else if (res != 0) {\n error_report(\"tpm-emulator: Failed to cancel TPM: 0x%x\",\n be32_to_cpu(res));\n@@ -601,8 +596,7 @@ static int tpm_emulator_prepare_data_fd(TPMEmulator *tpm_emu)\n \n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_DATAFD, &res, 0,\n sizeof(ptm_res), sizeof(res)) < 0 || res != 0) {\n- error_report(\"tpm-emulator: Failed to send CMD_SET_DATAFD: %s\",\n- strerror(errno));\n+ error_report(\"tpm-emulator: Failed to send CMD_SET_DATAFD\");\n goto err_exit;\n }\n \n@@ -659,8 +653,8 @@ static int tpm_emulator_handle_device_opts(TPMEmulator *tpm_emu, QemuOpts *opts)\n */\n if (tpm_util_test_tpmdev(QIO_CHANNEL_SOCKET(tpm_emu->data_ioc)->fd,\n &tpm_emu->tpm_version)) {\n- error_report(\"'%s' is not emulating TPM device. Error: %s\",\n- tpm_emu->options->chardev, strerror(errno));\n+ error_report(\"'%s' is not emulating TPM device.\",\n+ tpm_emu->options->chardev);\n goto err;\n }\n \n@@ -750,8 +744,7 @@ static int tpm_emulator_get_state_blob(TPMEmulator *tpm_emu,\n /* always returns up to resp.data */\n offsetof(ptm_getstate, u.resp.data),\n offsetof(ptm_getstate, u.resp.data)) < 0) {\n- error_report(\"tpm-emulator: could not get state blob type %d : %s\",\n- type, strerror(errno));\n+ error_report(\"tpm-emulator: could not get state blob type %d\", type);\n return -1;\n }\n \n@@ -853,9 +846,8 @@ static int tpm_emulator_set_state_blob(TPMEmulator *tpm_emu,\n /* write the header only */\n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_STATEBLOB, &pss,\n offsetof(ptm_setstate, u.req.data), 0, 0) < 0) {\n- error_setg_errno(errp, errno,\n- \"tpm-emulator: could not set state blob type %d\",\n- type);\n+ error_setg(errp, \"tpm-emulator: could not set state blob type %d\",\n+ type);\n return -1;\n }\n \n@@ -1037,8 +1029,7 @@ static void tpm_emulator_shutdown(TPMEmulator *tpm_emu)\n \n if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SHUTDOWN, &res, 0,\n sizeof(ptm_res), sizeof(res)) < 0) {\n- error_report(\"tpm-emulator: Could not cleanly shutdown the TPM: %s\",\n- strerror(errno));\n+ error_report(\"tpm-emulator: Could not cleanly shutdown the TPM\");\n } else if (res != 0) {\n error_report(\"tpm-emulator: TPM result for shutdown: 0x%x %s\",\n be32_to_cpu(res), tpm_emulator_strerror(be32_to_cpu(res)));\n", "prefixes": [ "PULL", "v1", "2/3" ] }