RE: [PATCH net-next 6/7] net: stmmac: Enable RX via AF_XDP zero-copy

From: Ong, Boon Leong
Date: Tue Apr 13 2021 - 03:58:24 EST


>+ /* synchronize_rcu() needed for pending XDP buffers to drain */
>+ for (queue = 0; queue < rx_queues_cnt; queue++) {
>+ rx_q = &priv->rx_queue[queue];
>+ if (rx_q->xsk_pool) {
>+ synchronize_rcu();
>
>Are you sure this is safe here, especially via the ->ndo_setup_tc() code path?
>
Thanks for the feedback.
Will fix this in v2 by introducing below:

Introduce __stmmac_disable_all_queues() to contain the original code that
does napi_disable() and then make stmmac_setup_tc_block_cb(0 to call this.

Add stmmac_disable_all_queues() to perform synchronize_rcu() if
there is preregistered XSK pool before subsequently call
__stmmac_disable_all_queues() to perform napi_disable().

After this, both stmmac_release() and stmmac_suspend() will use
stmmac_disable_all_queues().

Thx