Inter-revision diff: cover letter

Comparing v7 (message) to v5 (message)

--- v7
+++ v5
@@ -1,16 +1,23 @@
-The purpose of this new version of the series is to allow building with
-CONFIG_KEXEC=n and CONFIG_KEXEC_FILE=y. This is done by patch 4, which
-is new in v7. The other patches have very little changes, just to fix
-checkpatch warnings, as noted in the changelog.
-
-Note that at this moment the powerpc tree doesn't build with
-CONFIG_KEXEC=n even without this series applied. I posted a separate
-patch fixing that issue:
-
-https://lists.ozlabs.org/pipermail/linuxppc-dev/2016-August/147909.html
-
-This series doesn't depend on that patch, and they don't conflict in
-any way.
+[ Andrew, since this series touches generic code, x86 and powerpc,
+  Michael Ellerman and Dave Young think it should go via your tree. ]
+
+The main differences in this version are (more detailed changelog at
+the end of this email):
+
+- The code which is not specific to loading ELF format kernels were
+  moved from kexec_elf_64.c to machine_kexec_64.c.
+
+- There is a new patch implementing support for receiving a device tree
+  blob from userspace, checking it against a whitelist of allowed nodes
+  and properties and copying it into the device tree for the next kernel.
+  This is the only patch that depends on the "extend kexec_file_load
+  system call" series. Everything else can be upstreamed independently
+  of that series.
+
+- Also, I realised that the patch "Add support for loading ELF kernels
+  with kexec_file_load." was too big, so I moved some changes to other
+  patches to facilitate review. Details of what went where are in the
+  changelog.
 
 Original cover letter:
 
@@ -58,43 +65,6 @@
 This code is based on kexec-tools, but with many modifications to adapt
 it to the kernel environment and facilities. Except the purgatory,
 which only has minimal changes.
-
-Changes for v7:
-- Rebased on top of v4.8-rc4.
-- Patch "powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE
-  instead."
-  - New patch. Fixes build when CONFIG_KEXEC=n and CONFIG_KEXEC_FILE=y.
-- Patch "powerpc: Adapt elf64_apply_relocate_add for kexec_file_load."
-  - Fixed checkpatch warning "else is not generally useful after a break
-    or return".
-  - Fixed checkpatch warnings about line length. (Andrew Morton)
-- Patch "powerpc: Add code to work with device trees in kexec_file_load."
-  - Remove space before tabs in doc comment for setup_new_fdt. (Andrew Morton)
-  - Fixed checkpatch warnings about line length.
-- Patch "powerpc: Add support for loading ELF kernels with kexec_file_load."
-  - Removed duplicate #include <linux/kexec.h>.
-
-Changes for v6:
-- Based directly on top of v4.8-rc1.
-- Patch "powerpc: Adapt elf64_apply_relocate_add for kexec_file_load."
-  - Allow undefined symbols if they are relocations for the TOC in the
-    big endian ABI.
-  - Fixed build error in this patch by adding the ehdr member to elf_info
-    here instead of in the next patch.
-  - Initialize elf_info.ehdr in module_64.c:module_frob_arch_sections.
-- Patch "powerpc: Add code to work with device trees in kexec_file_load."
-  - Changed find_debug_console to look for /chosen instead of receiving
-    its offset as an argument.
-  - setup_new_fdt: no need to find /chosen again after deleting the memory
-    reservation for initrd.
-- Patch "powerpc: Add support for loading ELF kernels with kexec_file_load."
-  - Don't pass the offset to /chosen to find_debug_console.
-- Patch "powerpc: Allow userspace to set device tree properties in kexec_file_load"
-  - Dropped patch.
-- Patch "powerpc: Add purgatory for kexec_file_load implementation."
-  - Make boot/string.S use the DOTSYM macro so that it can be
-    used by the ppc64 big endian purgatory.
-  - Use -mcall-aixdesc to compile the purgatory on big endian ppc64.
 
 Changes for v5:
 - Rebased series on v4.8-rc1 + the extend kexec_file_load series.
@@ -180,8 +150,6 @@
   kexec_file: Allow arch-specific memory walking for kexec_add_buffer
   kexec_file: Change kexec_add_buffer to take kexec_buf as argument.
   kexec_file: Factor out kexec_locate_mem_hole from kexec_add_buffer.
