On Mon, Dec 16, 2013 at 10:00:10AM +0800, Dave Young wrote: > > > - print_efi_memmap(); > > > + if (efi_setup) { > > > + int s; > > > + struct efi_setup_data *data; > > > + > > > + s = sizeof(*data) + nr_efi_runtime_map * sizeof(data->map[0]); > > > + data = early_memremap(efi_setup, s); > > > + if (!data) > > > + return; > > > + print_efi_memmap(data->map, nr_efi_runtime_map, > > > + sizeof(data->map[0])); > > > + early_memunmap(data, s); > > > > Well, if you call print_efi_memmap() in parse_efi_setup() you can save > > yourself that map/unmaping no? > > In parse_efi_setup, I need map twice as well: Well, your v6 has a something completely different: void __init parse_efi_setup(u64 phys_addr) { efi_setup = phys_addr; } There's no mapping at all anymore. So please redo your reply against v6. > Another where what I print in this patch is same position what > non-kexec kernel does, it looks better that print them only if earlier > init is ok. -ENOPARSE. All I'm saying is, if you're going to memremap/memunmap efi_setup, then do it once in efi_setup_init() as you do already and call print_efi_memmap from there - no need to do work twice for no reason. -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. --