From nobody Fri Apr 26 17:46:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of seabios.org designates 78.46.105.101 as permitted sender) client-ip=78.46.105.101; envelope-from=seabios-bounces@seabios.org; helo=coreboot.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of seabios.org designates 78.46.105.101 as permitted sender) smtp.mailfrom=seabios-bounces@seabios.org; dmarc=fail(p=none dis=none) header.from=koconnor.net Return-Path: Received: from coreboot.org (coreboot.org [78.46.105.101]) by mx.zohomail.com with SMTPS id 1642090801618994.3518721242747; Thu, 13 Jan 2022 08:20:01 -0800 (PST) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by coreboot.org (Postfix) with ESMTPA id B7AE116E3ECA; Thu, 13 Jan 2022 16:19:57 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by coreboot.org (Postfix) with ESMTP id 510CD16E3EBA for ; Thu, 13 Jan 2022 16:19:43 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) for ; Thu, 13 Jan 2022 08:19:43 -0800 (PST) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by smtp.gmail.com with ESMTPSA id i22sm2218990qko.53.2022.01.13.08.19.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 08:19:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=koconnor.net; s=google; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2AIE9j1WWgOtgxPb+Z1tQGnola2ACd7mW35Vdio1YRs=; b=Dv0Wfb9xjZK8q63lG2W50rn2Htrjz4LkDyaPt8G7vXX7vWUCPoorC57jZkEVHASQNd rLPMotZZ7d3jBsVltp3pYYGVd/ZJAuQu/Bid3+gQKCEymSk+ArEDzYc4gWfkLhVM8nMR VdS+uDh0hlOK/aVPBWpKw9/onmJIlLtoqJe30= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2AIE9j1WWgOtgxPb+Z1tQGnola2ACd7mW35Vdio1YRs=; b=3/2pJ2f6TRj7bMIea9UtMNamISRDtPsd1DT/j1loBhFB3s2CaQLM/WlLY/1kT3TT4e XzVFUFqwwfzcVpoPSgrwBqq1yXmta0kuCX9FydyhphSnBQAeAwMaSvLZ5E7mo94hTRP2 iKzIpzyVAYAVH4HZSHHgzspXLQSFpQelUFACvQ1cUDZznMrB1Mx60GuuJWDdEJ+DgS80 rT6utjHUnOeMCUrmhfzUzR9ha/EFwdtcbTwM5SwqLzPi2ADngO2LM1sMn7EQ5E9x0/p5 s1vSbb1gHyNF+k1+CskQGETYXCwPvLdec+IG9XqEBP9D0rH+OCkkh23FzYbopORwBBN4 s5hQ== X-Gm-Message-State: AOAM532LOxXCd91d/F1pe837zY87qqRXYxCRK34wvaYbp2R/nvG84Jfz h6jvZ8XSGpcq2DZeG8CS/8YAFfyzHFcz2w== X-Google-Smtp-Source: ABdhPJwQULws8ZITx08aYYC6pgItaktkZLyTgYsQRiChEaLWMl1dnrAr7O63/jbXB49gy2pBWMO4CA== X-Received: by 2002:a05:620a:27c4:: with SMTP id i4mr3541771qkp.597.1642090781979; Thu, 13 Jan 2022 08:19:41 -0800 (PST) From: Kevin O'Connor To: seabios@seabios.org Date: Thu, 13 Jan 2022 11:19:37 -0500 Message-Id: <20220113161937.1412377-1-kevin@koconnor.net> MIME-Version: 1.0 X-Spam-Level: ** Message-ID-Hash: HLK3BHP2T3FN6FZ46BIPIK3VD5FOU74Z X-Message-ID-Hash: HLK3BHP2T3FN6FZ46BIPIK3VD5FOU74Z X-MailFrom: kevin@koconnor.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-seabios.seabios.org-0; header-match-seabios.seabios.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.5rc1 Precedence: list Subject: [SeaBIOS] [PATCH] smm: Suppress gcc array-bounds warnings List-Id: SeaBIOS mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable Authentication-Results: coreboot.org; auth=pass smtp.auth=mailman@coreboot.org smtp.mailfrom=seabios-bounces@seabios.org X-Spamd-Bar: / X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1642090802216100001 Content-Type: text/plain; charset="utf-8" Add a hack to suppress spurious gcc array-bounds warning. Signed-off-by: Kevin O'Connor Tested-by: Paul Menzel (gcc (Debian 11.2.0-14) 11.2.0) --- src/fw/smm.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/fw/smm.c b/src/fw/smm.c index d90e43a..a0b50b2 100644 --- a/src/fw/smm.c +++ b/src/fw/smm.c @@ -59,6 +59,14 @@ struct smm_layout { struct smm_state cpu; }; =20 +// Hack to supress some gcc array-bounds warnings +static void +memcpy_nowarn(void *d, const void *s, size_t len) +{ + asm("" : "+r"(d), "+r"(s)); + memcpy(d, s, len); +} + void VISIBLE32FLAT handle_smi(u16 cs) { @@ -85,8 +93,8 @@ handle_smi(u16 cs) if (CONFIG_CALL32_SMM) { // Backup current cpu state for SMM trampolining struct smm_layout *newsmm =3D (void*)BUILD_SMM_ADDR; - memcpy(&newsmm->backup1, &smm->cpu, sizeof(newsmm->backup1)); - memcpy(&newsmm->backup2, &smm->cpu, sizeof(newsmm->backup2)); + memcpy_nowarn(&newsmm->backup1, &smm->cpu, sizeof(newsmm->back= up1)); + memcpy_nowarn(&newsmm->backup2, &smm->cpu, sizeof(newsmm->back= up2)); HaveSmmCall32 =3D 1; } =20 @@ -145,8 +153,8 @@ smm_save_and_copy(void) // save original memory content struct smm_layout *initsmm =3D (void*)BUILD_SMM_INIT_ADDR; struct smm_layout *smm =3D (void*)BUILD_SMM_ADDR; - memcpy(&smm->cpu, &initsmm->cpu, sizeof(smm->cpu)); - memcpy(&smm->codeentry, &initsmm->codeentry, sizeof(smm->codeentry)); + memcpy_nowarn(&smm->cpu, &initsmm->cpu, sizeof(smm->cpu)); + memcpy_nowarn(&smm->codeentry, &initsmm->codeentry, sizeof(smm->codeen= try)); =20 // Setup code entry point. initsmm->codeentry =3D SMI_INSN; @@ -168,8 +176,9 @@ smm_relocate_and_restore(void) /* restore original memory content */ struct smm_layout *initsmm =3D (void*)BUILD_SMM_INIT_ADDR; struct smm_layout *smm =3D (void*)BUILD_SMM_ADDR; - memcpy(&initsmm->cpu, &smm->cpu, sizeof(initsmm->cpu)); - memcpy(&initsmm->codeentry, &smm->codeentry, sizeof(initsmm->codeentry= )); + memcpy_nowarn(&initsmm->cpu, &smm->cpu, sizeof(initsmm->cpu)); + memcpy_nowarn(&initsmm->codeentry, &smm->codeentry + , sizeof(initsmm->codeentry)); =20 // Setup code entry point. smm->codeentry =3D SMI_INSN; --=20 2.31.1 _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org