+-- On Thu, 7 Apr 2016, Peter Maydell wrote --+ | > n -= 31; | > s->np++; | | We should do this check before we increase s->np, because | if we're going to bail out then we won't be putting this | packet into the RX FIFO.
Ah, right. | The datasheet for this chip says that we should report this | to the guest: | | "For the Ethernet Controller, data sent/received can be larger | than 1500 bytes without causing a Frame Too Long error. Instead, | a FIFO overrun error is reported using the FOV bit in the | Ethernet MAC Raw Interrupt Status (MACRIS) register when the | frame received is too large to fit in the Ethernet Controller's | 2K RAM." | So you want something like: | | /* If the packet won't fit into the emulated 2K RAM, this | * is reported as a FIFO overrun error. | */ | s->ris |= SE_INT_FOV; | stellaris_enet_update(s); | return -1; Okay. I have sent a revised patch v2, with these updates. Thank you. -- Prasad J Pandit / Red Hat Product Security Team 47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F