From nobody Sun Sep 28 15:25:44 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1756731287; cv=none; d=zohomail.com; s=zohoarc; b=TWOzuwim9IEHWXEhPonRycXB9mG7lDTj9uvhqHryfjjIiJXFGQDVKPoacnrcVlVnrN+EorOVCcZf0gB6hczEzJe/Bs8xHU6yxdyqPZ/dqFsZgX9+svW6iGUdBOUHKLi66Wkf/qHAOtk77JP/ADawimQWKoCPQzdsc6M2A5rNfLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756731287; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Pd+2JDdfFwuawP7wDOXmAy8XWU5BClWFTFIACcDZ1/g=; b=E8L5/Y21xfI6tk0zIeNeq83RcxRyT/mGjS3y0t9EjIeV6OfDWo64uJku7OqrtGe6bm/vF/acUkMQAElNZhQ1jxKELOMQgivJVLTP0o3BKW9/R2JuNwgZY4opyNQcgxDP1qj4WmQrWVDxgFlvmrdhy7qjeEL8mAsYZ052CljmSpY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756731287295651.160258620381; Mon, 1 Sep 2025 05:54:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut427-0002S2-RP; Mon, 01 Sep 2025 08:53:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut425-0002QA-RT for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:13 -0400 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ut423-0004Jl-FQ for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:13 -0400 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-b042cc39551so132424366b.0 for ; Mon, 01 Sep 2025 05:53:10 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b04241b2e7esm299693366b.43.2025.09.01.05.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:53:05 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 16E695F829; Mon, 01 Sep 2025 13:53:05 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756731189; x=1757335989; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Pd+2JDdfFwuawP7wDOXmAy8XWU5BClWFTFIACcDZ1/g=; b=okt85dMFhDBrNfezzIa+U0iCgSMXVeZM7LDmnZ3me6Asb+CeY75hnFivQbWqd5n4SI 463LoyGtB6gjmDMw00MQlMfcLNI/th7nJga89XyK2IiB84LNLpoMz/8cghOdyUQPR9PU pda0e+8+d+gka/IsJ+zlV+cy80/HUlYhMMycwWfRYt3svclkpGpi6BKKqCG/kidkOW07 XwUtG7nrKTYBsjkHngyEt+f2mKIBkPYsHSzNV0TbirJBkMxDtQVsBvVXfSDldv2JUZkb Oc/yZpQXl6J2ziLti0ZmfffBsZoISgqyo1R9og+MD1SiHWpBKSin3L3xQLWg1fD5oxIY 1qxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756731189; x=1757335989; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pd+2JDdfFwuawP7wDOXmAy8XWU5BClWFTFIACcDZ1/g=; b=QwYU56+a1w+yGALzev/Ukc940vpFk1BVpyeQNLD4+07lp+UYtb5QGxyMQgHfSMg7lj XkjrxVmbkgGx12l1h9HkyYGpfUBY9wRgayjfnUzP65ATnUWNbeNVDIcbEC1bFCunzx7b 3HH+mIiaSFBGgTv/QfqmZtSRyafou0fow8at4f7yG8hU5bX6PNUsCSmJT1+VnGf8vjZb 1bUykelw4kF8Yc4sIswV3SnpUyiAAvJA9YlDaNYaxG1irc0u53A3mpDpMx3a/54iL9Oi k3xiXOZqTEEFJdG5RjhY/gZkY+jSYew8FBRgO6bMpvU3nEu4Wtdn28+sMGT+r2/+0P/d cD9Q== X-Gm-Message-State: AOJu0Yx88i7s80rLAuWO3wE0gw5xSbrOeW0gD3Fy3UmBEfUPmI50b48T Z+25+wCFiqGBYbuSG7m0uW9+jI5qU9Tqjy+Fqbi4aKqBAQxGLrfa4D4e2FzJugqveS4= X-Gm-Gg: ASbGncudXlkATqhElHqLQ391jbx4ma7FMOkb8yMR6Agvi26u/I99aLOhhdxNX00No6A 56PPnAEnVQVa3/UT03OdUVkQV7ygVHYrQQILTuXwT45TJIIOirAv3TqphkDq0sbxlSQgvYyDg3u L/UcrgdXRLG12XMP4d1O1muL6YIn1O80jVBvze16mmo7VDbmh+Jwb1gmXSfBDIVhjK0URU8Nfiw KOOTKfLYq1uvI8YZYC3HlA5hWLlxP7T1t48kmtjBfbbB1bTUJMcPDRnpwKyACm3eRhQFW6HKQ3q 9DcVELBsOmUaaeCBXQvqq9kIBgRcwYJ1afIw6TUmeBH0eFbnXvlYMuV3t+TTBw1f96SdN4yi1Mf 4RPDneZy6MKjtRvOGA7/TRyY= X-Google-Smtp-Source: AGHT+IFR2ofR8BC43gwtMFx0eNeY9up3YTCSQsBXf6ChNjE8mxzM4irzoQwDJPzn9uvfHo+TF7yp4A== X-Received: by 2002:a17:907:72ca:b0:afe:764d:6b19 with SMTP id a640c23a62f3a-b01d8a25c86mr744822966b.2.1756731189267; Mon, 01 Sep 2025 05:53:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 1/4] hw/arm: use g_autofree for filename in arm_load_dtb Date: Mon, 1 Sep 2025 13:53:01 +0100 Message-ID: <20250901125304.1047624-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901125304.1047624-1-alex.bennee@linaro.org> References: <20250901125304.1047624-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:1450:4864:20::632; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x632.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1756731288411116600 The function has quite a number of exit cases so lets try and clean things up with g_autofree. As the fdt hasn't be allocated yet we can return directly from the fail point. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- hw/arm/boot.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index d391cd01bb1..56fd13b9f7c 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -528,20 +528,18 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, Error *err =3D NULL; =20 if (binfo->dtb_filename) { - char *filename; - filename =3D qemu_find_file(QEMU_FILE_TYPE_DTB, binfo->dtb_filenam= e); + g_autofree char *filename =3D qemu_find_file(QEMU_FILE_TYPE_DTB, + binfo->dtb_filename); if (!filename) { fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_file= name); - goto fail; + return -1; } =20 fdt =3D load_device_tree(filename, &size); if (!fdt) { fprintf(stderr, "Couldn't open dtb file %s\n", filename); - g_free(filename); goto fail; } - g_free(filename); } else { fdt =3D binfo->get_dtb(binfo, &size); if (!fdt) { --=20 2.47.2 From nobody Sun Sep 28 15:25:44 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1756731223; cv=none; d=zohomail.com; s=zohoarc; b=ex+6K1uqvsROrduBkyX2rTJeu+8iD4WgAak1ur/x2pNcOMLFTEAgF/O8SffwXeSqnw2UpY+bc+czFzqeCWqvhNEoUczG0S7017UXIXon1s+o8Upv2uUqc/Ow2nPpWaGB0FDU3+S+aEGqMM50SkkyfxuZ5MXb2cz+F8/DsJmExk0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756731223; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BW+pcAYJr7rs8sK+GJ83FOVoqQy2R24okxpayuOukDM=; b=DanDEb5XUbfKAev7q9izsBFy3Ipl8TVC+Jytl/V55Qmu/eAy9jUpA+3RjtfclvitF+2pAyIhzhf5+IAuAS3HYysLibQKeCUa/jdauXzQNHbpG7xPA4u/CbW/XMagQ+J0euDf2xWQXF4cSdvy/6feFZ9AhkvUNfqvnNd65srSBfk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756731223248135.36117253938892; Mon, 1 Sep 2025 05:53:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut429-0002TK-EN; Mon, 01 Sep 2025 08:53:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut426-0002Qn-5p for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:14 -0400 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ut421-0004Ik-AG for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:13 -0400 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-61cbfa1d820so8394861a12.3 for ; Mon, 01 Sep 2025 05:53:08 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b04093c9161sm515809666b.54.2025.09.01.05.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:53:05 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 2D8395F8D7; Mon, 01 Sep 2025 13:53:05 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756731187; x=1757335987; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BW+pcAYJr7rs8sK+GJ83FOVoqQy2R24okxpayuOukDM=; b=uXz3ueEH8grKmRvzf8oB819OxF6JhLXEoZfAiufDSxA7hkTnei6eoDGyjTxnO6DXbA 8+A1JWoLEOb4rjsd5COE1XGw3SHVJEm2xWKzbVBAurEiHgl8tXSwYgprSp35p78nklQZ zVXt5Vein1OUK/i/TG/yReplqNlBcjDBhd+OMsA1k/eKD5PbgugixYlMKDVQSRoSf2fT DQ9iVlMUqtIynpMq+k3yXJasYN6WBwOcnCWr91/Gj/woFXJbEB1o4mMoWZy22upLIKmK /VQLJBsdVHwu3lt9ueE4fYyaAijT78+o+tE9EIjtaF0hpveTqcmiLbALeKof5l5E5EBY UrUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756731187; x=1757335987; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BW+pcAYJr7rs8sK+GJ83FOVoqQy2R24okxpayuOukDM=; b=CDLntT9MuuHUq+K3PbSWYGSTqzBP3DlQDqXA3/s+aeec+3wkxnmSF8VS93nGVmrapV 5PzeVgaOGj3Ju1rvzSWqhI7B68t/nPzvwq3+pxMZ/XXWP5lNwGF/QeeZLM9HCpOLFLCS pW1jm6rxtzMxH2nk2riQxAnPO4LmXC9k58wMM0ofo1hIzoGCosACv09xm5+HLKpNE47i 6spPRVlEDD/2G9Ezt00EBICjonY6T7efRhsKUL4mwTktUUWVzjC+6rbS2TXznKYNViJE iNZXnEFSQMJr1rlveL81+6FL9eKvi55yIm+DU9dELS90+RoH1rejOr0MbbG10dAyaoKC E3GA== X-Gm-Message-State: AOJu0Yx+AwnzoJUnHVyeQt2EFof80jVRk+FWjRziBD1aW8TipgbbrqI4 jOcPVpN5mkocusq+wRb7JzHRkLsMn34MMHUZDJ5oBpDQpuCCDJi/+HaQ5VvsyrGPM50= X-Gm-Gg: ASbGncvr/KIrQiQ/KhE8XyerrVPOVnDoEBahnAJVLx3RY2ESRCBzy8oguzukGxkBgM3 r8qZkU43z1ouGsS6giAS32uHJO+CcUApd6ds5cn6tfCP9jA30jMby+73SSz3oli7ROGlO5kdeG8 3WZDdkDp1aeiQgbXJ6LTEbuCvnewh+4SHcym8GpPMWYhXT4feSg0oJsR6aGOkL0Ri3bkDVzokTh +rAj8kTxfmaKmGkjpo+YpDv965q/TsjDkBcDHtIeP1baJ1Q3jhstyegoigEIr7vFv5fMbRsMi7s 0Y95DtW9HNW0jU1952w1ECIXrm8FtcQjwm8/V/RoYuN7Pr+JE9AJj8IIBLlBWVqw70aoPDiTiFv 071h2Zpgk/wLkGxmqnhlDrOg8SSAY/YYEcw== X-Google-Smtp-Source: AGHT+IErB9p5Z0ZCWdNwbhoKUaI0nbChocKjfcOqjuNfXkeiherqMi5oWD33sD8hEdJgDaOZVNuPhQ== X-Received: by 2002:a17:907:3c85:b0:af9:5e9a:b6a with SMTP id a640c23a62f3a-b01d9743b83mr685530566b.42.1756731186643; Mon, 01 Sep 2025 05:53:06 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 2/4] hw/arm: use g_autofree for fdt in arm_load_dtb Date: Mon, 1 Sep 2025 13:53:02 +0100 Message-ID: <20250901125304.1047624-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901125304.1047624-1-alex.bennee@linaro.org> References: <20250901125304.1047624-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1756731236497124100 With the fdt being protected by g_autofree we can skip the goto fail and bail out straight away. The only thing we must take care of is stealing the pointer in the one case when we do need it to survive. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Manos Pitsidianakis --- hw/arm/boot.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 56fd13b9f7c..749f2d08341 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -519,7 +519,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, hwaddr addr_limit, AddressSpace *as, MachineState *ms, ARMCPU *cpu) { - void *fdt =3D NULL; + g_autofree void *fdt =3D NULL; int size, rc, n =3D 0; uint32_t acells, scells; unsigned int i; @@ -538,13 +538,13 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, fdt =3D load_device_tree(filename, &size); if (!fdt) { fprintf(stderr, "Couldn't open dtb file %s\n", filename); - goto fail; + return -1; } } else { fdt =3D binfo->get_dtb(binfo, &size); if (!fdt) { fprintf(stderr, "Board was unable to create a dtb blob\n"); - goto fail; + return -1; } } =20 @@ -553,7 +553,6 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, * Whether this constitutes failure is up to the caller to decide, * so just return 0 as size, i.e., no error. */ - g_free(fdt); return 0; } =20 @@ -563,7 +562,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, NULL, &error_fatal); if (acells =3D=3D 0 || scells =3D=3D 0) { fprintf(stderr, "dtb file invalid (#address-cells or #size-cells 0= )\n"); - goto fail; + return -1; } =20 if (scells < 2 && binfo->ram_size >=3D 4 * GiB) { @@ -572,14 +571,14 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, */ fprintf(stderr, "qemu: dtb file not compatible with " "RAM size > 4GB\n"); - goto fail; + return -1; } =20 /* nop all root nodes matching /memory or /memory@unit-address */ node_path =3D qemu_fdt_node_unit_path(fdt, "memory", &err); if (err) { error_report_err(err); - goto fail; + return -1; } while (node_path[n]) { if (g_str_has_prefix(node_path[n], "/memory")) { @@ -611,7 +610,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, if (rc < 0) { fprintf(stderr, "couldn't add /memory@%"PRIx64" node\n", mem_base); - goto fail; + return -1; } =20 mem_base +=3D mem_len; @@ -622,7 +621,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, if (rc < 0) { fprintf(stderr, "couldn't add /memory@%"PRIx64" node\n", binfo->loader_start); - goto fail; + return -1; } } =20 @@ -636,7 +635,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, ms->kernel_cmdline); if (rc < 0) { fprintf(stderr, "couldn't set /chosen/bootargs\n"); - goto fail; + return -1; } } =20 @@ -645,7 +644,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, acells, binfo->initrd_start); if (rc < 0) { fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); - goto fail; + return -1; } =20 rc =3D qemu_fdt_setprop_sized_cells(fdt, "/chosen", "linux,initrd-= end", @@ -654,7 +653,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, binfo->initrd_size); if (rc < 0) { fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); - goto fail; + return -1; } } =20 @@ -673,14 +672,10 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, =20 if (fdt !=3D ms->fdt) { g_free(ms->fdt); - ms->fdt =3D fdt; + ms->fdt =3D g_steal_pointer(&fdt); } =20 return size; - -fail: - g_free(fdt); - return -1; } =20 static void do_cpu_reset(void *opaque) --=20 2.47.2 From nobody Sun Sep 28 15:25:44 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1756731287; cv=none; d=zohomail.com; s=zohoarc; b=I7SD/D88BuDbYGE/cpnTD9OrguclDQVLI6vfEwywjLvjYRLLOE0lvnkIfC0Fn1Ll6iD0bdlMj+jUvCveH1zMvZuchxZs8b+vCtqqA6Zfga9MSmF2PMchXCXOZ+O6GjomsUI3qqbUOXvuEGXUVIRhn3zM66207sO23RVNAYggjfo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756731287; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3i2Eag+k7j9y13dUOQK5hZi+NdV8CGfRchfnzsO2Kps=; b=mK8buLLjCcgU1L2DTKGaETVIL4/JRPgDPHIF3ykD8NkflLazQujzVY/1Fv1Ph8uyYX+XoDom3rDvqpRvijKdm2RngEJInE0f2AIUUpZ/hRergbB3cxqP58kMs7otI/+jJqasOxK1WUEpfLWVRXvobWnxVlPeRMm9n06h32EzHic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756731287284459.0589308694887; Mon, 1 Sep 2025 05:54:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut42L-0002WR-Jr; Mon, 01 Sep 2025 08:53:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut42B-0002Ud-H0 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:19 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ut422-0004JE-Au for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:19 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b042eb09948so142114766b.3 for ; Mon, 01 Sep 2025 05:53:09 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b00bab3ef2esm609931666b.11.2025.09.01.05.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:53:05 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 4484B5F8D8; Mon, 01 Sep 2025 13:53:05 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756731188; x=1757335988; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3i2Eag+k7j9y13dUOQK5hZi+NdV8CGfRchfnzsO2Kps=; b=Lb/Ukn2fWDTRdiHjxnglpcCuSX3RLALdZ0fNBUAfCf2q40xaWQ6DtPPRyK+zrkegdt PEvgnFPpt7gL1a3H59TkGSQDYs+7jmtxfateHR6moPD0nOr4R9zu1GEK22GpEStHaV4x i5zx3Q/oknH1CkE5kkxqPoozKAHxAMRCltzYYF3eW4M/V/2MdTqVGwc0pnz1zR9FoImF kwTobB2FwfN//5uwIiCryE+xULcVvmscXrTjmswHfGwFuiIU0qX9Dmvjwo3DM1VrWdKp /LFciXwT27U1FOg/yA3KrhjplRUh6/ait1OjPdrbju3fTrFd705sPmEIIEf5ngbRIbPh O8uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756731188; x=1757335988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3i2Eag+k7j9y13dUOQK5hZi+NdV8CGfRchfnzsO2Kps=; b=AVf1gRsqAAzyuoUCc2Fxd+Gmapq9vit6mhibiVCeTfjCuO6kcq+LX0hMXVnkQnMA3v sTP2t39URBlSNkCfN4s+5mZIemGNhWK/V3fID1p+pUaMJXYi90a2MWf/i5j8dFvrKgoE Kw4bQ9hopPEe95e4T0aey59soQFoJUo2IF6LnBL8EELDJy7j3D1XqCHcfe48tnNis7u7 qB5iGZEytnvKt9uWzqrIp0mrVo3shTjApLj+6ABDzlYhXBKPLyrK15h9d64kK6g01/rC iUSzBnaR64KtMnGol+hy/9N8N/h84cDZDu6uHUFKvEuWw37crUVnopC22n8mxEYO5Sjn Zw0w== X-Gm-Message-State: AOJu0Yy/IRcLzzPCg9jGVOfNSqEU/CaPiG9hbu7FJrfWXAiboi4MosBI 1s8yb4J50HEz7P2yZ2Suh8Zd6C4eVwADO3EnaYDYsc4/bJbMNgKGZmsKrrMoD0G5784= X-Gm-Gg: ASbGncsnIdDymlcR7CNJV7UkpTEoXijIKuKxYFj6xbL3z07Ofb2Uf9DepV9/5u+/fvO gWZX3mKd+hEv/7IXNfMsb1QqIQ0S/fOKVilyG6XAZQvcCfOK3PVVkIbBstsPWnsExds3QpDA1GM 8DNKYjYog+ZwJ54dY3zcLYFxyElR5QUvnIOCbsT94rhRuLZNpMSEXee+UMNlNJIQwqjwf2rG1fh l2iVzPDc/kIZ4/2G+nhnbZj1xR6m5SdcnGQB4uO5o/gqK/OvPI/FL0wLoH83VnnBRD9viDd4WyM ymSDWFOmIwzxbuKL/iFoQsw8LpYQbnSqLacsVpr1C3e83FVl+wYmCQfAc2ZEeIxacabwImyC3gP gTydjz1ZgrP2n0ro+WMy78oI= X-Google-Smtp-Source: AGHT+IGqt0ogGqxj+izrq1zJvuiUR1IrPzKUuoY3YElHWhJFmIL22cW4DdFz8ymREILKQFynnZ+VKw== X-Received: by 2002:a17:907:1ca0:b0:b04:286a:2fb8 with SMTP id a640c23a62f3a-b04286a4b87mr417188866b.56.1756731188009; Mon, 01 Sep 2025 05:53:08 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 3/4] hw/arm: use g_auto(GStrv) for node_path in arm_load_dtb Date: Mon, 1 Sep 2025 13:53:03 +0100 Message-ID: <20250901125304.1047624-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901125304.1047624-1-alex.bennee@linaro.org> References: <20250901125304.1047624-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1756731289139124100 This is potentially more of a bike-shed case as node_path will persist until the end of the function. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Manos Pitsidianakis --- hw/arm/boot.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 749f2d08341..f9d0bc7011e 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -520,11 +520,11 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, ARMCPU *cpu) { g_autofree void *fdt =3D NULL; + g_auto(GStrv) node_path =3D NULL; int size, rc, n =3D 0; uint32_t acells, scells; unsigned int i; hwaddr mem_base, mem_len; - char **node_path; Error *err =3D NULL; =20 if (binfo->dtb_filename) { @@ -586,7 +586,6 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, } n++; } - g_strfreev(node_path); =20 /* * We drop all the memory nodes which correspond to empty NUMA nodes --=20 2.47.2 From nobody Sun Sep 28 15:25:44 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1756731288; cv=none; d=zohomail.com; s=zohoarc; b=eQEH+IL8IAx+JD9XhnQXtilcw8weSLBaI0oOXofmPocCXKX7NOcmwy1tmBDsO5dzJl2nrkWVqhOKNU7ud20aq/IxhhuCvRVu3+HaV3BdFhQpnehcR+P2lo2475clZ+j/MDgXp1kmp8yVDvtDyQQdsuYI9ZiqZyO3LmjdFYgQpkY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756731288; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nE5XbQX1l3HPdpz27sy7iDEM+Ja0XPXUjoIOVCTCuVA=; b=I7464+iRbB//qsvKl4RYDJ2ZK4YjJtmQ94sP16gMDuidFz/UxhdTUalZ0L5gUM4Ae/ypPzny0FyBjlMoNsuYE57vL1xKdaXr+Pcvf8hykVQHOLZrwilBeaOHXnuVQawA3zhWqYqSwSSM0m9kXIMoTBnoZ+gAUtoCnKQoCKlyKQM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756731288657537.8189847676051; Mon, 1 Sep 2025 05:54:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut42D-0002VG-AA; Mon, 01 Sep 2025 08:53:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut42B-0002UL-2I for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:19 -0400 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ut424-0004K3-Et for qemu-devel@nongnu.org; Mon, 01 Sep 2025 08:53:18 -0400 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-afcb7ace3baso152874066b.3 for ; Mon, 01 Sep 2025 05:53:11 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b0410138d0asm454389766b.53.2025.09.01.05.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:53:07 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 5CD745F8DC; Mon, 01 Sep 2025 13:53:05 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756731190; x=1757335990; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nE5XbQX1l3HPdpz27sy7iDEM+Ja0XPXUjoIOVCTCuVA=; b=r6jfRZLDcc0bS6s38oN3uo+KVYGDkuq1Q1L63NII0uZyOAQxWe9Mys7XRqk9hDe3nw NH6llzripUhOc9KNbUXnZcZTgom7J6ZzNQoN3MZ6yF/2shlXArdLHWCoZuog3NUBSDe0 5pBb+jNlrX0gNjnSl8JdR9g+pgFX9u6O33L5O2WkxHM/yQMDiVdLxoJPRRuOaNK+UZOl juyzFUHc1gnht0rxr8o4pcAQhH6jpadmz+zCnOhqYJLb+YSZ9Wh00/zDEGoh5xrMtNzu D0oljdGMFZ/DenumAC+awyTmMtWf9Gss6c+ejfL26fhZVdpuoCamGjMYpLCNJMdPAZgt 2Z/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756731190; x=1757335990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nE5XbQX1l3HPdpz27sy7iDEM+Ja0XPXUjoIOVCTCuVA=; b=d/uWXJo9ETwFZxvMG1nZYKIvAJqQmBRdU4Di8G9fyhpFlMDtnW0qjFOqOeLMeu6tjT HcjOY6LhmTi316PipGLwjfJUiER+gAU3TAs9T8FoTrU5dlPz8akpNdO/Zk9oV0L2Vk7j +yEQc4MDIq7uud1jwP5xJwC7ud9iZuCj/Wy/sNzDN4O7u0lnR5e8E9/dTYzEATC5i874 YV3rlZ1YwEyTFT0mDy//nr4a4VXtuBJtpaWaksJcxUrpQ6CWSmTId/QDTZ7aVGT8ucro 27Hi69gmUGsERqaOjcPFLVcHuvNSeQkoj1aVx79oGI05XYgrkk/9Vz+AMt8Fllkyokfq HZCw== X-Gm-Message-State: AOJu0Yy4lY83xuyFRBdXbdVS5QMTWtSh9PbtLFNw3ld3pnfPsgTxwTrP 0h/ILKH5541uYkGus1njTZ5SL8nutjHu1GUyJ6TN5+4itQkiJOCVpFhYMnBNYlGzdzE= X-Gm-Gg: ASbGncuwIBZIL3Mu37i0dXb4p8apRxHkpOZm/bQmvfdcJuKa2bW8hjTdNsZGbi90jLR Aul0hdfqx/KzSgN3W0ifHIdJrMAwFi6knY7p8xqrsNqqKhNME6LoRxUHsdie4CQZHy64SShc2an sDZInSFouenAkjoFSWhunV995E/4hHgQgJf6EBXqh5myS8JSh3iTNgzbqbhGghSjT8BJdWp1YZh 4ihGoWaed8fFwwqh7Z/VtpOUx36yKPk3WDsOonproQcj7m8uH9ewxroGr5SPogBY1MFMeHdhXDe 6ggqDZ/sDoKNIaL2EezmlJc7HP8x1WLKSVrZ8I0Ax5g4mMhm++mTsOfyeOlvsCcBY/Us/HGmIPC iLOSsiXlhKnDunEHWgDVx4jMtD8YNRbWwIA== X-Google-Smtp-Source: AGHT+IH5wY9UM8wYVuQrP/tp8PUqQjdH1VZt++ZEjK7J7m6F+2Ab6Y5bondzq97wT8u9FfoGMIYpPQ== X-Received: by 2002:a17:907:3da9:b0:ae3:f2a0:459f with SMTP id a640c23a62f3a-b01d9793bd1mr835706266b.54.1756731189820; Mon, 01 Sep 2025 05:53:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH 4/4] hw/arm: expose Error * to arm_load_dtb Date: Mon, 1 Sep 2025 13:53:04 +0100 Message-ID: <20250901125304.1047624-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901125304.1047624-1-alex.bennee@linaro.org> References: <20250901125304.1047624-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:1450:4864:20::629; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1756731291249124100 Currently all calls to arm_load_dtb will result in an exit if we fail. By passing Error * we can use &error_fatal and properly set the error report. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Manos Pitsidianakis --- include/hw/arm/boot.h | 3 ++- hw/arm/boot.c | 35 +++++++++++++++-------------------- hw/arm/virt.c | 6 +++--- 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/include/hw/arm/boot.h b/include/hw/arm/boot.h index a2e22bda8a5..fdb99c0c1ee 100644 --- a/include/hw/arm/boot.h +++ b/include/hw/arm/boot.h @@ -164,6 +164,7 @@ AddressSpace *arm_boot_address_space(ARMCPU *cpu, * @addr_limit: upper limit of the available memory area at @addr * @as: address space to load image to * @cpu: ARM CPU object + * @errp: Error object, often &error_fatal * * Load a device tree supplied by the machine or by the user with the * '-dtb' command line option, and put it at offset @addr in target @@ -181,7 +182,7 @@ AddressSpace *arm_boot_address_space(ARMCPU *cpu, */ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo, hwaddr addr_limit, AddressSpace *as, MachineState *ms, - ARMCPU *cpu); + ARMCPU *cpu, Error **errp); =20 /* Write a secure board setup routine with a dummy handler for SMCs */ void arm_write_secure_board_setup_dummy_smc(ARMCPU *cpu, diff --git a/hw/arm/boot.c b/hw/arm/boot.c index f9d0bc7011e..d28ae8b86ab 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -517,7 +517,7 @@ static void fdt_add_psci_node(void *fdt, ARMCPU *armcpu) =20 int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo, hwaddr addr_limit, AddressSpace *as, MachineState *ms, - ARMCPU *cpu) + ARMCPU *cpu, Error **errp) { g_autofree void *fdt =3D NULL; g_auto(GStrv) node_path =3D NULL; @@ -525,25 +525,24 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, uint32_t acells, scells; unsigned int i; hwaddr mem_base, mem_len; - Error *err =3D NULL; =20 if (binfo->dtb_filename) { g_autofree char *filename =3D qemu_find_file(QEMU_FILE_TYPE_DTB, binfo->dtb_filename); if (!filename) { - fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_file= name); + error_setg(errp, "Couldn't open dtb file %s", binfo->dtb_filen= ame); return -1; } =20 fdt =3D load_device_tree(filename, &size); if (!fdt) { - fprintf(stderr, "Couldn't open dtb file %s\n", filename); + error_setg(errp, "Couldn't open dtb file %s", filename); return -1; } } else { fdt =3D binfo->get_dtb(binfo, &size); if (!fdt) { - fprintf(stderr, "Board was unable to create a dtb blob\n"); + error_setg(errp, "Board was unable to create a dtb blob"); return -1; } } @@ -561,7 +560,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, scells =3D qemu_fdt_getprop_cell(fdt, "/", "#size-cells", NULL, &error_fatal); if (acells =3D=3D 0 || scells =3D=3D 0) { - fprintf(stderr, "dtb file invalid (#address-cells or #size-cells 0= )\n"); + error_setg(errp, "dtb file invalid (#address-cells or #size-cells = 0)"); return -1; } =20 @@ -569,15 +568,13 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, /* This is user error so deserves a friendlier error message * than the failure of setprop_sized_cells would provide */ - fprintf(stderr, "qemu: dtb file not compatible with " - "RAM size > 4GB\n"); + error_setg(errp, "qemu: dtb file not compatible with RAM size > 4G= B"); return -1; } =20 /* nop all root nodes matching /memory or /memory@unit-address */ - node_path =3D qemu_fdt_node_unit_path(fdt, "memory", &err); - if (err) { - error_report_err(err); + node_path =3D qemu_fdt_node_unit_path(fdt, "memory", errp); + if (!node_path) { return -1; } while (node_path[n]) { @@ -607,7 +604,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, rc =3D fdt_add_memory_node(fdt, acells, mem_base, scells, mem_len, i); if (rc < 0) { - fprintf(stderr, "couldn't add /memory@%"PRIx64" node\n", + error_setg(errp, "couldn't add /memory@%"PRIx64" node", mem_base); return -1; } @@ -618,7 +615,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, rc =3D fdt_add_memory_node(fdt, acells, binfo->loader_start, scells, binfo->ram_size, -1); if (rc < 0) { - fprintf(stderr, "couldn't add /memory@%"PRIx64" node\n", + error_setg(errp, "couldn't add /memory@%"PRIx64" node", binfo->loader_start); return -1; } @@ -633,7 +630,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, rc =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", ms->kernel_cmdline); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_setg(errp, "couldn't set /chosen/bootargs"); return -1; } } @@ -642,7 +639,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, rc =3D qemu_fdt_setprop_sized_cells(fdt, "/chosen", "linux,initrd-= start", acells, binfo->initrd_start); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); + error_setg(errp, "couldn't set /chosen/linux,initrd-start"); return -1; } =20 @@ -651,7 +648,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_inf= o *binfo, binfo->initrd_start + binfo->initrd_size); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); + error_setg(errp, "couldn't set /chosen/linux,initrd-end"); return -1; } } @@ -1321,10 +1318,8 @@ void arm_load_kernel(ARMCPU *cpu, MachineState *ms, = struct arm_boot_info *info) * decided whether to enable PSCI and set the psci-conduit CPU propert= ies. */ if (!info->skip_dtb_autoload && have_dtb(info)) { - if (arm_load_dtb(info->dtb_start, info, info->dtb_limit, - as, ms, cpu) < 0) { - exit(1); - } + arm_load_dtb(info->dtb_start, info, info->dtb_limit, + as, ms, cpu, &error_fatal); } } =20 diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 9326cfc895f..6061e0ddb50 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1803,9 +1803,9 @@ void virt_machine_done(Notifier *notifier, void *data) vms->memmap[VIRT_PLATFORM_BUS].size, vms->irqmap[VIRT_PLATFORM_BUS]); } - if (arm_load_dtb(info->dtb_start, info, info->dtb_limit, as, ms, cpu) = < 0) { - exit(1); - } + + arm_load_dtb(info->dtb_start, info, info->dtb_limit, + as, ms, cpu, &error_fatal); =20 pci_bus_add_fw_cfg_extra_pci_roots(vms->fw_cfg, vms->bus, &error_abort); --=20 2.47.2