[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] net: stellaris_enet: check packet length ag
P J P
Re: [Qemu-devel] [PATCH 1/2] net: stellaris_enet: check packet length against receive buffer
Thu, 7 Apr 2016 18:07:54 +0530 (IST)
+-- 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.
| 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;
| return -1;
Okay. I have sent a revised patch v2, with these updates.
Prasad J Pandit / Red Hat Product Security Team
47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F