mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
gve: Check TX QPL was actually assigned
Correctly check the TX QPL was assigned and unassigned if
other steps in the allocation fail.
Fixes: f5cedc84a3 (gve: Add transmit and receive support)
Signed-off-by: Catherine Sullivan <csully@google.com>
Signed-off-by: David Awogbemila <awogbemila@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1d482e666b
commit
5aec55b46c
|
|
@ -212,10 +212,11 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
|
|||
tx->dev = &priv->pdev->dev;
|
||||
if (!tx->raw_addressing) {
|
||||
tx->tx_fifo.qpl = gve_assign_tx_qpl(priv);
|
||||
|
||||
if (!tx->tx_fifo.qpl)
|
||||
goto abort_with_desc;
|
||||
/* map Tx FIFO */
|
||||
if (gve_tx_fifo_init(priv, &tx->tx_fifo))
|
||||
goto abort_with_desc;
|
||||
goto abort_with_qpl;
|
||||
}
|
||||
|
||||
tx->q_resources =
|
||||
|
|
@ -236,6 +237,9 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
|
|||
abort_with_fifo:
|
||||
if (!tx->raw_addressing)
|
||||
gve_tx_fifo_release(priv, &tx->tx_fifo);
|
||||
abort_with_qpl:
|
||||
if (!tx->raw_addressing)
|
||||
gve_unassign_qpl(priv, tx->tx_fifo.qpl->id);
|
||||
abort_with_desc:
|
||||
dma_free_coherent(hdev, bytes, tx->desc, tx->bus);
|
||||
tx->desc = NULL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user