Hi all, Once again its been been a while since the last release, and there seem to be more than enough changes to warrant one, so here goes 2.0.2-rc1. I'm not aware of any major issues that would prevent this from becoming 2.0.2. If you know of any, please respond so the appropriate changes can be included. Testing is, as always, very welcome. The release can be downloaded from kernel.org: http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/testing/kexec-tools-2.0.2-rc1.tar.gz http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/testing/ I have also tagged it in git: git://git.kernel.org/pub/scm/linux/kernel/git/horms/kexec-tools.git http://git.kernel.org/?p=linux/kernel/git/horms/kexec-tools.git A summary of the changes since the previous release, kexec-tools 2.0.1, is below. commit 42e90cfcde6ce3d0e9540cfe57485e378900393b Author: Simon Horman <horms at verge.net.au> Date: Mon Jul 5 11:44:19 2010 +0900 kexec-tools 2.0.2-rc1 Signed-off-by: Simon Horman <horms at verge.net.au> commit 26ed909df48ea3db3f7395713a9c68c94d091032 Author: Cliff Wickman <cpw at sgi.com> Date: Thu Jun 17 11:37:06 2010 -0500 kexec: Unusable memory range type On SGI UV (x86_64) kexec grumbles about 'Unusable memory' ranges: Unknown type (%s) while parsing %s. Please " "report this as bug. Using RANGE_RESERVED now. uv44-sys:~ # cat /proc/iomem 00000000-00000fff : System RAM 00001000-00005fff : reserved 00006000-0008efff : System RAM 0008f000-0008ffff : ACPI Non-volatile Storage 00090000-0009ffff : System RAM 00100000-75ffcfff : System RAM 01000000-0139dcaf : Kernel code 0139dcb0-0192c12f : Kernel data 01a28000-01cd7777 : Kernel bss 02000000-09ffffff : Crash kernel 75ffd000-76013fff : Unusable memory 76014000-766a6fff : System RAM 766a7000-766d6fff : Unusable memory ... This patch keeps Unusable memory as another RANGE_RESERVED area, but without the warning message. Diffed against git.kernel.org/pub/scm/linux/kernel/git/horms/kexec-tools.git Signed-off-by: Cliff Wickman <cpw at sgi.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 4b4b2a533e218e287ab4aed25678434ad938309e Author: Cliff Wickman <cpw at sgi.com> Date: Wed Jun 16 08:36:09 2010 -0500 kexec: extend for large cpu count and memory The MAX_MEMORY_RANGES of 64 is too small for a very large NUMA machine. (A 512 processor SGI UV, for example.) And fix a temporary workaround (hack) in load_crashdump_segments() that assumes that 16k is sufficient for the size of the crashdump elf header. This is too small for a machine with a large cpu count. A PT_NOTE is created in the elf header for each cpu. Signed-off-by: Cliff Wickman <cpw at sgi.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 436f1376e1621aeba54d8253244955df4865d5e9 Author: Matt Evans <matt at ozlabs.org> Date: Fri May 14 14:15:09 2010 +1000 kexec-tools: Fix option/argument parsing The argument parsing is currently a bit broken as main()'s getopt_long() knows nothing about either the architecture-specific options or, even more specifically, the architecture-and-loader-specific options. This patch introduces new #defines for all architectures, KEXEC_ALL_OPTIONS and KEXEC_ALL_OPT_STR. These contain all possible options for a given build, and the getopt_long() passes in main() and arch_process_options() will now recognise arch- and loader-specific options; these will not be re-ordered in argv[], there is no confusion over which argv[] entry is the kernel filename, and using '--opt=foo' and '--opt foo' both work. All architectures have command line options (and #define OPT_BLAHs) consolidated into their include/arch/option.h files. x86_64 builds parts of i386/ as well, so now both share a single option.h file (with a symlink). Signed-off-by: Matt Evans <matt at ozlabs.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit b1dcc08ea79ca96256a9ae6ef59e5ea4e217ef1d Author: Mika Westerberg <ext-mika.1.westerberg at nokia.com> Date: Wed May 5 09:58:33 2010 +0300 kexec: implement ARM crashdump support Implement support for loading dump capture kernels for ARM architecture. ARM doesn't need any backup memory regions so only elfcore header is allocated from the top of the reserved memory region. Only zImages are supported. The dump capture kernel needs to be loaded to physical address corresponding to the memory region reserved with 'crashkernel=size at start' kernel command line parameter. Signed-off-by: Mika Westerberg <ext-mika.1.westerberg at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 7429f91acaba453c819cc22b364a5f1339a275fd Author: Mika Westerberg <ext-mika.1.westerberg at nokia.com> Date: Wed May 5 09:58:32 2010 +0300 kexec: introduce phys_to_virt() function This function is used by ELF crashdump code which prepares crash memory headers for the dump capture kernel. Most architecture can use default version which just adds PAGE_OFFSET to the virtual address but some architectures might need some special handling. Signed-off-by: Mika Westerberg <ext-mika.1.westerberg at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 992971824134441065c29f475153a4c142696102 Author: Simon Horman <horms at verge.net.au> Date: Fri May 14 00:25:19 2010 +0900 ppc: Fix gamecube build This fixes the kexec-build on ppc32 when the --game-cube option is supplied to ./configure. It seems to have bit-rotted a little. Cc: Sebastian Andrzej Siewior <sebastian at breakpoint.cc> Cc: Maxim Uvarov <muvarov at gmail.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit e5ebc83034a407bf208578fb99e719886ec74cde Author: Matt Evans <matt at ozlabs.org> Date: Fri May 14 13:07:53 2010 +1000 kexec-tools, ppc64: Fix segfault parsing DR memory property add_dyn_reconf_usable_mem_property() iterates over memory spans in /ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory and intersects these with usablemem_rgns ranges. In doing so it used an unchecked fixed-size array which will overrun on machines with lots of LMBs. This patch removes the fixed-sized arrays from add_dyn_reconf_usable_mem_property() and add_usable_mem_property(), in lieu of malloc/realloc/free. Signed-off-by: Matt Evans <matt at ozlabs.org> Michael Neuling <mikey at neuling.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit 45e8f29639d9f97b74389e5bd28c7a5cccbf3e2a Author: Maxim Uvarov <muvarov at gmail.com> Date: Wed May 12 11:08:49 2010 +0400 powerpc new toolchains fix (crt.S) Linker does not provide some vital functions when building freestanding applications with a new toolchain, so we have to provide our own CRT. p.s. Without the CRT we won't see any build errors (since the purgatory is linked with --no-undefined), but the purgatory code won't work, 'kexec -e' will just hang the board. I added option to configure to keep code buildable for old toolchais. But there should be way to do this automatically. Author: Anton Vorontsov <avorontsov at ru.mvista.com> Signed-off-by: Maxim Uvarov <muvarov at gmail.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 00f6fff403c6bbb3241def8451d17f5f2544b5a9 Author: Maxim Uvarov <muvarov at gmail.com> Date: Wed May 12 11:08:41 2010 +0400 Fix kexec on powerpc32 Signed-off-by: Maxim Uvarov <muvarov at gmail.com> Signed-off-by: Maxim Uvarov <muvarov at gmail.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 51234576b4ed8d4fcaf2ef1bbd625e050c592d15 Author: Matt Evans <matt at ozlabs.org> Date: Thu May 13 17:33:59 2010 +1000 kexec-tools: remove unused code from arch_process_options (arm, cris, ia64, mips, ppc) These architectures don't have any architecture-specific options (note: distinct from loader options, which are more specific), yet their arch_process_options() functions contain getopts_long() calls followed by no argument processing. The code doesn't do anything, so this patch removes it. Signed-off-by: Matt Evans <matt at ozlabs.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit 6662d03f27ad1cf01f0b09b89f22e3e8eb3f097e Author: Simon Horman <horms at verge.net.au> Date: Wed May 5 13:33:21 2010 +1000 build: Don't modify CFLAGS in kexec/arch/mips/Makefile Revert this portion of recent MIPS changes as it actually effects the CFLAGS for all architectures. Moreover I'm somewhat dubious about defaulting to -Werror for any architecture. Signed-off-by: Simon Horman <horms at verge.net.au> commit 46f9ca97337dd48ac1cf663f528a1041b7e2805d Author: Eric Miao <eric.miao at canonical.com> Date: Fri Apr 23 10:36:44 2010 +0800 arm: place initrd to safer place according to zImage length The original fixed address of 0x800000 may be overwritten after the kernel is decompressed. Assume a maximum decompression ratio of 4 and place initrd right after that, just to be safer. Signed-off-by: Eric Miao <eric.miao at canonical.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 65feee9df927bef15f0b1d2f9b285cb924a9f799 Author: Matt Evans <matt at ozlabs.org> Date: Mon May 10 14:39:34 2010 +1000 kexec-tools, ppc64: Fix segfault on parsing of large device trees. ppc64's fs2dt used to use a fixed-size array into which the device tree was parsed. There was no bounds checking, so with a large device tree other heap data ended up getting stomped -- SIGSEGV time. This patch adds a function, 'dt_reserve', to check whether there's enough space left prior to writing data to the array. If not, the array is realloced. Signed-off-by: Matt Evans <matt at ozlabs.org> Ack-by: Michael Neuling <mikey at neuling.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit 64c4e7d1aedec929ba57bd1e89577098f2a63612 Author: Michael Neuling <mikey at neuling.org> Date: Wed May 5 11:48:53 2010 +1000 kexec-tools, ppc64: fix build error on ppc64 6adc05c6e3fdbc8b9f5d915af78ca05d0a09cb17 "some kexec MIPS improvements" broke pp64 as it turned on -Werror for all archs. This fixes the warning and hence ppc64 building. Signed-off-by: Michael Neuling <mikey at neuling.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit d3ab86bd6d8b5203c8b6e079355d5a878db24494 Merge: 2208c30 de5dd4d Author: Simon Horman <horms at verge.net.au> Date: Thu Apr 1 09:10:56 2010 +1100 Merge branch 'ppc32' of git://git.breakpoint.cc/bigeasy/kexec-tools commit de5dd4d4036211b0a8e1839ce87984a074eb18f8 Author: Sebastian Andrzej Siewior <sebastian at breakpoint.cc> Date: Fri Jan 22 18:15:38 2010 +0100 Let SH adn ARM use common uImage probe code The now generic probe function is more complete than the currently used. It seems that ARM's and SH's uImage are always uncompressed so it might be good to check for this. Cc: Paul Mundt <lethal at linux-sh.org> Cc: Marc Andre Tanner <mat at brain-dump.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit 872edb58246b9f310bd99315e5e102ab754fb765 Author: Sebastian Andrzej Siewior <sebastian at breakpoint.cc> Date: Thu Mar 4 18:14:15 2010 +0100 Split Powerpc's uImage code The check and uncompress code could be split and recycled by other arch. Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit 2208c3067904b56855daa8da1e7d96dc7d351fc6 Author: Ameya Palande <ameya.palande at nokia.com> Date: Mon Mar 29 14:52:58 2010 +0300 kexec-tools: Use the build date for package release kexec built from git HEAD shows release date as 13th August 2009, which is not correct. Instead of that use the build date as release date. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 2a105fa6c139186a408e8d52f95fe00b11b1cc4d Author: Ameya Palande <ameya.palande at nokia.com> Date: Fri Mar 19 15:58:52 2010 +0200 kexec-tools: Fix a typo in rpm spec description Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit a7bfce1b279503d5c5e52d6b9f1d3ae6a2cd13ca Author: Ameya Palande <ameya.palande at nokia.com> Date: Fri Mar 19 15:55:04 2010 +0200 kexec-tools: Fix unused return value warning for fread Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 529ad47e356a8e68be9cde771af8e909a784c3fc Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:24 2010 +0200 kexec-tools: Use default rpmbuild definations Since current mechanism for building rpm into custom directory is not working, remove it and switch to system defaults for rpmbuild. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit c17b20d49385404851c0f75f0a666813aa8c6f1f Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:23 2010 +0200 kexec-tools: Add rpm spec file to the dist-clean target This patch adds rpm spec file to the "make dist-clean" target and also removes a wrong comment. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 2ee904a2d12bea835285905f55f0914b170d4c1f Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:22 2010 +0200 kexec-tools: Add kdump and kexec_test to rpm spec Without this patch rpmbuild complains about unpackaged kdump and kexec_test files. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit a131cd090f17fd91cdbd1c490ba59d366f940069 Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:21 2010 +0200 kexec-tools: Add missing include files in dist target Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 1d469cf3f8c24e9441b805c33cd7f068a139274d Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:20 2010 +0200 kexec-tools: Use same source in rpm spec and Makefile.in Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 493b95471163dc842420c5a27200923f1c632552 Author: Ameya Palande <2ameya at gmail.com> Date: Thu Mar 18 22:03:19 2010 +0200 kexec-tools: Fix rpm Version tag Version tag in rpm spec file doesn't allow '-', so use '_' to fix the rpm build. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit e8ccd16e27cc5b111bf13275f69df179f162d6c1 Author: Ameya Palande <ameya.palande at nokia.com> Date: Sat Mar 13 14:39:10 2010 +0200 kexec-tools: Fix unused return value warnings This patch fixes following warning: kexec/firmware_memmap.c: In function ?parse_numeric_sysfs?: kexec/firmware_memmap.c:70: error: ignoring return value of ?fgets?, declared with attribute warn_unused_result kexec/firmware_memmap.c: In function ?parse_string_sysfs?: kexec/firmware_memmap.c:103: error: ignoring return value of ?fgets?, declared with attribute warn_unused_result Difference between v1 and v2: Less indentation. Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 2ff0927be86e92f3026fa4330a068b70e3fa2526 Author: Ameya Palande <ameya.palande at nokia.com> Date: Fri Mar 12 20:19:32 2010 +0200 kexec-tools: Replace obsolate Copyright tag in rpm spec Signed-off-by: Ameya Palande <ameya.palande at nokia.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 05348d6ff899706087c667d276066ac11aebf6bc Author: Eric W. Biederman <ebiederm at xmission.com> Date: Thu Mar 11 00:22:07 2010 -0800 x86: Fix biarch crashdump setup. Generate the correct crashdump header for x86_64 kernels when a 32bit kernel is used. Signed-off-by: Eric W. Biederman <ebiederm at aristanetworks.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit a2d9b444eb54029513ad2300466b3cf55dbcd9b5 Author: Eric W. Biederman <ebiederm at xmission.com> Date: Thu Mar 11 00:21:33 2010 -0800 kexec: Figure out our native architecture before load This moves the computing of our native archtecture earlier so that load can use it, as arch/i386/crashdump-x86.c has been trying to. Signed-off-by: Eric W. Biederman <ebiederm at aristanetworks.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit c9d224fba0a8997d6008352f0be32aaaf4524fa1 Author: Eric W. Biederman <ebiederm at xmission.com> Date: Thu Mar 11 00:20:48 2010 -0800 Refix concat_cmdline When removing the potential leak the logic was flipped which mean we never reached the case for handling when both parameters were set. Signed-off-by: Eric W. Biederman <ebiederm at aristanetworks.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 6adc05c6e3fdbc8b9f5d915af78ca05d0a09cb17 Author: Maxim Uvarov <muvarov at gmail.com> Date: Wed Mar 3 14:05:53 2010 +0300 some kexec MIPS improvements - using simple mips* ) in configure.ac to make it compilable on mips2 and mips64 - remove kexec/arch/mips/mips-setup-simple.S which prepares cmdline for new kernel, it is better to move this work to kernel code. BTW this code was compilable only on o32 because of t4 is not defined on 64-64 or n32 MIPS ABIs. - simple put cmdline as string, kernel code should catch cmdline like this int board_kexec_prepare(struct kimage *image) { int i; char *bootloader = "kexec"; board_boot_desc_ptr->argc = 0; for(i=0;i<image->nr_segments;i++) { printk("segment %d if (!strncmp(bootloader, (char*)image->segment[i].buf, strlen(bootloader))) { /* * convert command line string to array * of parameters (as bootloader does). */ int argc = 0, offt; char *str = (char *)image->segment[i].buf; char *ptr = strchr(str, ' '); while (ptr && (ARGV_MAX_ARGS > argc)) { *ptr = '\0'; if (ptr[1] != ' ') { offt = (int)(ptr - str + 1); boot_desc_ptr->argv[argc] = image->segment[i].mem + offt; argc++; } ptr = strchr(ptr + 1, ' '); } boot_desc_ptr->argc = argc; break; } } Keep it as string make code simple and more readable. - add crashdump support - do not redefine syscalls numbers if they defined in system remove fixups for /proc/iomem. If your board provides wrong /proc/iomem please fix kernel, or at least you local version of kexec. No need to support it in main line. At least add option --fake-iomem - some minor fixes Signed-off-by: Maxim Uvarov <muvarov at gmail.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 66a33d1e1625e136d458f964e9679e606ce9a409 Author: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Date: Tue Jan 19 17:37:44 2010 +0100 powerpc32: add support for uImage On PowerPC the uImage usually contains the compressed "final" kernel and not a tiny wrapper which relocates itself und uncomprosses the final kernel to its final position. Instead we uncompress the gzip image and put it the its final position. Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit e176002f2930d3dfef01eb0e997dd86731bb8fed Author: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Date: Thu Oct 16 15:45:39 2008 +0200 powerpc32: add support to fixup the dtb A few device nodes are dynamically determined by the bootloader (MAC address, memory size, ..) and are not part of the device tree. The kernel command line is also read from dtb and usually not part of the device tree. With the libfdt it is now easy to add/replace nodes in the device tree. The user may specify "--reuse-node=/memory/reg" to update the memory/reg node to what ever is now. This requires the kernel to export the device tree via the procfs in /proc/device-tree. Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit 7775fee582c9f4be9d58c436a8c8517e56b2a404 Author: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Date: Thu Oct 16 15:45:39 2008 +0200 powerpc32: pull in libfdt This is v1.2.0 of libfdt from the dtc project which is available at git://www.jdl.com/software/dtc.git The other files - include/page.h - include/types.h - libfdt-wrapper.c - ops.h are part of the glue code which is used the powerpc boot wrapper code is comming from the Linux kernel v2.6.27-rc6 and has been modified a little to fit. Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit e2c28a627007fe372b2286fa366b497be6a94ea5 Author: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Date: Wed Oct 1 10:04:16 2008 +0200 powerpc: dtb and purgatory support for ppc32 Some code dtb scanning & filling has been borrowed from ppc64. The old behavior is still available if compiled with GameCube, other PowerPC platform use the can purgatory and specify a new dtb. Booting a self contained elf image (incl. dtb / without the need for a bd sturct or the like) can be booted. The dtb support is currently optional. That means if the elf image does not contain a dtb file then the user has to supply a complete dtb (including mem size, command line, bus freq., mac addr, ...) Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit 3d06b10be52b2a5ddcd4328bc2da11c3cc25f809 Author: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Date: Tue Oct 21 21:35:16 2008 +0200 slurpfile: use lseek() on character nodes instead of fstat() for file size fstat() is used to determine the filesize before read() and it requires a filesystem. That means that it can not be used on character nodes. This makes it impossible to obtains the kernel from a char node like mtd or more likely ubi. We can't use this in every case because files in /proc don't support lseek(). This is required by the powerpc part to read some device-tree entries. Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de> commit 5996651eccbffb7c195c2911f37fda2f2258e48d Author: Chandru <chandru at in.ibm.com> Date: Tue Mar 2 16:09:49 2010 +0530 kexec/kdump: RMO region does not exist in drconf memory The RMO region can only exist in '/memory at 0' node in the device tree. While adding support for '/ibm,dynamic-reconfiguration-memory' in kexec-tools, I incorrectly extended the code of '/memory@' nodes to drconf memory with the assumption that what applies to '/memory@' nodes would also apply to drconf memory. This is incorrect and hence removing the code from kexec-tools now. With this code in place, kexec on kexec fails. The first kexec works because '/memory at 0' node is read after drconf memory and that correctly sets rmo_base and rmo_top from '/memory at 0' node. While in the kexec'ed kernel, '/ibm,dynamic-reconfiguration-memory' is read after '/memory at xxx' nodes and this incorrectly sets both rmo_base and rmo_top from drconf memory. Sorry for introducing this bug. Signed-off-by: Chandru Siddalingappa <chandru at linux.vnet.ibm.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 0e669a27ec55d2baaf47fdab87da08ed189b5ac6 Author: Simon Horman <horms at verge.net.au> Date: Thu Feb 18 11:38:09 2010 +1100 x86_64: use correct PAGE_OFFSET This fixes a bug when using gdb with vmcore as explained by Dave Anderson: The kexec/arch/x86_64/crashdump-x86_64.h file contains a stale PAGE_OFFSET value. In 2.6.27 it was changed from 0xffff810000000000UL to 0xffff880000000000UL. This is only a problem when using gdb with the vmlinux/vmcore pair, because gdb relies upon the PT_LOAD segment's p_vaddr values in the ELF header to be correct. Cc: Dave Anderson <anderson at redhat.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 02ad89cdc85606dba57c2bca4f77ff432248d6ac Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:03 2010 +1100 cris: cast trampoline_base # crisv32-axis-linux-gnu-gcc --version crisv32-axis-linux-gnu-gcc (GCC) 3.2.1 Axis release R64/1.64 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # make kexec/arch/cris/kexec-elf-cris.c: In function `elf_cris_load': kexec/arch/cris/kexec-elf-cris.c:134: warning: assignment makes pointer from integer without a cast Signed-off-by: Simon Horman <horms at verge.net.au> commit 2178f71f2e77c78b7bc3d46b91b77454e016898f Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 arm: Initialise initrd_start in zImage_arm_load() Although the following compiler warning is bogus it seems harmless to initialise initrd_start to NULL. # arm-unknown-linux-gnu-gcc --version arm-unknown-linux-gnu-gcc (GCC) 4.1.1 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # make kexec/arch/arm/kexec-zImage-arm.c: In function 'zImage_arm_load': kexec/arch/arm/kexec-zImage-arm.c:135: warning: 'initrd_start' may be used uninitialized in this function Signed-off-by: Simon Horman <horms at verge.net.au> commit c986de289120d449bf4d94c46c676566ccfd4202 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 arm: Include unistd.h for getpagesize() Signed-off-by: Simon Horman <horms at verge.net.au> commit eb5a7cd0117e8d6d31ad8f87af4e6ce9042a3c01 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 sh: netbsd_booter extern qualifier should come first # sh4-unknown-linux-gnu-gcc --version sh4-unknown-linux-gnu-gcc (GCC) 4.1.1 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # make kexec/arch/sh/kexec-netbsd-sh.c:29: warning: 'extern' is not at beginning of declaration Signed-off-by: Simon Horman <horms at verge.net.au> commit 9e60b0fce6e17e6a67f4b2babca1b30b3e72edcf Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 sh: Use size_t for zero_page_size parameter of kexec_sh_setup_zero_page() This avoids comparisons between signed and unsigned integers. Signed-off-by: Simon Horman <horms at verge.net.au> commit 642c3e306d21a189274d8c00e15d635dfcbb2b6b Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Don't discard the const qualifier of proc_iomem() Signed-off-by: Simon Horman <horms at verge.net.au> commit 61ea8541b7ceb1782636bcaf5fab175846569bf9 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 ia64: move_loaded_segments: handle no matching region Apparently this never happens, but the current code seems excessively loose. 1) die if it does happen 2) initialise offset to make gcc happy. # ia64-unknown-linux-gnu-gcc --version ia64-unknown-linux-gnu-gcc (GCC) 3.4.5 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # make kexec/arch/ia64/kexec-elf-ia64.c: In function `move_loaded_segments': kexec/arch/ia64/kexec-elf-ia64.c:102: warning: 'offset' might be used uninitialized in this function Signed-off-by: Simon Horman <horms at verge.net.au> commit ebadff4f150b3309938ec1779ecbd8ede871b7ac Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Cast 64bit pointer to a 64bit int then a 32bit int The two-stage cast is because we really do want a 32bit integer value from a 64bit pointer, and gcc assumes that we're making a mistake if there is just one cast. # powerpc64-unknown-linux-gnu-gcc --version powerpc64-unknown-linux-gnu-gcc (GCC) 4.1.1 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # make kexec/arch/ppc64/kexec-elf-rel-ppc64.c: In function 'machine_apply_elf_rel': kexec/arch/ppc64/kexec-elf-rel-ppc64.c:66: warning: cast from pointer to integer of different size Signed-off-by: Simon Horman <horms at verge.net.au> commit e90a4fef6966eecfc6f6fa2f3a755ac031996db1 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Consistently use signed char buffers throughout Signed-off-by: Simon Horman <horms at verge.net.au> commit 3fb7c2ba7a96ac3a76795632369464acc6c1a776 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Make purgatory a signed char buffer The consumer of the purgatory buffer, elf_rel_build_load() expects a signed char buffer. Signed-off-by: Simon Horman <horms at verge.net.au> commit 77ee5cf2143417ca19c1dd981abcd016579f0cd9 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 x86_64: initialise temp_region in exclude_region() and delete_memmap() Signed-off-by: Simon Horman <horms at verge.net.au> commit 563ee341d950f2fae0ba6608d70c19eb647ff943 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Use C99 initialisers Signed-off-by: Simon Horman <horms at verge.net.au> commit 22b17e2d0c40d870b3cb35f95d1b4b2c7d109216 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Cast when making signed/unsigned comparison in locate_hole() Signed-off-by: Simon Horman <horms at verge.net.au> commit 7433197c7448060b2d95822ed6bee4a09532d418 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 unsigned values are always at least 0 Signed-off-by: Simon Horman <horms at verge.net.au> commit aa54ed4e6ade96441d73b6356eaa8e85d89970b3 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Use casts to avoid ambiguity when comparing off_t and size_t Signed-off-by: Simon Horman <horms at verge.net.au> commit 3d6c264eaa4be13208905867e31320ddc30471ae Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Avoid possible overflows from signed/unsigned comparisons Signed-off-by: Simon Horman <horms at verge.net.au> commit 48f3ad610b7098659064801f8dc9688e8795a42d Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 ppc: memory_range global is only used in conjunction with WITH_GAMECUBE Signed-off-by: Simon Horman <horms at verge.net.au> commit e563dfd8f3a8ef9550722fc93ff1fc204dcb04c8 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Use %llx to format mem_max as it is an unsigned long long Signed-off-by: Simon Horman <horms at verge.net.au> commit ba8aef871c433fa8eb7c2b947b2e8e0a5d7768ba Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Remove some unused variables Signed-off-by: Simon Horman <horms at verge.net.au> commit 1fded084f180fb7b5e0613f03adae7c6e4301130 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 ia64: Remove unused range parameter from get_crash_memory_ranges() Signed-off-by: Simon Horman <horms at verge.net.au> commit 33c4a0b44fa2a3966667ab1d2da775beb1ad55f2 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 ia64: Remove unused info parameter from add_loaded_segments_info() Signed-off-by: Simon Horman <horms at verge.net.au> commit ff3edb39fdcba615ffdb1eba7f1d10c941aca288 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 ia64: Remove unused info parameter from {move,update}_loaded_segments() Signed-off-by: Simon Horman <horms at verge.net.au> commit b6ee55c80b57b493bf738f05ada999e803f90bf6 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 i386: Remove unused kexec_flags parameter from setup_edd_info() Signed-off-by: Simon Horman <horms at verge.net.au> commit b9e4dc83844c2acaee4e342583957c9fcc90d88c Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 sh: Remove unused len parameter from zImage_head32() Signed-off-by: Simon Horman <horms at verge.net.au> commit 4451e6e0873631dfc4052070316b931a6896f350 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 sh: make zImage_head32() static Signed-off-by: Simon Horman <horms at verge.net.au> commit 761747212962f0e60eaa8db3b8cc29ed4c5ab7a2 Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Remove unused parameters from build_mem() and related functions Signed-off-by: Simon Horman <horms at verge.net.au> commit 43836a235786b40b100cc1691da9720aa9c5352d Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 Mark unused parameters Signed-off-by: Simon Horman <horms at verge.net.au> commit c59af3ab34f41f259eb2f019e9f5f9ad3229893f Author: Simon Horman <horms at verge.net.au> Date: Tue Feb 2 14:42:02 2010 +1100 don't leak in concat_cmdline Cc: Eric W. Biederman <ebiederm at xmission.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 8b42c99aa3bc59b877732a82e6db6380e4958b54 Author: Eric W. Biederman <ebiederm at xmission.com> Date: Tue Jan 19 00:05:03 2010 -0800 Fix --reuse-cmdline so it is usable. A colleague of mine implemented kdump and it used --reuse-cmdline with some rather interesting and unexpected results. Update the getopt specification so that --reuse-cmdline does not attempt to take an argument that it will not use. Update the processing of --append so that --reuse-cmdline followed by --append actually appends the parameters specified by --reuse-cmdline. Signed-off-by: Eric W. Biederman <ebiederm at aristanetworks.com> commit 1875419755e36ac49c53c166c033ed5c181287b6 Author: Paul Mundt <lethal at linux-sh.org> Date: Wed Dec 16 16:02:49 2009 +0900 kexec-sh: uImage support. This follows the ARM change, and wires up uImage support on SH, with all of the same caveats. Signed-off-by: Paul Mundt <lethal at linux-sh.org> commit d1faa4cbb9d771daaf624cfd016f5517b21d9dc9 Author: Paul Mundt <lethal at linux-sh.org> Date: Wed Dec 16 15:49:10 2009 +0900 kexec: Bring the uImage definitions in sync with upstream. u-boot has grown support for new image/architecture/OS types, reflect these changes in the image.h header, thereby bringing things back in sync with upstream. Signed-off-by: Paul Mundt <lethal at linux-sh.org> commit ee70425486324b5d0ca2c1c272e24aa3010d4d2a Author: Paul Mundt <lethal at linux-sh.org> Date: Wed Dec 16 15:45:02 2009 +0900 kexec: Move the uImage header to a better place. This is a completely generic header for uImage support and has no place being hidden away in an architecture directory. Move it up to the top-level include so that other architectures can trivially tie in uImage support, too. Signed-off-by: Paul Mundt <lethal at linux-sh.org> commit 0f89d6658e077b043b6481af6a04715bf49472b8 Author: Huang Ying <ying.huang at intel.com> Date: Wed Dec 9 15:04:57 2009 +0800 kexec jump support for x86_64 x86_64 specific support, including crash memory range and purgatory setup. Corresponding kernel support has been merged already. Together with the kexec jump features in Linux kernel, kexec jump can be used for following: - A simple hibernation implementation without ACPI support. You can kexec a hibernating kernel, save the memory image of original system and shutdown the system. When resuming, you restore the memory image of original system via ordinary kexec load then jump back. - Kernel/system debug through making system snapshot. You can make system snapshot with kexec/kdump, jump back, do some thing and make another system snapshot. - Cooperative multi-kernel/system. With kexec jump, you can switch between several kernels/systems quickly without boot process except the first time. This appears like swap a whole kernel/system out/in. - A general method to call program in physical mode (paging turning off). This can be used to invoke BIOS code under Linux. Signed-off-by: Huang Ying <ying.huang at intel.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 523cc35be9ba3cae86b145de5b540c5b7e3bb43f Author: Simon Horman <horms at verge.net.au> Date: Mon Nov 30 16:29:08 2009 +1100 lzma: Move the bulk of kexec-lzma.h into lzma.c There isn't any need for anything in kexec-lzma.h other than a declaration of zlib_decompress_file(). Other being cleaner it also fixes a build problem when lzma support isn't being compiled in. $ make all i686-unknown-linux-gnu-gcc -Wall -Wextra -O2 -fomit-frame-pointer -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -I/home/horms/local/opt/crosstool/i686/gcc-3.4.5-glibc-2.3.6/i686-unknown-linux-gnu/include -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -c -MD -o kexec/kexec.o kexec/kexec.c In file included from kexec/kexec.c:47: kexec/kexec-lzma.h:8:18: lzma.h: No such file or directory kexec/kexec.c: In function `locate_hole': kexec/kexec.c:203: warning: comparison between signed and unsigned It ought to be possible to just provide a stub for zlib_decompress_file() in kexec-lzma.h and not compile lzma.c at all in the case where lzma support isn't being compiled in. However I see no obvious way to do this with the existing build system. So I'd like to deal with that as a separate possible change. Changes as suggested by Eric W. Biederman. Cc: Florian Fainelli <florian at openwrt.org> Cc: Eric W. Biederman <ebiederm at xmission.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 4c2d9b93150d36d15bf75b050ed97cabd9a94774 Author: Florian Fainelli <florian at openwrt.org> Date: Thu Nov 19 00:17:22 2009 +0100 add support for loading lzma compressed kernels This patch allows one to load a lzma compressed kernel using kexec -l. As I wanted the lzma code to be very similar to the existing zlib slurp_decompress I took lzread and associated routines from the cpio lzma support. Tested on my x86 laptop using the following commands: lzma e bzImage bzImage.lzma kexec -l bzImage.lzma Having lzma support is particularly useful on some embedded systems on which we have the kernel already lzma compressed and available on a mtd partition. Signed-off-by: Florian Fainelli <florian at openwrt.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit d61381a70a57a01b87afee90c976675f047d447d Author: Andrea Adami <andrea.adami at gmail.com> Date: Fri Nov 27 21:48:08 2009 +1100 kexec.c: workaround getline and fscanf to make it *libc agnostic. Tested against klibc and dietlibc. Based on a patch by Andrea Adami and Yuri Bushmelev I have: * Cleaned up indentation * Rearranged the logic in get_command_line() * Increased the buffer for reading the command line from 1024 to 2048 bytes as this is now possible on x86 Only compile tested against glibc. Cc: Andrea Adami <andrea.adami at gmail.com> Cc: Yuri Bushmelev <jay4mail at gmail.com> Cc: Bernhard Walle <bernhard at bwalle.de> Signed-off-by: Simon Horman <horms at verge.net.au> commit 5545216da4360d6494cc7ba574e04620a826a332 Author: Simon Horman <horms at verge.net.au> Date: Thu Nov 26 09:44:46 2009 +1100 arm: fix architecture detection There are many variants of arm and it seems to be impractical to add them all to the arches array. Instead just match on the leading "arm" portion of the utsname. I have made this specific to arm for now, as I'm not sure what fallout might occur if it was made more generic. e.g. arch ppc matching utsname ppc64 is a concern. Based on variants of this patch submitted by Andrea Adami and Marc Andre Tanner, and feedback from Magnus Damm. Cc: Andrea Adami <andrea.adami at gmail.com> Cc: Marc Andre Tanner <mat at brain-dump.org> Cc: Magnus Damm <magnus.damm at gmail.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit 90ddba23d1abdd727aabbf1070904ae172ebb273 Author: M. Mohan Kumar <mohan at in.ibm.com> Date: Fri Oct 16 11:56:02 2009 +0530 Write to HVC terminal from purgatory code Current x86/x86-64 kexec-tools print the message "I'm in purgatory" to serial console/VGA while executing the purgatory code. Implement this feature for POWERPC pseries platform by using the H_PUT_TERM_CHAR hypervisor call by printng to hvc console. Includes the changes suggested by Michael Ellerman Signed-off-by: M. Mohan Kumar <mohan at in.ibm.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit aee54c10512b494747b03121fb0b3b1e91f63645 Author: Marc Andre Tanner <mat at brain-dump.org> Date: Fri Nov 20 21:07:42 2009 +0100 kexec-arm: add uImage support uImages are basically just zImages with a special header, we therefore just skip the header and let the normal zImage infrastructure do the actual work. Signed-off-by: Marc Andre Tanner <mat at brain-dump.org> Signed-off-by: Simon Horman <horms at verge.net.au> commit d06ff6009ae59c21b5549896d55445cf47894ee9 Author: Magnus Damm <damm at opensource.se> Date: Wed Nov 18 19:30:20 2009 +0900 add kexec-tools support for armv7l processors Add kexec-tools support for arm processors identifying themselves as armv7l. This includes sh7377 and the omap3 on my beagle board. Signed-off-by: Magnus Damm <damm at opensource.se> Signed-off-by: Simon Horman <horms at verge.net.au> commit 30db33c6cf26d57db28123478daaf3b6a2a51434 Author: Magnus Damm <damm at opensource.se> Date: Wed Nov 18 19:29:21 2009 +0900 add kexec-tools support for armv6l processors Add kexec-tools support for arm processors identifying themselves as armv6l. Tested on a sh7367. Signed-off-by: Magnus Damm <damm at opensource.se> Signed-off-by: Simon Horman <horms at verge.net.au> commit 15302512abb2de7f253494d3ebaae7c68bcdca3c Author: Khalid Aziz <khalid_aziz at hp.com> Date: Wed Sep 9 13:16:41 2009 -0600 Fix a problem caused by autoconf 2.64 which redefined AC_MSG_ERROR autoconf 2.64 redefined AC_MSG_ERROR and now a ";" is required at the end of AC_MSG_ERROR macro invocation in configure.ac. Absence of this ";" causes an "unexpected end of file" message when configure script generated by autoconf is run. This patch adds the ";" in right places. I have verified that configure.ac still works fine after these changes with autoconf 2.63 and 2.61. [horms at verge.net.au: removed trailing whitespace] Signed-off-by: Khalid Aziz <khalid.aziz at hp.com> Signed-off-by: Simon Horman <horms at verge.net.au> commit c38ad602e15e5c7c4204d1a47e2fd1984cf98afb Author: Hannes Reinecke <hare at suse.de> Date: Wed Aug 12 09:41:23 2009 +0200 Increase kernel text size for x86_64 Hi all, I cannot load a x86_64 kernel with kexec on 2.6.31; the error message is: Can't find kernel text map area from kcore Cannot load /boot/vmlinuz Digging through the source I found a mismatch between the assumed kernel text size; kexec has: #define KERNEL_TEXT_SIZE (40UL*1024*1024) but on the kernel side we have: include/asm/page_64_types.h: #define KERNEL_IMAGE_SIZE (512 * 1024 * 1024) And, indeed, changing the definition in kexec-tools to the kernel one fixed the problem. Not sure if this has been reported before, if so please ignore the noise. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare at suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Markus Rex, HRB 16746 (AG N?rnberg) Signed-off-by: Simon Horman <horms at verge.net.au> commit 66bbafc328ddd6aea12418286b1ab9d68232f47c Author: Simon Horman <horms at verge.net.au> Date: Thu Aug 13 10:33:38 2009 +1000 kexec-tools 2.0.1-git Add -git to version so it doesn't look like a release. This is just so when people build code from git it can be identified as such from the version string. Signed-off-by: Simon Horman <horms at verge.net.au>