This patch modifies the E820 map when specifying the mem kernel command line parameter. That's the behaviour i386 had before the merging work in the current "tip" tree. As Yinghai Lu pointed out in email discussion, e820_update_range() should be used for the updating instead of an own function. Two modifications in e820_update_range() are necessary: 1. Fix a small bug that prevented the partically covered entry from being stripped (size is not updated). 2. Small API extension to be able to specify size == ULLONG_MAX to update the whole map from size to the end. The modification is necessary that kexec can build the ELF core headers only for the used memory. Once the exporting of the real, unmodified memory map is in the kernel, kexec can use the raw map and still reboot with full memory size. The patch is against 2.6.26-rc7-tip and has been successfully tested on i386 and x86-64, with and without "mem" parameter.