[arbel] Allocate sufficient space for firmware buffer
authorMichael Brown <mcb30@etherboot.org>
Thu, 25 Sep 2008 06:23:34 +0000 (07:23 +0100)
committerMichael Brown <mcb30@etherboot.org>
Thu, 25 Sep 2008 06:23:34 +0000 (07:23 +0100)
We were accidentally allocating only half the required amount of
memory (given the alignment method) for the firmware buffer, leading
to conflicts between the firmware buffer and gPXE code/data segments.

src/drivers/infiniband/arbel.c

index 2aced77..0c18083 100644 (file)
@@ -1714,7 +1714,7 @@ static int arbel_start_firmware ( struct arbel *arbel ) {
 
        /* Allocate firmware pages and map firmware area */
        fw_size = ( fw_pages * 4096 );
-       arbel->firmware_area = umalloc ( fw_size );
+       arbel->firmware_area = umalloc ( fw_size * 2 );
        if ( ! arbel->firmware_area ) {
                rc = -ENOMEM;
                goto err_alloc_fa;