130234bc78
get_card_packet() from ofnet.c allocates a netbuff based on the device's MTU: nb = grub_netbuff_alloc (dev->mtu + 64 + 2); In the case when the MTU is large, and the received packet is relatively small, this leads to allocation of significantly more memory, than it's required. An example could be transmission of TFTP packets with 0x400 blksize via a network card with 0x10000 MTU. This patch implements a per-card receive buffer in a way similar to efinet.c, and makes get_card_packet() allocate a netbuff of the received data size. Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> |
||
---|---|---|
.. | ||
drivers | ||
arp.c | ||
bootp.c | ||
dns.c | ||
ethernet.c | ||
http.c | ||
icmp.c | ||
icmp6.c | ||
ip.c | ||
net.c | ||
netbuff.c | ||
tcp.c | ||
tftp.c | ||
udp.c |