summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Robinson <pbrobinson@gmail.com>2019-01-10 08:26:34 +0000
committerPeter Robinson <pbrobinson@gmail.com>2019-01-10 08:26:34 +0000
commit5bee75610797256dd99337942c73f793eb6c2dae (patch)
treed611baf9e79b175ce2fdcdfd1dc4f71814d96d20
parent971e3e9031c31ace26e819cee4f3eec1968789c6 (diff)
downloadkernel-5bee75610797256dd99337942c73f793eb6c2dae.tar.gz
kernel-5bee75610797256dd99337942c73f793eb6c2dae.tar.xz
kernel-5bee75610797256dd99337942c73f793eb6c2dae.zip
efi fix for arm-32 systems
-rw-r--r--efi-use-32-bit-alignment-for-efi_guid_t.patch160
-rw-r--r--kernel.spec9
2 files changed, 166 insertions, 3 deletions
diff --git a/efi-use-32-bit-alignment-for-efi_guid_t.patch b/efi-use-32-bit-alignment-for-efi_guid_t.patch
new file mode 100644
index 000000000..df0f93915
--- /dev/null
+++ b/efi-use-32-bit-alignment-for-efi_guid_t.patch
@@ -0,0 +1,160 @@
+From patchwork Tue Jan 8 15:28:29 2019
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+X-Patchwork-Id: 10752253
+Return-Path:
+ <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+ by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8E0D36C5
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Tue, 8 Jan 2019 15:28:45 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7BD2A28D2C
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Tue, 8 Jan 2019 15:28:45 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+ id 6F09E28D35; Tue, 8 Jan 2019 15:28:45 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ pdx-wl-mail.web.codeaurora.org
+X-Spam-Level:
+X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1
+Received: from bombadil.infradead.org (bombadil.infradead.org
+ [198.137.202.133])
+ (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
+ (No client certificate requested)
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 081EB28D2C
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Tue, 8 Jan 2019 15:28:44 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
+ d=lists.infradead.org; s=bombadil.20170209; h=Sender:
+ Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
+ List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To
+ :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:
+ Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:
+ List-Owner; bh=It6OfEYxh0d4VbUmxLKLEQistajE6y6J6dnhwptd+Yc=; b=OYN+3NZBYcWORW
+ A3+a+3TjRGbr4EcnhTKCtRbCsRJIv9ZmIkroqBrqu/fhlGl53DaGUPgodgYyZr8Nc+QLEyCDRjf7G
+ szJn230PA5KaI9mvalbF6BJczICmwqmGw1vIzNt4bqy2XEma9B5xpM9o7mEE1JqVcOCOsdL3V81Uy
+ WH8r/KyUFBS6bnzq54wDChxZ9oU7E8LJWswwvrE3BMZkXsc3Fk0eIG95JjXhEYUuuOwjxzbX9bnSl
+ XuCLyNb4CUE6+1nmylb0iGKY9HwzANbIv85fOHauQ1pOJz4nXK6eLC7VY2PWis93gxEtBv1BvKOBr
+ FWvfq39JK8J2s1TZybsA==;
+Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
+ by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
+ id 1ggtJ3-0006aJ-C0; Tue, 08 Jan 2019 15:28:41 +0000
+Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544])
+ by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
+ id 1ggtJ0-0006Zn-9O
+ for linux-arm-kernel@lists.infradead.org; Tue, 08 Jan 2019 15:28:39 +0000
+Received: by mail-ed1-x544.google.com with SMTP id h15so4621420edb.4
+ for <linux-arm-kernel@lists.infradead.org>;
+ Tue, 08 Jan 2019 07:28:37 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;
+ h=from:to:cc:subject:date:message-id:mime-version
+ :content-transfer-encoding;
+ bh=4K6IrfJGLuqOXV0rX4sdp3u8fI3xqpWy1jqXH78SKIU=;
+ b=HTr1FAIfKdIpzMCSqSHifDPKvfZQ5ijKIqyxAnzCi6g+18bJJRAYJuSaxfi0gCcH4j
+ RBOPMO/39tjOYjMTrkw23K7iszPzbSV44PnfbAewgf89PWnO2woiZ9lFTs0ZsbAjpo0K
+ AoB0adGfIfHS546s3DhS1X4e8Apo0TCdZdKHg=
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
+ :content-transfer-encoding;
+ bh=4K6IrfJGLuqOXV0rX4sdp3u8fI3xqpWy1jqXH78SKIU=;
+ b=IfdzEtrY6xW7rXPPcwFybdd4zAocC2MnIehE5lyYLJ9fR15Sm/s7mTo/Ae+09F50jq
+ RkLod+EyLw34hbu1Pgvcw5P0D0QYDSc8Iwta1iXCN3SVOUFCcSiXgdO8t6lZv5QjAjep
+ Kpm5spsneICMougCjN2d4KLDgKqFU5kXD7zxO+idyWVmc1ICPr8/suwrlEUOkHZkFei/
+ 3o0VZW5VIAkH5hKlHgvglLML6yXtvpU0oOJxAWSYY0biRKpfQ6bq91Vlw6nTubKjXirs
+ 1FJBUAFcuLzErJpLocxlueNTSAUrizXU8SfaYwAT7Us02Y6Ielw8HjOybXWjwPruY8w9
+ hStg==
+X-Gm-Message-State: AJcUukcFBnQIc9BfCL8+i1ZFHmuD97LQNnvVQg9yzfBiDA/WlwTSm4N1
+ CQJugoO2WoirNe+eXaCxJ9vSHA==
+X-Google-Smtp-Source:
+ ALg8bN7lsSRempJZTBNRWcnOR1FM2UfPRGxKEqGRxAcuFv/MbR66pL1icSrLU/ho7bOsU2q96l/QBw==
+X-Received: by 2002:a17:906:1189:: with SMTP id
+ n9-v6mr2216625eja.2.1546961315691;
+ Tue, 08 Jan 2019 07:28:35 -0800 (PST)
+Received: from localhost.localdomain
+ (laubervilliers-657-1-83-120.w92-154.abo.wanadoo.fr. [92.154.90.120])
+ by smtp.gmail.com with ESMTPSA id m44sm65715edm.54.2019.01.08.07.28.34
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
+ Tue, 08 Jan 2019 07:28:34 -0800 (PST)
+From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+To: linux-efi@vger.kernel.org
+Subject: [PATCH] efi: use 32-bit alignment for efi_guid_t
+Date: Tue, 8 Jan 2019 16:28:29 +0100
+Message-Id: <20190108152829.11579-1-ard.biesheuvel@linaro.org>
+X-Mailer: git-send-email 2.20.1
+MIME-Version: 1.0
+X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
+X-CRM114-CacheID: sfid-20190108_072838_332346_F8FF3A9D
+X-CRM114-Status: GOOD ( 11.90 )
+X-BeenThere: linux-arm-kernel@lists.infradead.org
+X-Mailman-Version: 2.1.21
+Precedence: list
+List-Id: <linux-arm-kernel.lists.infradead.org>
+List-Unsubscribe:
+ <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
+ <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
+List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
+List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
+List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
+List-Subscribe:
+ <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
+ <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
+ Heinrich Schuchardt <xypron.glpk@gmx.de>, leif.lindholm@linaro.org,
+ lersek@redhat.com, mingo@kernel.org, linux-arm-kernel@lists.infradead.org
+Content-Type: text/plain; charset="us-ascii"
+Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
+Errors-To:
+ linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The UEFI spec and EDK2 reference implementation both define EFI_GUID as
+struct { u32 a; u16; b; u16 c; u8 d[8]; }; and so the implied alignment
+is 32 bits not 8 bits like our guid_t. In some cases (i.e., on 32-bit ARM),
+this means that firmware services invoked by the kernel may assume that
+efi_guid_t* arguments are 32-bit aligned, and use memory accessors that
+do not tolerate misalignment. So let's set the minimum alignment to 32 bits.
+
+Note that the UEFI spec as well as some comments in the EDK2 code base
+suggest that EFI_GUID should be 64-bit aligned, but this appears to be
+a mistake, given that no code seems to exist that actually enforces that
+or relies on it.
+
+Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>,
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
+---
+ include/linux/efi.h | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/efi.h b/include/linux/efi.h
+index 45ff763fba76..be08518c2553 100644
+--- a/include/linux/efi.h
++++ b/include/linux/efi.h
+@@ -48,7 +48,20 @@ typedef u16 efi_char16_t; /* UNICODE character */
+ typedef u64 efi_physical_addr_t;
+ typedef void *efi_handle_t;
+
+-typedef guid_t efi_guid_t;
++/*
++ * The UEFI spec and EDK2 reference implementation both define EFI_GUID as
++ * struct { u32 a; u16; b; u16 c; u8 d[8]; }; and so the implied alignment
++ * is 32 bits not 8 bits like our guid_t. In some cases (i.e., on 32-bit ARM),
++ * this means that firmware services invoked by the kernel may assume that
++ * efi_guid_t* arguments are 32-bit aligned, and use memory accessors that
++ * do not tolerate misalignment. So let's set the minimum alignment to 32 bits.
++ *
++ * Note that the UEFI spec as well as some comments in the EDK2 code base
++ * suggest that EFI_GUID should be 64-bit aligned, but this appears to be
++ * a mistake, given that no code seems to exist that actually enforces that
++ * or relies on it.
++ */
++typedef guid_t efi_guid_t __aligned(__alignof__(u32));
+
+ #define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
+ GUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
diff --git a/kernel.spec b/kernel.spec
index 0d26f5a80..046fb5b35 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -596,13 +596,16 @@ Patch351: arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
# 500 - Temp fixes/CVEs etc
# rhbz 1431375
-Patch502: input-rmi4-remove-the-need-for-artifical-IRQ.patch
+Patch501: input-rmi4-remove-the-need-for-artifical-IRQ.patch
# nvlink failure
-Patch506: 0001-Drop-that-def_bool.patch
+Patch502: 0001-Drop-that-def_bool.patch
# CVE-2019-3701 rhbz 1663729 1663730
-Patch507: CVE-2019-3701.patch
+Patch503: CVE-2019-3701.patch
+
+# https://patchwork.kernel.org/patch/10752253/
+Patch504: efi-use-32-bit-alignment-for-efi_guid_t.patch
# END OF PATCH DEFINITIONS