From: Björn Töpel <bjorn.to...@intel.com>

Start using recvfrom() the rxdrop scenario.

Signed-off-by: Björn Töpel <bjorn.to...@intel.com>
---
 samples/bpf/xdpsock_user.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c
index 1149e94ca32f..96d0b6482ac4 100644
--- a/samples/bpf/xdpsock_user.c
+++ b/samples/bpf/xdpsock_user.c
@@ -1172,7 +1172,7 @@ static inline void complete_tx_only(struct 
xsk_socket_info *xsk,
        }
 }
 
-static void rx_drop(struct xsk_socket_info *xsk, struct pollfd *fds)
+static void rx_drop(struct xsk_socket_info *xsk)
 {
        unsigned int rcvd, i;
        u32 idx_rx = 0, idx_fq = 0;
@@ -1182,7 +1182,7 @@ static void rx_drop(struct xsk_socket_info *xsk, struct 
pollfd *fds)
        if (!rcvd) {
                if (xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) {
                        xsk->app_stats.rx_empty_polls++;
-                       ret = poll(fds, num_socks, opt_timeout);
+                       recvfrom(xsk_socket__fd(xsk->xsk), NULL, 0, 
MSG_DONTWAIT, NULL, NULL);
                }
                return;
        }
@@ -1193,7 +1193,7 @@ static void rx_drop(struct xsk_socket_info *xsk, struct 
pollfd *fds)
                        exit_with_error(-ret);
                if (xsk_ring_prod__needs_wakeup(&xsk->umem->fq)) {
                        xsk->app_stats.fill_fail_polls++;
-                       ret = poll(fds, num_socks, opt_timeout);
+                       recvfrom(xsk_socket__fd(xsk->xsk), NULL, 0, 
MSG_DONTWAIT, NULL, NULL);
                }
                ret = xsk_ring_prod__reserve(&xsk->umem->fq, rcvd, &idx_fq);
        }
@@ -1235,7 +1235,7 @@ static void rx_drop_all(void)
                }
 
                for (i = 0; i < num_socks; i++)
-                       rx_drop(xsks[i], fds);
+                       rx_drop(xsks[i]);
 
                if (benchmark_done)
                        break;
-- 
2.27.0

Reply via email to