Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1715397 > unrolled thread
| Started by | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| First post | 2017-08-18 22:00 +0200 |
| Last post | 2017-08-21 11:40 +0200 |
| Articles | 10 on this page of 30 — 5 participants |
Back to article view | Back to linux.kernel
[GIT PULL 00/14] EFI changes for v4.14 Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[PATCH 03/14] efi/libstub: arm64: force 'hidden' visibility for section markers Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Force 'hidden' visibility for section markers tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 05/14] efi: arm/arm64: Add missing assignment of efi.config_table Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/arm/arm64: Add missing assignment of efi.config_table tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 01/14] efi: arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 06/14] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns tip-bot for Hans de Goede <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 04/14] efi/libstub: arm64: set -fpie when building the EFI stub Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Set -fpie when building the EFI stub tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 09/14] arm: efi: remove pointless dummy .reloc section Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Remove pointless dummy .reloc section tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 07/14] drivers/fbdev: efifb: allow BAR to be moved instead of claiming it Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] drivers/fbdev/efifb: Allow BAR to be moved instead of claiming it tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 11/14] arm: efi: split zImage code and data into separate PE/COFF sections Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Split zImage code and data into separate PE/COFF sections tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 02/14] efi/libstub: arm64: use hidden attribute for struct screen_info reference Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Use hidden attribute for struct screen_info reference tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 12/14] firmware: dcdbas: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/dcdbas: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:40 +0200
[PATCH 13/14] firmware: efi: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/efi: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 14/14] firmware: efi: esrt: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/efi/esrt: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 10/14] arm: efi: replace open coded constants with symbolic ones Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Replace open coded constants with symbolic ones tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 08/14] arm: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Remove forbidden values from the PE/COFF header tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
Re: [GIT PULL 00/14] EFI changes for v4.14 Ingo Molnar <mingo@kernel.org> - 2017-08-21 11:40 +0200
Page 2 of 2 — ← Prev page 1 [2]
| From | tip-bot for Arvind Yadav <tipbot@zytor.com> |
|---|---|
| Date | 2017-08-21 11:40 +0200 |
| Subject | [tip:efi/core] firmware/dcdbas: Constify attribute_group structures |
| Message-ID | <ugRlD-2Dd-3@gated-at.bofh.it> |
| In reply to | #1715413 |
Commit-ID: 73e310769bc29b96f0657c28b7bdab42d90935d8
Gitweb: http://git.kernel.org/tip/73e310769bc29b96f0657c28b7bdab42d90935d8
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
AuthorDate: Fri, 18 Aug 2017 20:49:45 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 21 Aug 2017 09:43:51 +0200
firmware/dcdbas: Constify attribute_group structures
attribute_group are not supposed to change at runtime. All functions
working with attribute_group provided by <linux/sysfs.h> work with
const attribute_group. So mark the non-const structs as const.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Douglas_Warzecha <douglas_warzecha@dell.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-13-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
drivers/firmware/dcdbas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c
index 2fe1a13..c16600f 100644
--- a/drivers/firmware/dcdbas.c
+++ b/drivers/firmware/dcdbas.c
@@ -534,7 +534,7 @@ static struct attribute *dcdbas_dev_attrs[] = {
NULL
};
-static struct attribute_group dcdbas_attr_group = {
+static const struct attribute_group dcdbas_attr_group = {
.attrs = dcdbas_dev_attrs,
.bin_attrs = dcdbas_bin_attrs,
};
[toc] | [prev] | [next] | [standalone]
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2017-08-18 22:00 +0200 |
| Subject | [PATCH 13/14] firmware: efi: constify attribute_group structures. |
| Message-ID | <ufVB1-89n-33@gated-at.bofh.it> |
| In reply to | #1715397 |
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
attribute_group are not supposed to change at runtime. All functions
working with attribute_group provided by <linux/sysfs.h> work with
const attribute_group. So mark the non-const structs as const.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
drivers/firmware/efi/efi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index 045d6d311bde..6519be44387c 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -179,7 +179,7 @@ static umode_t efi_attr_is_visible(struct kobject *kobj,
return attr->mode;
}
-static struct attribute_group efi_subsys_attr_group = {
+static const struct attribute_group efi_subsys_attr_group = {
.attrs = efi_subsys_attrs,
.is_visible = efi_attr_is_visible,
};
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Arvind Yadav <tipbot@zytor.com> |
|---|---|
| Date | 2017-08-21 11:30 +0200 |
| Subject | [tip:efi/core] firmware/efi: Constify attribute_group structures |
| Message-ID | <ugRbX-2zH-3@gated-at.bofh.it> |
| In reply to | #1715414 |
Commit-ID: 3ad6bd7c0a1c49a78d00001cfda3d474c23bc354
Gitweb: http://git.kernel.org/tip/3ad6bd7c0a1c49a78d00001cfda3d474c23bc354
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
AuthorDate: Fri, 18 Aug 2017 20:49:46 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 21 Aug 2017 09:43:51 +0200
firmware/efi: Constify attribute_group structures
attribute_group are not supposed to change at runtime. All functions
working with attribute_group provided by <linux/sysfs.h> work with
const attribute_group. So mark the non-const structs as const.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-14-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
drivers/firmware/efi/efi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index 045d6d3..6519be44 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -179,7 +179,7 @@ static umode_t efi_attr_is_visible(struct kobject *kobj,
return attr->mode;
}
-static struct attribute_group efi_subsys_attr_group = {
+static const struct attribute_group efi_subsys_attr_group = {
.attrs = efi_subsys_attrs,
.is_visible = efi_attr_is_visible,
};
[toc] | [prev] | [next] | [standalone]
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2017-08-18 22:00 +0200 |
| Subject | [PATCH 14/14] firmware: efi: esrt: constify attribute_group structures. |
| Message-ID | <ufVB1-89n-37@gated-at.bofh.it> |
| In reply to | #1715397 |
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
attribute_group are not supposed to change at runtime. All functions
working with attribute_group provided by <linux/sysfs.h> work with
const attribute_group. So mark the non-const structs as const.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
drivers/firmware/efi/esrt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
index 8554d7aec31c..bd7ed3c1148a 100644
--- a/drivers/firmware/efi/esrt.c
+++ b/drivers/firmware/efi/esrt.c
@@ -230,7 +230,7 @@ static umode_t esrt_attr_is_visible(struct kobject *kobj,
return attr->mode;
}
-static struct attribute_group esrt_attr_group = {
+static const struct attribute_group esrt_attr_group = {
.attrs = esrt_attrs,
.is_visible = esrt_attr_is_visible,
};
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Arvind Yadav <tipbot@zytor.com> |
|---|---|
| Date | 2017-08-21 11:30 +0200 |
| Subject | [tip:efi/core] firmware/efi/esrt: Constify attribute_group structures |
| Message-ID | <ugRbY-2zH-25@gated-at.bofh.it> |
| In reply to | #1715415 |
Commit-ID: f1a5b53570001b1bcbf890ac6c4be1db99f8cc28
Gitweb: http://git.kernel.org/tip/f1a5b53570001b1bcbf890ac6c4be1db99f8cc28
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
AuthorDate: Fri, 18 Aug 2017 20:49:47 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 21 Aug 2017 09:43:51 +0200
firmware/efi/esrt: Constify attribute_group structures
attribute_group are not supposed to change at runtime. All functions
working with attribute_group provided by <linux/sysfs.h> work with
const attribute_group. So mark the non-const structs as const.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-15-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
drivers/firmware/efi/esrt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
index 8554d7a..bd7ed3c 100644
--- a/drivers/firmware/efi/esrt.c
+++ b/drivers/firmware/efi/esrt.c
@@ -230,7 +230,7 @@ static umode_t esrt_attr_is_visible(struct kobject *kobj,
return attr->mode;
}
-static struct attribute_group esrt_attr_group = {
+static const struct attribute_group esrt_attr_group = {
.attrs = esrt_attrs,
.is_visible = esrt_attr_is_visible,
};
[toc] | [prev] | [next] | [standalone]
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2017-08-18 22:00 +0200 |
| Subject | [PATCH 10/14] arm: efi: replace open coded constants with symbolic ones |
| Message-ID | <ufVB1-89n-45@gated-at.bofh.it> |
| In reply to | #1715397 |
Replace the various open coded constants in the EFI PE/COFF header with
definitions from pe.h, or expressions based on local symbols.
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
arch/arm/boot/compressed/efi-header.S | 128 ++++++++++++++++++----------------
1 file changed, 67 insertions(+), 61 deletions(-)
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index 309d6198d335..542e1ad432ae 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2015 Linaro Ltd
+ * Copyright (C) 2013-2017 Linaro Ltd
* Authors: Roy Franz <roy.franz@linaro.org>
* Ard Biesheuvel <ard.biesheuvel@linaro.org>
*
@@ -8,6 +8,9 @@
* published by the Free Software Foundation.
*/
+#include <linux/pe.h>
+#include <linux/sizes.h>
+
.macro __nop
#ifdef CONFIG_EFI_STUB
@ This is almost but not quite a NOP, since it does clobber the
@@ -15,7 +18,7 @@
@ PE/COFF expects the magic string "MZ" at offset 0, while the
@ ARM/Linux boot protocol expects an executable instruction
@ there.
- .inst 'M' | ('Z' << 8) | (0x1310 << 16) @ tstne r0, #0x4d000
+ .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
@@ -34,78 +37,81 @@
@ The only 2 fields of the MSDOS header that are used are this
@ PE/COFF offset, and the "MZ" bytes at offset 0x0.
@
- .long pe_header - start @ Offset to the PE header.
+ .long pe_header - start @ Offset to the PE header.
pe_header:
- .ascii "PE\0\0"
+ .long PE_MAGIC
coff_header:
- .short 0x01c2 @ ARM or Thumb
- .short 1 @ nr_sections
- .long 0 @ TimeDateStamp
- .long 0 @ PointerToSymbolTable
- .long 0 @ NumberOfSymbols
- .short section_table - optional_header
- @ SizeOfOptionalHeader
- .short 0x306 @ Characteristics.
- @ IMAGE_FILE_32BIT_MACHINE |
- @ IMAGE_FILE_DEBUG_STRIPPED |
- @ IMAGE_FILE_EXECUTABLE_IMAGE |
- @ IMAGE_FILE_LINE_NUMS_STRIPPED
+ .short IMAGE_FILE_MACHINE_THUMB @ Machine
+ .short section_count @ NumberOfSections
+ .long 0 @ TimeDateStamp
+ .long 0 @ PointerToSymbolTable
+ .long 0 @ NumberOfSymbols
+ .short section_table - optional_header @ SizeOfOptionalHeader
+ .short IMAGE_FILE_32BIT_MACHINE | \
+ IMAGE_FILE_DEBUG_STRIPPED | \
+ IMAGE_FILE_EXECUTABLE_IMAGE | \
+ IMAGE_FILE_LINE_NUMS_STRIPPED @ Characteristics
optional_header:
- .short 0x10b @ PE32 format
- .byte 0x02 @ MajorLinkerVersion
- .byte 0x14 @ MinorLinkerVersion
- .long _end - __efi_start @ SizeOfCode
- .long 0 @ SizeOfInitializedData
- .long 0 @ SizeOfUninitializedData
- .long efi_stub_entry - start @ AddressOfEntryPoint
- .long start_offset @ BaseOfCode
- .long 0 @ data
+ .short PE_OPT_MAGIC_PE32 @ PE32 format
+ .byte 0x02 @ MajorLinkerVersion
+ .byte 0x14 @ MinorLinkerVersion
+ .long _end - __efi_start @ SizeOfCode
+ .long 0 @ SizeOfInitializedData
+ .long 0 @ SizeOfUninitializedData
+ .long efi_stub_entry - start @ AddressOfEntryPoint
+ .long start_offset @ BaseOfCode
+ .long 0 @ BaseOfData
extra_header_fields:
- .long 0 @ ImageBase
- .long 0x200 @ SectionAlignment
- .long 0x200 @ FileAlignment
- .short 0 @ MajorOperatingSystemVersion
- .short 0 @ MinorOperatingSystemVersion
- .short 0 @ MajorImageVersion
- .short 0 @ MinorImageVersion
- .short 0 @ MajorSubsystemVersion
- .short 0 @ MinorSubsystemVersion
- .long 0 @ Win32VersionValue
+ .long 0 @ ImageBase
+ .long SZ_512 @ SectionAlignment
+ .long SZ_512 @ FileAlignment
+ .short 0 @ MajorOsVersion
+ .short 0 @ MinorOsVersion
+ .short 0 @ MajorImageVersion
+ .short 0 @ MinorImageVersion
+ .short 0 @ MajorSubsystemVersion
+ .short 0 @ MinorSubsystemVersion
+ .long 0 @ Win32VersionValue
- .long _end - start @ SizeOfImage
- .long start_offset @ SizeOfHeaders
- .long 0 @ CheckSum
- .short 0xa @ Subsystem (EFI application)
- .short 0 @ DllCharacteristics
- .long 0 @ SizeOfStackReserve
- .long 0 @ SizeOfStackCommit
- .long 0 @ SizeOfHeapReserve
- .long 0 @ SizeOfHeapCommit
- .long 0 @ LoaderFlags
- .long 0x6 @ NumberOfRvaAndSizes
+ .long _end - start @ SizeOfImage
+ .long start_offset @ SizeOfHeaders
+ .long 0 @ CheckSum
+ .short IMAGE_SUBSYSTEM_EFI_APPLICATION @ Subsystem
+ .short 0 @ DllCharacteristics
+ .long 0 @ SizeOfStackReserve
+ .long 0 @ SizeOfStackCommit
+ .long 0 @ SizeOfHeapReserve
+ .long 0 @ SizeOfHeapCommit
+ .long 0 @ LoaderFlags
+ .long (section_table - .) / 8 @ NumberOfRvaAndSizes
- .quad 0 @ ExportTable
- .quad 0 @ ImportTable
- .quad 0 @ ResourceTable
- .quad 0 @ ExceptionTable
- .quad 0 @ CertificationTable
- .quad 0 @ BaseRelocationTable
+ .quad 0 @ ExportTable
+ .quad 0 @ ImportTable
+ .quad 0 @ ResourceTable
+ .quad 0 @ ExceptionTable
+ .quad 0 @ CertificationTable
+ .quad 0 @ BaseRelocationTable
section_table:
.ascii ".text\0\0\0"
- .long _end - __efi_start @ VirtualSize
- .long __efi_start @ VirtualAddress
- .long _edata - __efi_start @ SizeOfRawData
- .long __efi_start @ PointerToRawData
- .long 0 @ PointerToRelocations
- .long 0 @ PointerToLineNumbers
- .short 0 @ NumberOfRelocations
- .short 0 @ NumberOfLineNumbers
- .long 0xe0000020 @ Characteristics
+ .long _end - __efi_start @ VirtualSize
+ .long __efi_start @ VirtualAddress
+ .long _edata - __efi_start @ SizeOfRawData
+ .long __efi_start @ PointerToRawData
+ .long 0 @ PointerToRelocations
+ .long 0 @ PointerToLineNumbers
+ .short 0 @ NumberOfRelocations
+ .short 0 @ NumberOfLineNumbers
+ .long IMAGE_SCN_CNT_CODE | \
+ IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_MEM_WRITE | \
+ IMAGE_SCN_MEM_EXECUTE @ Characteristics
+
+ .set section_count, (. - section_table) / 40
.align 9
__efi_start:
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Ard Biesheuvel <tipbot@zytor.com> |
|---|---|
| Date | 2017-08-21 11:30 +0200 |
| Subject | [tip:efi/core] arm/efi: Replace open coded constants with symbolic ones |
| Message-ID | <ugRbY-2zH-7@gated-at.bofh.it> |
| In reply to | #1715417 |
Commit-ID: 609eaf0748a5b9dccf3810a2b822a0559f33c0b2
Gitweb: http://git.kernel.org/tip/609eaf0748a5b9dccf3810a2b822a0559f33c0b2
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
AuthorDate: Fri, 18 Aug 2017 20:49:43 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 21 Aug 2017 09:43:50 +0200
arm/efi: Replace open coded constants with symbolic ones
Replace the various open coded constants in the EFI PE/COFF header with
definitions from pe.h, or expressions based on local symbols.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-11-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/arm/boot/compressed/efi-header.S | 128 ++++++++++++++++++----------------
1 file changed, 67 insertions(+), 61 deletions(-)
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index 309d619..542e1ad 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2015 Linaro Ltd
+ * Copyright (C) 2013-2017 Linaro Ltd
* Authors: Roy Franz <roy.franz@linaro.org>
* Ard Biesheuvel <ard.biesheuvel@linaro.org>
*
@@ -8,6 +8,9 @@
* published by the Free Software Foundation.
*/
+#include <linux/pe.h>
+#include <linux/sizes.h>
+
.macro __nop
#ifdef CONFIG_EFI_STUB
@ This is almost but not quite a NOP, since it does clobber the
@@ -15,7 +18,7 @@
@ PE/COFF expects the magic string "MZ" at offset 0, while the
@ ARM/Linux boot protocol expects an executable instruction
@ there.
- .inst 'M' | ('Z' << 8) | (0x1310 << 16) @ tstne r0, #0x4d000
+ .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
@@ -34,78 +37,81 @@
@ The only 2 fields of the MSDOS header that are used are this
@ PE/COFF offset, and the "MZ" bytes at offset 0x0.
@
- .long pe_header - start @ Offset to the PE header.
+ .long pe_header - start @ Offset to the PE header.
pe_header:
- .ascii "PE\0\0"
+ .long PE_MAGIC
coff_header:
- .short 0x01c2 @ ARM or Thumb
- .short 1 @ nr_sections
- .long 0 @ TimeDateStamp
- .long 0 @ PointerToSymbolTable
- .long 0 @ NumberOfSymbols
- .short section_table - optional_header
- @ SizeOfOptionalHeader
- .short 0x306 @ Characteristics.
- @ IMAGE_FILE_32BIT_MACHINE |
- @ IMAGE_FILE_DEBUG_STRIPPED |
- @ IMAGE_FILE_EXECUTABLE_IMAGE |
- @ IMAGE_FILE_LINE_NUMS_STRIPPED
+ .short IMAGE_FILE_MACHINE_THUMB @ Machine
+ .short section_count @ NumberOfSections
+ .long 0 @ TimeDateStamp
+ .long 0 @ PointerToSymbolTable
+ .long 0 @ NumberOfSymbols
+ .short section_table - optional_header @ SizeOfOptionalHeader
+ .short IMAGE_FILE_32BIT_MACHINE | \
+ IMAGE_FILE_DEBUG_STRIPPED | \
+ IMAGE_FILE_EXECUTABLE_IMAGE | \
+ IMAGE_FILE_LINE_NUMS_STRIPPED @ Characteristics
optional_header:
- .short 0x10b @ PE32 format
- .byte 0x02 @ MajorLinkerVersion
- .byte 0x14 @ MinorLinkerVersion
- .long _end - __efi_start @ SizeOfCode
- .long 0 @ SizeOfInitializedData
- .long 0 @ SizeOfUninitializedData
- .long efi_stub_entry - start @ AddressOfEntryPoint
- .long start_offset @ BaseOfCode
- .long 0 @ data
+ .short PE_OPT_MAGIC_PE32 @ PE32 format
+ .byte 0x02 @ MajorLinkerVersion
+ .byte 0x14 @ MinorLinkerVersion
+ .long _end - __efi_start @ SizeOfCode
+ .long 0 @ SizeOfInitializedData
+ .long 0 @ SizeOfUninitializedData
+ .long efi_stub_entry - start @ AddressOfEntryPoint
+ .long start_offset @ BaseOfCode
+ .long 0 @ BaseOfData
extra_header_fields:
- .long 0 @ ImageBase
- .long 0x200 @ SectionAlignment
- .long 0x200 @ FileAlignment
- .short 0 @ MajorOperatingSystemVersion
- .short 0 @ MinorOperatingSystemVersion
- .short 0 @ MajorImageVersion
- .short 0 @ MinorImageVersion
- .short 0 @ MajorSubsystemVersion
- .short 0 @ MinorSubsystemVersion
- .long 0 @ Win32VersionValue
+ .long 0 @ ImageBase
+ .long SZ_512 @ SectionAlignment
+ .long SZ_512 @ FileAlignment
+ .short 0 @ MajorOsVersion
+ .short 0 @ MinorOsVersion
+ .short 0 @ MajorImageVersion
+ .short 0 @ MinorImageVersion
+ .short 0 @ MajorSubsystemVersion
+ .short 0 @ MinorSubsystemVersion
+ .long 0 @ Win32VersionValue
- .long _end - start @ SizeOfImage
- .long start_offset @ SizeOfHeaders
- .long 0 @ CheckSum
- .short 0xa @ Subsystem (EFI application)
- .short 0 @ DllCharacteristics
- .long 0 @ SizeOfStackReserve
- .long 0 @ SizeOfStackCommit
- .long 0 @ SizeOfHeapReserve
- .long 0 @ SizeOfHeapCommit
- .long 0 @ LoaderFlags
- .long 0x6 @ NumberOfRvaAndSizes
+ .long _end - start @ SizeOfImage
+ .long start_offset @ SizeOfHeaders
+ .long 0 @ CheckSum
+ .short IMAGE_SUBSYSTEM_EFI_APPLICATION @ Subsystem
+ .short 0 @ DllCharacteristics
+ .long 0 @ SizeOfStackReserve
+ .long 0 @ SizeOfStackCommit
+ .long 0 @ SizeOfHeapReserve
+ .long 0 @ SizeOfHeapCommit
+ .long 0 @ LoaderFlags
+ .long (section_table - .) / 8 @ NumberOfRvaAndSizes
- .quad 0 @ ExportTable
- .quad 0 @ ImportTable
- .quad 0 @ ResourceTable
- .quad 0 @ ExceptionTable
- .quad 0 @ CertificationTable
- .quad 0 @ BaseRelocationTable
+ .quad 0 @ ExportTable
+ .quad 0 @ ImportTable
+ .quad 0 @ ResourceTable
+ .quad 0 @ ExceptionTable
+ .quad 0 @ CertificationTable
+ .quad 0 @ BaseRelocationTable
section_table:
.ascii ".text\0\0\0"
- .long _end - __efi_start @ VirtualSize
- .long __efi_start @ VirtualAddress
- .long _edata - __efi_start @ SizeOfRawData
- .long __efi_start @ PointerToRawData
- .long 0 @ PointerToRelocations
- .long 0 @ PointerToLineNumbers
- .short 0 @ NumberOfRelocations
- .short 0 @ NumberOfLineNumbers
- .long 0xe0000020 @ Characteristics
+ .long _end - __efi_start @ VirtualSize
+ .long __efi_start @ VirtualAddress
+ .long _edata - __efi_start @ SizeOfRawData
+ .long __efi_start @ PointerToRawData
+ .long 0 @ PointerToRelocations
+ .long 0 @ PointerToLineNumbers
+ .short 0 @ NumberOfRelocations
+ .short 0 @ NumberOfLineNumbers
+ .long IMAGE_SCN_CNT_CODE | \
+ IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_MEM_WRITE | \
+ IMAGE_SCN_MEM_EXECUTE @ Characteristics
+
+ .set section_count, (. - section_table) / 40
.align 9
__efi_start:
[toc] | [prev] | [next] | [standalone]
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2017-08-18 22:00 +0200 |
| Subject | [PATCH 08/14] arm: efi: remove forbidden values from the PE/COFF header |
| Message-ID | <ufVB1-89n-49@gated-at.bofh.it> |
| In reply to | #1715397 |
Bring the PE/COFF header in line with the PE/COFF spec, by setting NumberOfSymbols to 0, and removing the section alignment flags. Cc: Matt Fleming <matt@codeblueprint.co.uk> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm/boot/compressed/efi-header.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S index a17ca8d78656..4169b900d9d4 100644 --- a/arch/arm/boot/compressed/efi-header.S +++ b/arch/arm/boot/compressed/efi-header.S @@ -44,7 +44,7 @@ coff_header: .short 2 @ nr_sections .long 0 @ TimeDateStamp .long 0 @ PointerToSymbolTable - .long 1 @ NumberOfSymbols + .long 0 @ NumberOfSymbols .short section_table - optional_header @ SizeOfOptionalHeader .short 0x306 @ Characteristics. @@ -110,7 +110,7 @@ section_table: .long 0 @ PointerToLineNumbers .short 0 @ NumberOfRelocations .short 0 @ NumberOfLineNumbers - .long 0x42100040 @ Characteristics + .long 0x42000040 @ Characteristics .ascii ".text\0\0\0" .long _end - __efi_start @ VirtualSize @@ -121,7 +121,7 @@ section_table: .long 0 @ PointerToLineNumbers .short 0 @ NumberOfRelocations .short 0 @ NumberOfLineNumbers - .long 0xe0500020 @ Characteristics + .long 0xe0000020 @ Characteristics .align 9 __efi_start: -- 2.11.0
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Ard Biesheuvel <tipbot@zytor.com> |
|---|---|
| Date | 2017-08-21 11:30 +0200 |
| Subject | [tip:efi/core] arm/efi: Remove forbidden values from the PE/COFF header |
| Message-ID | <ugRbZ-2zH-47@gated-at.bofh.it> |
| In reply to | #1715419 |
Commit-ID: 4415f9f4a6e5c6a4228098fc8289f21f3dda515c Gitweb: http://git.kernel.org/tip/4415f9f4a6e5c6a4228098fc8289f21f3dda515c Author: Ard Biesheuvel <ard.biesheuvel@linaro.org> AuthorDate: Fri, 18 Aug 2017 20:49:41 +0100 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Mon, 21 Aug 2017 09:43:50 +0200 arm/efi: Remove forbidden values from the PE/COFF header Bring the PE/COFF header in line with the PE/COFF spec, by setting NumberOfSymbols to 0, and removing the section alignment flags. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170818194947.19347-9-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/arm/boot/compressed/efi-header.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S index a17ca8d..4169b90 100644 --- a/arch/arm/boot/compressed/efi-header.S +++ b/arch/arm/boot/compressed/efi-header.S @@ -44,7 +44,7 @@ coff_header: .short 2 @ nr_sections .long 0 @ TimeDateStamp .long 0 @ PointerToSymbolTable - .long 1 @ NumberOfSymbols + .long 0 @ NumberOfSymbols .short section_table - optional_header @ SizeOfOptionalHeader .short 0x306 @ Characteristics. @@ -110,7 +110,7 @@ section_table: .long 0 @ PointerToLineNumbers .short 0 @ NumberOfRelocations .short 0 @ NumberOfLineNumbers - .long 0x42100040 @ Characteristics + .long 0x42000040 @ Characteristics .ascii ".text\0\0\0" .long _end - __efi_start @ VirtualSize @@ -121,7 +121,7 @@ section_table: .long 0 @ PointerToLineNumbers .short 0 @ NumberOfRelocations .short 0 @ NumberOfLineNumbers - .long 0xe0500020 @ Characteristics + .long 0xe0000020 @ Characteristics .align 9 __efi_start:
[toc] | [prev] | [next] | [standalone]
| From | Ingo Molnar <mingo@kernel.org> |
|---|---|
| Date | 2017-08-21 11:40 +0200 |
| Message-ID | <ugRlD-2Dd-7@gated-at.bofh.it> |
| In reply to | #1715397 |
* Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > Hi all, > > These are the changes we have queued up in the EFI tree for v4.14. Please > pull. > > Russell has been cc'ed twice on the patches that touch the linker script > of the ARM decompressor, and has elected not to respond, so I assume he > has no objections. > > The following changes since commit 5771a8c08880cdca3bfb4a3fc6d309d6bba20877: > > Linux v4.13-rc1 (2017-07-15 15:22:10 -0700) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/efi-next > > for you to fetch changes up to f6a3116a8881cff8543e1cf028dea6955831ec30: > > firmware: efi: esrt: constify attribute_group structures. (2017-08-18 19:55:50 +0100) > > ---------------------------------------------------------------- > EFI changes for v4.14: > - don't mark ACPI reclaim regions as NOMAP on ARM > - update the compiler flags for the arm64 version of the EFI stub so that > we can be confident that no absolute relocations are emitted, even when > using clang > - update the EFI framebuffer address if points to a BAR that gets moved > by the PCI resource allocation code > - fallback to other poweroff method if EFI poweroff fails (and returns) > - use separate PE/COFF section headers for the RX and RW parts of the ARM > stub loader so that the firmware can use strict mapping permissions > - constify some struct attribute_group instances > > ---------------------------------------------------------------- > Ard Biesheuvel (10): > efi: arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP > efi/libstub: arm64: use hidden attribute for struct screen_info reference > efi/libstub: arm64: force 'hidden' visibility for section markers > efi/libstub: arm64: set -fpie when building the EFI stub > efi: arm/arm64: Add missing assignment of efi.config_table > drivers/fbdev: efifb: allow BAR to be moved instead of claiming it > arm: efi: remove forbidden values from the PE/COFF header > arm: efi: remove pointless dummy .reloc section > arm: efi: replace open coded constants with symbolic ones > arm: efi: split zImage code and data into separate PE/COFF sections > > Arvind Yadav (3): > firmware: dcdbas: constify attribute_group structures. > firmware: efi: constify attribute_group structures. > firmware: efi: esrt: constify attribute_group structures. > > Hans de Goede (1): > efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns > > arch/arm/boot/compressed/efi-header.S | 160 +++++++++++++++--------------- > arch/arm/boot/compressed/vmlinux.lds.S | 30 ++++-- > arch/arm64/include/asm/efi.h | 3 + > drivers/firmware/dcdbas.c | 2 +- > drivers/firmware/efi/arm-init.c | 8 ++ > drivers/firmware/efi/efi.c | 2 +- > drivers/firmware/efi/esrt.c | 2 +- > drivers/firmware/efi/libstub/Makefile | 2 +- > drivers/firmware/efi/libstub/arm64-stub.c | 10 +- > drivers/firmware/efi/reboot.c | 12 ++- > drivers/video/fbdev/efifb.c | 31 +++--- > 11 files changed, 158 insertions(+), 104 deletions(-) Applied, thanks Ard. I picked them up from email to fix a few minor changelog formatting details. Thanks, Ingo
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | linux.kernel
csiph-web