mirror of https://github.com/xemu-project/xemu.git
hw/net: i82596: Remove the logic of padding short frames in the receive path
Now that we have implemented unified short frames padding in the QEMU networking codes, remove the same logic in the NIC codes. Signed-off-by: Bin Meng <bmeng@tinylab.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
c445f200ad
commit
c58da33f2f
|
@ -72,10 +72,6 @@ enum commands {
|
|||
#define I596_EOF 0x8000
|
||||
#define SIZE_MASK 0x3fff
|
||||
|
||||
#define ETHER_TYPE_LEN 2
|
||||
#define VLAN_TCI_LEN 2
|
||||
#define VLAN_HLEN (ETHER_TYPE_LEN + VLAN_TCI_LEN)
|
||||
|
||||
/* various flags in the chip config registers */
|
||||
#define I596_PREFETCH (s->config[0] & 0x80)
|
||||
#define I596_PROMISC (s->config[8] & 0x01)
|
||||
|
@ -488,8 +484,6 @@ bool i82596_can_receive(NetClientState *nc)
|
|||
return true;
|
||||
}
|
||||
|
||||
#define MIN_BUF_SIZE 60
|
||||
|
||||
ssize_t i82596_receive(NetClientState *nc, const uint8_t *buf, size_t sz)
|
||||
{
|
||||
I82596State *s = qemu_get_nic_opaque(nc);
|
||||
|
@ -500,7 +494,6 @@ ssize_t i82596_receive(NetClientState *nc, const uint8_t *buf, size_t sz)
|
|||
size_t bufsz = sz; /* length of data in buf */
|
||||
uint32_t crc;
|
||||
uint8_t *crc_ptr;
|
||||
uint8_t buf1[MIN_BUF_SIZE + VLAN_HLEN];
|
||||
static const uint8_t broadcast_macaddr[6] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||
|
||||
|
@ -583,17 +576,6 @@ ssize_t i82596_receive(NetClientState *nc, const uint8_t *buf, size_t sz)
|
|||
}
|
||||
}
|
||||
|
||||
/* if too small buffer, then expand it */
|
||||
if (len < MIN_BUF_SIZE + VLAN_HLEN) {
|
||||
memcpy(buf1, buf, len);
|
||||
memset(buf1 + len, 0, MIN_BUF_SIZE + VLAN_HLEN - len);
|
||||
buf = buf1;
|
||||
if (len < MIN_BUF_SIZE) {
|
||||
len = MIN_BUF_SIZE;
|
||||
}
|
||||
bufsz = len;
|
||||
}
|
||||
|
||||
/* Calculate the ethernet checksum (4 bytes) */
|
||||
len += 4;
|
||||
crc = cpu_to_be32(crc32(~0, buf, sz));
|
||||
|
|
Loading…
Reference in New Issue