1024 bytes create a lot of wastage when the majority of allocations
are of BIOS table data structures which are generally happy with much
lower alignment. I conservatively chose 16 bytes.
Most callers pass 0 for the alignment anyway, for the rombios high
code allocation I kept it 1024 byte aligned since it was the only case
that didn't seem obviously ok with a smaller alignment.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
*/
reloc_size = reloc_off;
printf("%d bytes of ROMBIOS high-memory extensions:\n", reloc_size);
- highbiosarea = mem_alloc(reloc_size, 0);
+ highbiosarea = mem_alloc(reloc_size, 1024);
BUG_ON(highbiosarea == NULL);
printf(" Relocating to 0x%x-0x%x ... ",
(uint32_t)&highbiosarea[0],
xen_pfn_t mfn;
uint32_t s, e;
- /* Align to at least one kilobyte. */
- if ( align < 1024 )
- align = 1024;
+ /* Align to at least 16 bytes. */
+ if ( align < 16 )
+ align = 16;
s = (reserve + align) & ~(align - 1);
e = s + size - 1;
{
uint32_t s, e;
- /* Align to at least one kilobyte. */
- if ( align < 1024 )
- align = 1024;
+ /* Align to at least 16 bytes. */
+ if ( align < 16 )
+ align = 16;
s = (scratch_start + align - 1) & ~(align - 1);
e = s + size - 1;