From c13bf525098949291cf930d5c87da5c51c812af4 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 23 Mar 2017 21:10:25 +0200 Subject: [PATCH] [vxge] Fix use of stale I/O buffer on error path Signed-off-by: Michael Brown --- src/drivers/net/vxge/vxge_traffic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/net/vxge/vxge_traffic.c b/src/drivers/net/vxge/vxge_traffic.c index 0b1caf10..dbd79901 100644 --- a/src/drivers/net/vxge/vxge_traffic.c +++ b/src/drivers/net/vxge/vxge_traffic.c @@ -667,6 +667,8 @@ enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring) vxge_debug(VXGE_INFO, "%s: rx frame received at offset %d\n", hldev->ndev->name, ring->rxd_offset); + iobuf = (struct io_buffer *)(intptr_t)rxd->host_control; + if (tcode != VXGE_HW_RING_T_CODE_OK) { netdev_rx_err(hldev->ndev, NULL, -EINVAL); vxge_debug(VXGE_ERR, "%s:%d, rx error tcode %d\n", @@ -675,8 +677,6 @@ enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring) goto err1; } - iobuf = (struct io_buffer *)(intptr_t)rxd->host_control; - len = VXGE_HW_RING_RXD_1_BUFFER0_SIZE_GET(rxd->control_1); len -= ETH_FCS_LEN;