Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Leif Lindholm
On 11 September 2013 02:00, Vladimir 'φ-coder/phcoder' Serbinenko wrote: > This fix looks correct but as indicated by us not having discovered this > bug earlier, this is a very unusual case and it's difficult to ensure > that similar bug doesn't pop up in another place or that we don't suffer > a

Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Vladimir 'φ-coder/phcoder' Serbinenko
>for (*r = grub_mm_base; *r; *r = (*r)->next) > -if ((grub_addr_t) ptr > (grub_addr_t) ((*r) + 1) > - && (grub_addr_t) ptr <= (grub_addr_t) ((*r) + 1) + (*r)->size) > - break; > +{ > + grub_addr_t region_start = (grub_addr_t) ((*r) + 1); > + grub_addr_t region_end

Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Leif Lindholm
On 10 September 2013 23:36, Leif Lindholm wrote: > On 10 September 2013 22:46, Seth Goldberg wrote: >> Why would region_end be zero? That sounds like an invalid value. > > Because when a heap region sits at the top of RAM, region base + > region size == 0. (On that specific platform. In gener

Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Leif Lindholm
On 10 September 2013 22:46, Seth Goldberg wrote: > Why would region_end be zero? That sounds like an invalid value. Because when a heap region sits at the top of RAM, region base + region size == 0. / Leif ___ Grub-devel mailing list Grub-devel

Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Seth Goldberg
Quoting Leif Lindholm, who wrote the following on Tue, 10 Sep 2013: On Thu, Aug 29, 2013 at 07:26:03PM +0200, Leif Lindholm wrote: When allocating memory for the heap on ARMv7 UEFI, the init code pretty much just allocates a chunk from the top of available RAM. This means that when grub_mm_in

Fixes and cleanup of ARM cache maintenance code

2013-09-10 Thread Leif Lindholm
The current version of ARM cache maintenance code contains a few bugs, preventing GRUB from running properly on my hardware platforms. Main issues are that clean_dcache_range/invalidate_icache_range use the addresses of grub_arch_cache_dlinesz/grub_arch_cache_ilinesz rather than the values read in

Re: calculation overflow in grub_mm_init_region (patch)

2013-09-10 Thread Leif Lindholm
On Thu, Aug 29, 2013 at 07:26:03PM +0200, Leif Lindholm wrote: > When allocating memory for the heap on ARMv7 UEFI, the init code > pretty much just allocates a chunk from the top of available RAM. > > This means that when grub_mm_init_region is called for a region > extending to the top of the 32