]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[vxge] Fix use of stale I/O buffer on error path
authorMichael Brown <mcb30@ipxe.org>
Thu, 23 Mar 2017 19:10:25 +0000 (21:10 +0200)
committerMichael Brown <mcb30@ipxe.org>
Thu, 23 Mar 2017 19:10:25 +0000 (21:10 +0200)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/vxge/vxge_traffic.c

index 0b1caf106504564065aaeb8ef6894e7b20dae12d..dbd7990152316cbc33c301a835dd9cc772d209a0 100644 (file)
@@ -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;