summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2018-04-12 10:59:30 +0200
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2018-04-19 14:52:08 +0200
commit61716249316b825ed2171bc2aa324ac78ea3f3da (patch)
treeaa073e1f46c1a44bbd3fd8c053a6dcff0fb84532
parent3454e932107c7524f6a89fcab35d430d0b422b2e (diff)
downloadedk2-platforms-61716249316b825ed2171bc2aa324ac78ea3f3da.tar.xz
Silicon/SynQuacer/NetsecDxe: fix buffer allocation bug
The receive buffers of the NETSEC driver are owned by the driver itself (as opposed to the protocol client in the case of the transmit path), and so the descriptors and the buffers (which are of a fixed size) are allocated in one go. The idea is that the 'buffer' member of the descriptor should point to a DMA aligned offset into the same allocation, but the code in pfdep_alloc_pkt_buf() calculates the value incorrectly, resulting in corruption of the descriptor metadata if the pool allocation happens to be DMA aligned. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
-rw-r--r--Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/netsec_for_uefi/pfdep_uefi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/netsec_for_uefi/pfdep_uefi.c b/Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/netsec_for_uefi/pfdep_uefi.c
index b43d1aaff0..0875558c08 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/netsec_for_uefi/pfdep_uefi.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/netsec_for_uefi/pfdep_uefi.c
@@ -134,7 +134,7 @@ pfdep_alloc_pkt_buf (
return PFDEP_ERR_ALLOC;
}
- (*pkt_handle_p)->Buffer = ALIGN_POINTER (*pkt_handle_p,
+ (*pkt_handle_p)->Buffer = ALIGN_POINTER (*pkt_handle_p + 1,
mCpu->DmaBufferAlignment);
}