Message ID | 1466464039-51199-10-git-send-email-agraf@suse.de |
---|---|
State | Accepted |
Commit | 712cd2987489fe62aedeb24730e730871b1eb627 |
Delegated to: | Alexander Graf |
Headers | show |
diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c index dd3b485..6a8a0d7 100644 --- a/lib/efi_loader/efi_net.c +++ b/lib/efi_loader/efi_net.c @@ -152,7 +152,14 @@ static efi_status_t EFIAPI efi_net_transmit(struct efi_simple_network *this, return EFI_EXIT(EFI_INVALID_PARAMETER); } +#ifdef CONFIG_EFI_LOADER_BOUNCE_BUFFER + /* Ethernet packets always fit, just bounce */ + memcpy(efi_bounce_buffer, buffer, buffer_size); + net_send_packet(efi_bounce_buffer, buffer_size); +#else net_send_packet(buffer, buffer_size); +#endif + new_tx_packet = buffer; return EFI_EXIT(EFI_SUCCESS);
So far bounce buffers were only used for disk I/O, but network I/O may suffer from the same problem. On platforms that have problems doing DMA on high addresses, let's also bounce outgoing network packets. Incoming ones always already get bounced. Signed-off-by: Alexander Graf <agraf@suse.de> --- lib/efi_loader/efi_net.c | 7 +++++++ 1 file changed, 7 insertions(+)