-  powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE
-    instead.
   powerpc: Factor out relocation code from module_64.c to elf_util_64.c.
   powerpc: Generalize elf64_apply_relocate_add.
   powerpc: Adapt elf64_apply_relocate_add for kexec_file_load.
@@ -189,70 +157,54 @@
   powerpc: Implement kexec_file_load.
   powerpc: Add code to work with device trees in kexec_file_load.
   powerpc: Add support for loading ELF kernels with kexec_file_load.
+  powerpc: Allow userspace to set device tree properties in
+    kexec_file_load
   powerpc: Add purgatory for kexec_file_load implementation.
   powerpc: Enable CONFIG_KEXEC_FILE in powerpc server defconfigs.
 
- arch/powerpc/Kconfig                          |  15 +-
- arch/powerpc/Makefile                         |   4 +
- arch/powerpc/boot/string.S                    |  67 ++--
- arch/powerpc/configs/powernv_defconfig        |   2 +
- arch/powerpc/configs/ppc64_defconfig          |   2 +
- arch/powerpc/configs/pseries_defconfig        |   2 +
- arch/powerpc/include/asm/debug.h              |   2 +-
- arch/powerpc/include/asm/elf_util.h           |  92 +++++
- arch/powerpc/include/asm/kexec.h              |  16 +-
- arch/powerpc/include/asm/kexec_elf_64.h       |  10 +
- arch/powerpc/include/asm/machdep.h            |   4 +-
- arch/powerpc/include/asm/module.h             |  14 +-
- arch/powerpc/include/asm/smp.h                |   2 +-
- arch/powerpc/include/asm/systbl.h             |   1 +
- arch/powerpc/include/asm/unistd.h             |   2 +-
- arch/powerpc/include/uapi/asm/unistd.h        |   1 +
- arch/powerpc/kernel/Makefile                  |  11 +-
- arch/powerpc/kernel/elf_util.c                | 476 ++++++++++++++++++++++++++
- arch/powerpc/kernel/elf_util_64.c             | 376 ++++++++++++++++++++
- arch/powerpc/kernel/head_64.S                 |   2 +-
- arch/powerpc/kernel/kexec_elf_64.c            | 282 +++++++++++++++
- arch/powerpc/kernel/machine_kexec_64.c        | 476 ++++++++++++++++++++++++++
- arch/powerpc/kernel/misc_32.S                 |   2 +-
- arch/powerpc/kernel/misc_64.S                 |   6 +-
- arch/powerpc/kernel/module_64.c               | 329 +++---------------
- arch/powerpc/kernel/prom.c                    |   2 +-
- arch/powerpc/kernel/setup_64.c                |   4 +-
- arch/powerpc/kernel/smp.c                     |   6 +-
- arch/powerpc/kernel/traps.c                   |   2 +-
- arch/powerpc/platforms/85xx/corenet_generic.c |   2 +-
- arch/powerpc/platforms/85xx/smp.c             |   8 +-
- arch/powerpc/platforms/cell/spu_base.c        |   2 +-
- arch/powerpc/platforms/powernv/setup.c        |   6 +-
- arch/powerpc/platforms/ps3/setup.c            |   4 +-
- arch/powerpc/platforms/pseries/Makefile       |   2 +-
- arch/powerpc/platforms/pseries/setup.c        |   4 +-
- arch/powerpc/purgatory/.gitignore             |   2 +
- arch/powerpc/purgatory/Makefile               |  46 +++
- arch/powerpc/purgatory/console-ppc64.c        |  38 ++
- arch/powerpc/purgatory/crashdump-ppc64.h      |  42 +++
- arch/powerpc/purgatory/crashdump_backup.c     |  36 ++
- arch/powerpc/purgatory/crtsavres.S            |   5 +
- arch/powerpc/purgatory/hvCall.S               |  27 ++
- arch/powerpc/purgatory/hvCall.h               |   8 +
- arch/powerpc/purgatory/kexec-sha256.h         |  11 +
- arch/powerpc/purgatory/ppc64_asm.h            |  20 ++
- arch/powerpc/purgatory/printf.c               | 164 +++++++++
- arch/powerpc/purgatory/purgatory-ppc64.c      |  41 +++
- arch/powerpc/purgatory/purgatory-ppc64.h      |   6 +
- arch/powerpc/purgatory/purgatory.c            |  62 ++++
- arch/powerpc/purgatory/purgatory.h            |  11 +
- arch/powerpc/purgatory/sha256.c               |   6 +
- arch/powerpc/purgatory/sha256.h               |   1 +
- arch/powerpc/purgatory/string.S               |   2 +
- arch/powerpc/purgatory/v2wrap.S               | 134 ++++++++
- arch/x86/kernel/crash.c                       |  37 +-
- arch/x86/kernel/kexec-bzimage64.c             |  48 +--
- include/linux/kexec.h                         |  36 +-
- kernel/kexec_file.c                           | 141 ++++----
- kernel/kexec_internal.h                       |  16 -
- 60 files changed, 2706 insertions(+), 472 deletions(-)
+ arch/powerpc/Kconfig                      |  13 +
+ arch/powerpc/Makefile                     |   4 +
+ arch/powerpc/configs/powernv_defconfig    |   2 +
+ arch/powerpc/configs/ppc64_defconfig      |   2 +
+ arch/powerpc/configs/pseries_defconfig    |   2 +
+ arch/powerpc/include/asm/elf_util.h       |  92 ++++
+ arch/powerpc/include/asm/kexec.h          |  11 +
+ arch/powerpc/include/asm/kexec_elf_64.h   |  10 +
+ arch/powerpc/include/asm/module.h         |  14 +-
+ arch/powerpc/include/asm/systbl.h         |   1 +
+ arch/powerpc/include/asm/unistd.h         |   2 +-
+ arch/powerpc/include/uapi/asm/unistd.h    |   1 +
+ arch/powerpc/kernel/Makefile              |   7 +
+ arch/powerpc/kernel/elf_util.c            | 476 ++++++++++++++++++++
+ arch/powerpc/kernel/elf_util_64.c         | 374 ++++++++++++++++
+ arch/powerpc/kernel/kexec_elf_64.c        | 291 ++++++++++++
+ arch/powerpc/kernel/machine_kexec_64.c    | 719 ++++++++++++++++++++++++++++++
+ arch/powerpc/kernel/module_64.c           | 328 ++------------
+ arch/powerpc/purgatory/.gitignore         |   2 +
+ arch/powerpc/purgatory/Makefile           |  36 ++
+ arch/powerpc/purgatory/console-ppc64.c    |  38 ++
+ arch/powerpc/purgatory/crashdump-ppc64.h  |  42 ++
+ arch/powerpc/purgatory/crashdump_backup.c |  36 ++
+ arch/powerpc/purgatory/crtsavres.S        |   5 +
+ arch/powerpc/purgatory/hvCall.S           |  27 ++
+ arch/powerpc/purgatory/hvCall.h           |   8 +
+ arch/powerpc/purgatory/kexec-sha256.h     |  11 +
+ arch/powerpc/purgatory/ppc64_asm.h        |  20 +
+ arch/powerpc/purgatory/printf.c           | 164 +++++++
+ arch/powerpc/purgatory/purgatory-ppc64.c  |  41 ++
+ arch/powerpc/purgatory/purgatory-ppc64.h  |   6 +
+ arch/powerpc/purgatory/purgatory.c        |  62 +++
+ arch/powerpc/purgatory/purgatory.h        |  11 +
+ arch/powerpc/purgatory/sha256.c           |   6 +
+ arch/powerpc/purgatory/sha256.h           |   1 +
+ arch/powerpc/purgatory/string.S           |   1 +
+ arch/powerpc/purgatory/v2wrap.S           | 134 ++++++
+ arch/x86/kernel/crash.c                   |  37 +-
+ arch/x86/kernel/kexec-bzimage64.c         |  48 +-
+ include/linux/kexec.h                     |  33 +-
+ kernel/kexec_file.c                       | 141 +++---
+ kernel/kexec_internal.h                   |  16 -
+ 42 files changed, 2869 insertions(+), 406 deletions(-)
  create mode 100644 arch/powerpc/include/asm/elf_util.h
  create mode 100644 arch/powerpc/include/asm/kexec_elf_64.h
  create mode 100644 arch/powerpc/kernel/elf_util.c
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help