From patchwork Sun Feb 10 00:11:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1039316 X-Patchwork-Delegate: agraf@suse.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43xq9V2vfTz9sMr for ; Sun, 10 Feb 2019 11:12:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 0C4C2C2202A; Sun, 10 Feb 2019 00:12:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 23D66C21F41; Sun, 10 Feb 2019 00:12:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 8EA46C21F41; Sun, 10 Feb 2019 00:12:06 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lists.denx.de (Postfix) with ESMTPS id 3447CC21C57 for ; Sun, 10 Feb 2019 00:12:06 +0000 (UTC) Received: from LT02.fritz.box ([84.118.159.3]) by mail.gmx.com (mrgmx101 [212.227.17.174]) with ESMTPSA (Nemesis) id 0LyR1G-1hD1Qh0iHe-015qxH; Sun, 10 Feb 2019 01:12:05 +0100 From: Heinrich Schuchardt To: Alexander Graf Date: Sun, 10 Feb 2019 01:11:58 +0100 Message-Id: <20190210001158.31824-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:W3WK6f12CRa+dH6tvlsAEHVsZm0qp2Myypa2227Enn8atq3VF74 HsYPxibPYHrgcZ1CZrksnNoO7pP1z3xdDEKvkEbDYiJT8LUgOy/e8u5t5EfNrIKApcMZa1k Go5bsNdQhh6570/b8BRBXTuViNpOMD0jsxFDsQpmWTLeXrEhE0+iUTE2phgIvC2Yrc5nHJp vnVgSQow/WjmFLRmEi9Sw== X-UI-Out-Filterresults: notjunk:1; V03:K0:srpT8FmhJ9A=:FjSZNVVbfZpuE0Sak7PB1p LLHdXMMDjvI050aEhT3lKLsPOa9vCumlWOsXFxSJOuQIkidNE+gKGgk43aHDVMaCsX3j/gyTK y9BdD2Bwg95mNempcsdOQS1tldszhj92HTkmdBFOjsTLLrrpRDVZC6Sd1SeYU2aDmR9ovuzht oem3/kxyfOg5/YQMR4Q21xjXxOmb3Jj4609wbQpLiXiyUNio+5dlIHQQC3xUE99tRJAkzH/MV aVNvvIRra5FxWeYcBQgFNIxSuKyI7F/5tSyLuYUPWbl4OCTpAHEV/K6qIdbIdlRCoz7UTnglC UzKDCiyW03wyzNJ0QXaJTKFHo2WSEO16uYVj0g3YxvfTsyenvI2VUEoQSM38tD6orWJ0MKN1F hXAO1cEmbQzk4Dka/ogv3Oa+z8wqnNEwvXU8LmmCgvrMMhTFxzrprzdKwzyodPj1r0hRqckL8 At0xF/B1wFBmg0mCDAJu58yTLOn0TDHgtubkCUT/7ERNm3m9W0NMeuPCVyJg9cf/2leYYISJC UI8ppTkWEPWqqFiAq1e8UP01EilmPPnjIsBZbW+5Lz08piNcGz5/OMFp4sMBrTrDn95mpt6F8 YZEEK+SaYLeZ4F2pjAqJazTSpCVV5qyKeFZLBg1NgucDW3TAS6NAC1mEav40pGOvMuyEm0RPG nkuJUwLt0vKo1DLQN27y0KuoOqUqEtEzIpgj0Yj6aXzJCSUWKKM+39rP2UjfzE/a/NwCr7YRN RcrgrBllZuvK9Bihc9s6nUrS18KIhDXetCLRNsmsiM2+N2VQMukSAAqrNp7X6L9geR2xX3WOy 5DCyEhkOsNjIltCNsuHkLCuM/6Oy4T93lfpFu+M/VYYzxhl6EzUVSvTp32k0+d3B8ptcHW/iD vjwKI3hpeZKMHOt6I1nJplDA/ytHQtl1WJmrH3sYoOGy7R0030jtTjK/Zz1FEt Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] efi_loader: fix EFI entry counting X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" `bootefi selftest` fails on qemu-x86_defconfig if efi_selftest() is not invoked using EFI_CALL(). Likewise we call the entry point of EFI payloads with EFI_CALL(efi_start_image()). entry_count indicates if we are in U-Boot (1) or in EFI payload code (0). As we start in U-Boot code the initial value has to be 1. Signed-off-by: Heinrich Schuchardt --- cmd/bootefi.c | 2 +- lib/efi_loader/efi_boottime.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 9d9ccdd31a..3619a20e64 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -445,7 +445,7 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return CMD_RET_FAILURE; /* Execute the test */ - r = efi_selftest(&image_obj->header, &systab); + r = EFI_CALL(efi_selftest(&image_obj->header, &systab)); bootefi_run_finish(image_obj, loaded_image_info); return r != EFI_SUCCESS; } else diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 0b13c79b76..ed0e926646 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -44,7 +44,8 @@ static bool efi_is_direct_boot = true; static volatile void *efi_gd, *app_gd; #endif -static int entry_count; +/* 1 if inside U-Boot code, 0 if inside EFI payload code */ +static int entry_count = 1; static int nesting_level; /* GUID of the device tree table */ const efi_guid_t efi_guid_fdt = EFI_FDT_GUID;