shuffle: align the shuffle safe area
authorH. Peter Anvin <hpa@zytor.com>
Sun, 3 May 2009 00:26:06 +0000 (17:26 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sun, 3 May 2009 00:26:06 +0000 (17:26 -0700)
For performance, align the shuffle safe area to a dword boundary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
com32/lib/syslinux/shuffle.c

index 196fc64..6c33d0a 100644 (file)
@@ -141,11 +141,12 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist,
       sizeof(struct shuffle_descriptor)*DESC_BLOCK_SIZE
       + sizeof(struct shuffle_descriptor) + shuffler_size;
 
-    if (descfree < descmem)
+    descaddr = (desczone + descfree - descmem) & ~3;
+
+    if (descaddr < desczone)
       goto bail;               /* No memory block large enough */
 
     /* Mark memory used by shuffle descriptors as reserved */
-    descaddr = desczone + descfree - descmem;
     if (syslinux_add_memmap(&rxmap, descaddr, descmem, SMT_RESERVED))
       goto bail;