On 04/10/2014 07:28 PM, Dave Young wrote: >> >> +static void add_e820_map_from_mr(struct x86_linux_param_header *real_mode, >> + struct e820entry *e820, struct memory_range *range, int nr_range) >> +{ >> + int i; >> + >> + for (i = 0; i < nr_range; i++) { >> + e820[i].addr = range[i].start; >> + e820[i].size = range[i].end - range[i].start; > > I see it's same as original code but I still feel it should be end - start + 1; > I can't see how it could possibly be +1. How do you encode range[].end? If it is inclusive it should be end - start - 1, if it is a semiclosed range (the normal thing in computer contexts) then the code above is correct. -hpa