Skip to content

Commit 1e08223

Browse files
Gerhard Englederdavem330
authored andcommitted
tsnep: Add helper for RX XDP_RING_NEED_WAKEUP flag
Similar chunk of code is used in tsnep_rx_poll_zc() and tsnep_rx_reopen_xsk() to maintain the RX XDP_RING_NEED_WAKEUP flag. Consolidate the code to common helper function. Suggested-by: Paolo Abeni <[email protected]> Signed-off-by: Gerhard Engleder <[email protected]> Reviewed-by: Simon Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 89304f9 commit 1e08223

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

drivers/net/ethernet/engleder/tsnep_main.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,6 +1260,14 @@ static int tsnep_rx_refill_zc(struct tsnep_rx *rx, int count, bool reuse)
12601260
return desc_refilled;
12611261
}
12621262

1263+
static void tsnep_xsk_rx_need_wakeup(struct tsnep_rx *rx, int desc_available)
1264+
{
1265+
if (desc_available)
1266+
xsk_set_rx_need_wakeup(rx->xsk_pool);
1267+
else
1268+
xsk_clear_rx_need_wakeup(rx->xsk_pool);
1269+
}
1270+
12631271
static bool tsnep_xdp_run_prog(struct tsnep_rx *rx, struct bpf_prog *prog,
12641272
struct xdp_buff *xdp, int *status,
12651273
struct netdev_queue *tx_nq, struct tsnep_tx *tx)
@@ -1621,10 +1629,7 @@ static int tsnep_rx_poll_zc(struct tsnep_rx *rx, struct napi_struct *napi,
16211629
desc_available -= tsnep_rx_refill_zc(rx, desc_available, false);
16221630

16231631
if (xsk_uses_need_wakeup(rx->xsk_pool)) {
1624-
if (desc_available)
1625-
xsk_set_rx_need_wakeup(rx->xsk_pool);
1626-
else
1627-
xsk_clear_rx_need_wakeup(rx->xsk_pool);
1632+
tsnep_xsk_rx_need_wakeup(rx, desc_available);
16281633

16291634
return done;
16301635
}
@@ -1769,14 +1774,8 @@ static void tsnep_rx_reopen_xsk(struct tsnep_rx *rx)
17691774
* first polling would be too late as need wakeup signalisation would
17701775
* be delayed for an indefinite time
17711776
*/
1772-
if (xsk_uses_need_wakeup(rx->xsk_pool)) {
1773-
int desc_available = tsnep_rx_desc_available(rx);
1774-
1775-
if (desc_available)
1776-
xsk_set_rx_need_wakeup(rx->xsk_pool);
1777-
else
1778-
xsk_clear_rx_need_wakeup(rx->xsk_pool);
1779-
}
1777+
if (xsk_uses_need_wakeup(rx->xsk_pool))
1778+
tsnep_xsk_rx_need_wakeup(rx, tsnep_rx_desc_available(rx));
17801779
}
17811780

17821781
static bool tsnep_pending(struct tsnep_queue *queue)

0 commit comments

Comments
 (0)