[hermon] Allocate sufficient space for firmware buffer
authorMichael Brown <mcb30@etherboot.org>
Thu, 25 Sep 2008 06:22:06 +0000 (07:22 +0100)
committerMichael Brown <mcb30@etherboot.org>
Thu, 25 Sep 2008 06:22:06 +0000 (07:22 +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/hermon.c

index 439974e..9716aba 100644 (file)
@@ -1684,7 +1684,7 @@ static int hermon_start_firmware ( struct hermon *hermon ) {
 
        /* Allocate firmware pages and map firmware area */
        fw_size = ( fw_pages * HERMON_PAGE_SIZE );
-       hermon->firmware_area = umalloc ( fw_size );
+       hermon->firmware_area = umalloc ( fw_size * 2 );
        if ( ! hermon->firmware_area ) {
                rc = -ENOMEM;
                goto err_alloc_fa;