|
@@ -58,7 +58,7 @@ struct smc91c111_state {
|
|
|
int tx_fifo_done_len;
|
|
|
int tx_fifo_done[NUM_PACKETS];
|
|
|
/* Packet buffer memory. */
|
|
|
- uint8_t data[NUM_PACKETS][2048];
|
|
|
+ uint8_t data[NUM_PACKETS][MAX_PACKET_SIZE];
|
|
|
uint8_t int_level;
|
|
|
uint8_t int_mask;
|
|
|
MemoryRegion mmio;
|
|
@@ -86,7 +86,8 @@ static const VMStateDescription vmstate_smc91c111 = {
|
|
|
VMSTATE_INT32_ARRAY(rx_fifo, smc91c111_state, NUM_PACKETS),
|
|
|
VMSTATE_INT32(tx_fifo_done_len, smc91c111_state),
|
|
|
VMSTATE_INT32_ARRAY(tx_fifo_done, smc91c111_state, NUM_PACKETS),
|
|
|
- VMSTATE_BUFFER_UNSAFE(data, smc91c111_state, 0, NUM_PACKETS * 2048),
|
|
|
+ VMSTATE_BUFFER_UNSAFE(data, smc91c111_state, 0,
|
|
|
+ NUM_PACKETS * MAX_PACKET_SIZE),
|
|
|
VMSTATE_UINT8(int_level, smc91c111_state),
|
|
|
VMSTATE_UINT8(int_mask, smc91c111_state),
|
|
|
VMSTATE_END_OF_LIST()
|
|
@@ -773,8 +774,9 @@ static ssize_t smc91c111_receive(NetClientState *nc, const uint8_t *buf, size_t
|
|
|
if (crc)
|
|
|
packetsize += 4;
|
|
|
/* TODO: Flag overrun and receive errors. */
|
|
|
- if (packetsize > 2048)
|
|
|
+ if (packetsize > MAX_PACKET_SIZE) {
|
|
|
return -1;
|
|
|
+ }
|
|
|
packetnum = smc91c111_allocate_packet(s);
|
|
|
if (packetnum == 0x80)
|
|
|
return -1;
|