[RFC 6/6] intel/iavf: remove use of pthread_cancel

Bruce Richardson bruce.richardson at intel.com
Thu Sep 25 17:11:53 CEST 2025


On Wed, Sep 24, 2025 at 09:51:13AM -0700, Stephen Hemminger wrote:
> The iavf driver uses a pipe to communicate with control thread.
> By closing the write side of the pipe, the main thread can
> tell the control thread to exit without use of pthread_cancel.
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---

Acked-by: Bruce Richardson <bruce.richardson at intel.com>

>  drivers/net/intel/iavf/iavf_vchnl.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/intel/iavf/iavf_vchnl.c b/drivers/net/intel/iavf/iavf_vchnl.c
> index b1b7a5bf94..781bae11be 100644
> --- a/drivers/net/intel/iavf/iavf_vchnl.c
> +++ b/drivers/net/intel/iavf/iavf_vchnl.c
> @@ -161,14 +161,14 @@ iavf_dev_event_handler_fini(void)
>  	if (rte_atomic_fetch_sub_explicit(&handler->ndev, 1, rte_memory_order_relaxed) - 1 != 0)
>  		return;
>  
> -	int unused = pthread_cancel((pthread_t)handler->tid.opaque_id);
> -	RTE_SET_USED(unused);
> -	close(handler->fd[0]);
> +	/* closing the write side of the pipe will cause read() to return 0 in thread */
>  	close(handler->fd[1]);
> -	handler->fd[0] = -1;
>  	handler->fd[1] = -1;
>  
>  	rte_thread_join(handler->tid, NULL);
> +	close(handler->fd[0]);
> +	handler->fd[0] = -1;
> +
>  	pthread_mutex_destroy(&handler->lock);
>  
>  	struct iavf_event_element *pos, *save_next;
> -- 
> 2.47.3
> 


More information about the dev mailing list