summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-09-25 08:22:06 +0200
committerMichael Brown2008-09-25 08:22:06 +0200
commitb45b39260ceb65aa020acfe5a3e961a19ed8489a (patch)
tree19c1a1642c28f9f77169a431ae311013317b41a5
parent[pcbios] Add facility for testing arbitrary E820 memory maps (diff)
downloadipxe-b45b39260ceb65aa020acfe5a3e961a19ed8489a.tar.gz
ipxe-b45b39260ceb65aa020acfe5a3e961a19ed8489a.tar.xz
ipxe-b45b39260ceb65aa020acfe5a3e961a19ed8489a.zip
[hermon] Allocate sufficient space for firmware buffer
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.
-rw-r--r--src/drivers/infiniband/hermon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/infiniband/hermon.c b/src/drivers/infiniband/hermon.c
index 439974eb..9716aba9 100644
--- a/src/drivers/infiniband/hermon.c
+++ b/src/drivers/infiniband/hermon.c
@@ -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;