diff mbox

[2/5] hw/net/stellaris_enet: Correct handling of packet padding

Message ID 1396371187-8567-3-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell April 1, 2014, 4:53 p.m. UTC
The PADEN bit in the transmit control register enables padding of short
data packets out to the required minimum length. However a typo here
meant we were adjusting tx_fifo_len rather than tx_frame_len, so the
padding didn't actually happen. Fix this bug.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/net/stellaris_enet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert April 1, 2014, 5:01 p.m. UTC | #1
* Peter Maydell (peter.maydell@linaro.org) wrote:
> The PADEN bit in the transmit control register enables padding of short
> data packets out to the required minimum length. However a typo here
> meant we were adjusting tx_fifo_len rather than tx_frame_len, so the
> padding didn't actually happen. Fix this bug.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  hw/net/stellaris_enet.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
> index bd844cd..d0da819 100644
> --- a/hw/net/stellaris_enet.c
> +++ b/hw/net/stellaris_enet.c
> @@ -265,7 +265,7 @@ static void stellaris_enet_write(void *opaque, hwaddr offset,
>                      s->tx_frame_len -= 4;
>                  if ((s->tctl & SE_TCTL_PADEN) && s->tx_frame_len < 60) {
>                      memset(&s->tx_fifo[s->tx_frame_len], 0, 60 - s->tx_frame_len);
> -                    s->tx_fifo_len = 60;
> +                    s->tx_frame_len = 60;
>                  }
>                  qemu_send_packet(qemu_get_queue(s->nic), s->tx_fifo,
>                                   s->tx_frame_len);
> -- 
> 1.9.0
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff mbox

Patch

diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
index bd844cd..d0da819 100644
--- a/hw/net/stellaris_enet.c
+++ b/hw/net/stellaris_enet.c
@@ -265,7 +265,7 @@  static void stellaris_enet_write(void *opaque, hwaddr offset,
                     s->tx_frame_len -= 4;
                 if ((s->tctl & SE_TCTL_PADEN) && s->tx_frame_len < 60) {
                     memset(&s->tx_fifo[s->tx_frame_len], 0, 60 - s->tx_frame_len);
-                    s->tx_fifo_len = 60;
+                    s->tx_frame_len = 60;
                 }
                 qemu_send_packet(qemu_get_queue(s->nic), s->tx_fifo,
                                  s->tx_frame_len);