+-- 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

Reply via email to