mirror of
https://github.com/ipxe/ipxe
synced 2025-12-27 18:12:36 +03:00
[vxge] Fix use of stale I/O buffer on error path
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -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",
|
vxge_debug(VXGE_INFO, "%s: rx frame received at offset %d\n",
|
||||||
hldev->ndev->name, ring->rxd_offset);
|
hldev->ndev->name, ring->rxd_offset);
|
||||||
|
|
||||||
|
iobuf = (struct io_buffer *)(intptr_t)rxd->host_control;
|
||||||
|
|
||||||
if (tcode != VXGE_HW_RING_T_CODE_OK) {
|
if (tcode != VXGE_HW_RING_T_CODE_OK) {
|
||||||
netdev_rx_err(hldev->ndev, NULL, -EINVAL);
|
netdev_rx_err(hldev->ndev, NULL, -EINVAL);
|
||||||
vxge_debug(VXGE_ERR, "%s:%d, rx error tcode %d\n",
|
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;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
iobuf = (struct io_buffer *)(intptr_t)rxd->host_control;
|
|
||||||
|
|
||||||
len = VXGE_HW_RING_RXD_1_BUFFER0_SIZE_GET(rxd->control_1);
|
len = VXGE_HW_RING_RXD_1_BUFFER0_SIZE_GET(rxd->control_1);
|
||||||
len -= ETH_FCS_LEN;
|
len -= ETH_FCS_LEN;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user