Hi. Just noticed that this patch didn't hit master. Got lost ? Thanks, Ramon.
On Tue, Jul 16, 2019 at 2:58 PM Jason Wang <jasow...@redhat.com> wrote: > > > On 2019/7/16 下午6:59, Ramon Fried wrote: > > The RX ring descriptors control field is used for setting > > SOF and EOF (start of frame and end of frame). > > The SOF and EOF weren't cleared from the previous descriptors, > > causing inconsistencies in ring buffer. > > Fix that by clearing the control field of every descriptors we're > > processing. > > > > Signed-off-by: Ramon Fried <rfried....@gmail.com> > > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > > > > --- > > v2: > > * change function name to rx_desc_clear_control as proposed by > > Jason Wang > > * Move the function call above the comment, as proposed by > > Philippe Mathieu-Daudé > > > > hw/net/cadence_gem.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c > > index ecee22525c..cca3ce7f56 100644 > > --- a/hw/net/cadence_gem.c > > +++ b/hw/net/cadence_gem.c > > @@ -406,6 +406,11 @@ static inline void rx_desc_set_sof(uint32_t *desc) > > desc[1] |= DESC_1_RX_SOF; > > } > > > > +static inline void rx_desc_clear_control(uint32_t *desc) > > +{ > > + desc[1] = 0; > > +} > > + > > static inline void rx_desc_set_eof(uint32_t *desc) > > { > > desc[1] |= DESC_1_RX_EOF; > > @@ -993,6 +998,8 @@ static ssize_t gem_receive(NetClientState *nc, const > > uint8_t *buf, size_t size) > > rxbuf_ptr += MIN(bytes_to_copy, rxbufsize); > > bytes_to_copy -= MIN(bytes_to_copy, rxbufsize); > > > > + rx_desc_clear_control(s->rx_desc[q]); > > + > > /* Update the descriptor. */ > > if (first_desc) { > > rx_desc_set_sof(s->rx_desc[q]); > > > Applied. > > Thanks >